MCPcopy
hub / github.com/showlab/Code2Video

github.com/showlab/Code2Video @main sqlite

repository ↗ · DeepWiki ↗
162 symbols 484 edges 15 files 73 documented · 45%
README

Code2Video: 通过代码生成视频

English | 简体中文

Code2Video: 以代码为中心的教学视频生成新范式

您的浏览器不支持 video 标签。

Yanzhe Chen, Kevin Qinghong Lin, Mike Zheng Shou

新加坡国立大学 Show Lab

📄 Arxiv 论文   |   🤗 Daily Paper   |   🤗 数据集   |   🌐 项目主页   |   💬 推特 (X)


🔥 更新

  • [x] [2025.10.11] 近期收到关于 ICONFINDER 注册问题的反馈,在 MMMC 数据集中更新了 Code2Video 自动收集的 icon,作为临时替代方案。
  • [x] [2025.10.6] 在 Huggingface 上更新了 MMMC 数据集。
  • [x] [2025.10.3] 感谢 @_akhaliq 在 推特上分享我们的工作!
  • [x] [2025.10.2] 我们发布了 ArXiv代码数据集
  • [x] [2025.9.22] Code2Video 已被 NeurIPS 2025 Workshop (DL4C) 接收。

目录


🌟 项目总览

Overview

Code2Video 是一个基于智能体、以代码为中心的框架,能够根据知识点生成高质量的教学视频。 与基于像素空间的文生视频模型不同,我们的方法生成可执行的 Manim 代码来确保视频的清晰度、连贯性和可复现性

核心特性: - 🎬 以代码为中心的范式 — 将可执行代码作为统一媒介,同时实现教学视频的时间序列和空间布局组织。 - 🤖 模块化三智能体设计 — 规划者 (Planner) 负责故事板扩展,编码员 (Coder) 负责可调试代码的合成,鉴赏家 (Critic) 负责通过视觉锚点(Visual Anchor)优化布局,三者协同完成结构化生成。 - 📚 MMMC 基准 — 用于代码驱动视频生成的基准数据集,涵盖了 117 个受 3Blue1Brown 启发的精选学习主题,横跨多个领域。 - 🧪 多维度评测 — 从效率、美学和端到端知识传递三个维度进行系统性评估。


🚀 快速上手

Approach

1. 环境配置

cd src/
pip install -r requirements.txt

这里是 Manim Community v0.19.0 的官方安装指南,以帮助您正确设置环境。

2. 配置 LLM API 密钥

请在 api_config.json 文件中填入您的 API key

  • LLM API:
  • 运行 Planner 和 Coder 所需。
  • 使用 Claude-4-Opus 可获得最佳的 Manim 代码质量。
  • 使用 ChatGPT-4.1 亦具有不错的生成表现。
  • VLM API:
  • 运行 Critic 所需。
  • 为优化布局和美学,请提供 Gemini API key
  • 使用 gemini-2.5-pro-preview-05-06 可获得最佳质量。
  • 视觉素材 API:
  • 为丰富视频内容,请从 IconFinder 获取并设置 ICONFINDER_API_KEY

3. 运行智能体

提供了两种 Shell 脚本,用于不同的生成模式:

(a) 单个主题生成

脚本: run_agent_single.sh

从脚本中指定的单个知识点生成视频。

sh run_agent_single.sh --knowledge_point "Linear transformations and matrices"

run_agent_single.sh 内部重要参数:

  • API: 指定使用的 LLM。
  • FOLDER_PREFIX: 输出文件夹的前缀 (例如, TEST-single)。
  • KNOWLEDGE_POINT: 目标概念,例如 "Linear transformations and matrices"

(b) 完整基准测试模式

脚本: run_agent.sh

运行 long_video_topics_list.json 中定义的所有(或部分)学习主题。

sh run_agent.sh

run_agent.sh 内部重要参数:

  • API: 指定使用的 LLM。
  • FOLDER_PREFIX: 输出文件夹的前缀 (例如, TEST-LIST)。
  • MAX_CONCEPTS: 要运行的概念数量 (-1 表示全部)。
  • PARALLEL_GROUP_NUM: 并行运行的组数。

4. 项目结构

建议的目录结构如下:

src/
│── agent.py
│── run_agent.sh
│── run_agent_single.sh
│── api_config.json
│── ...
│
├── assets/
│   ├── icons/       # 通过 IconFinder API 下载的视觉素材缓存
│   └── reference/   # 参考图像
│
├── json_files/      # 基于 JSON 的主题列表及元数据
├── prompts/         # 用于 LLM 调用的提示模板
├── CASES/           # 生成的案例,按 FOLDER_PREFIX 组织
│   └── TEST-LIST/   # 示例:多主题生成结果
│   └── TEST-single/ # 示例:单主题生成结果

📊 评测 -- MMMC

从以下三个互补的维度进行评测:

  1. 知识传递 (TeachQuiz) bash python3 eval_TQ.py

  2. 美学质量 (AES) bash python3 eval_AES.py

  3. 效率指标 (EFF)

  4. Token 使用量
  5. 执行时间

👉 更多数据和评测脚本请见: HuggingFace: MMMC 基准


🙏 致谢

  • 视频数据来源于 3Blue1Brown 官方课程。 这些视频代表了教学视频在清晰度和美学设计上的最高标准,并为我们的评测指标提供了参考。
  • 感谢 Show Lab @ NUS 所有成员的支持!
  • 本项目得益于 Manim 社区和 AI 研究生态系统的开源贡献。
  • 高质量的视觉素材(图标)由 IconFinderIcons8 提供,用于丰富教学视频内容。

📌 引用

如果我们的工作对您有帮助,欢迎引用我们的工作:

@misc{code2video,
      title={Code2Video: A Code-centric Paradigm for Educational Video Generation},
      author={Yanzhe Chen and Kevin Qinghong Lin and Mike Zheng Shou},
      year={2025},
      eprint={2510.01174},
      archivePrefix={arXiv},
      primaryClass={cs.CV},
      url={[https://arxiv.org/abs/2510.01174](https://arxiv.org/abs/2510.01174)},
}

如果您喜欢我们的项目,欢迎在 GitHub 上给我们一个 Star ⭐ 以获取最新动态! Star History Chart

Core symbols most depended-on inside this repo

cfg
called by 60
src/gpt_request.py
generate_log_id
called by 16
src/gpt_request.py
extract_answer_from_response
called by 4
src/utils.py
_safe_mean
called by 4
src/eval_TQ.py
extract_json_from_markdown
called by 3
src/utils.py
generate_section_code
called by 3
src/agent.py
_assess_stage_parallel
called by 3
src/eval_TQ.py
_create_error_result
called by 3
src/eval_AES.py

Shape

Method 84
Function 62
Class 16

Languages

Python100%

Modules by API surface

src/scope_refine.py40 symbols
src/agent.py29 symbols
src/eval_TQ.py23 symbols
src/gpt_request.py18 symbols
src/eval_AES.py14 symbols
src/utils.py13 symbols
src/external_assets.py13 symbols
prompts/stage4.py3 symbols
prompts/stage2.py3 symbols
prompts/stage5_unlearning.py2 symbols
prompts/stage3.py2 symbols
prompts/stage5_eva.py1 symbols

Dependencies from manifests, versioned

Jinja23.1.6 · 1×
ManimPango0.6.0 · 1×
MarkupSafe3.0.2 · 1×
PyOpenGL3.1.9 · 1×
PyYAML6.0.2 · 1×
Pygments2.19.1 · 1×
annotated-types0.7.0 · 1×
anyio4.9.0 · 1×
beautifulsoup44.13.4 · 1×
cachetools5.5.2 · 1×
certifi2025.6.15 · 1×
charset-normalizer3.4.3 · 1×

For agents

$ claude mcp add Code2Video \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact