# Code2Video: Video Generation via Code
Code2Video: A Code-centric Paradigm for Educational Video Generation
Yanzhe Chen,
Kevin Qinghong Lin,
Mike Zheng Shou
Show Lab @ National University of Singapore
ย ๐ Paper |
ย ๐ค Daily Paper |
ย ๐ค Dataset |
ย ๐ Project Website |
ย ๐ฌ X (Twitter)
https://github.com/user-attachments/assets/d906423f-734a-41c9-b102-b113ad3b3c25
| Learning Topic |
Veo3 |
Wan2.2 |
Code2Video (Ours) |
| Hanoi Problem |
|
|
|
| Large Language Model |
|
|
|
| Pure Fourier Series |
|
|
|
---
## ๐ฅ Update
- [x] [2025.10.6] We have updated the ground truth human-made videos and metadata for the [MMMC](https://huggingface.co/datasets/YanzheChen/MMMC) dataset.
- [x] [2025.10.3] Thanks @_akhaliq for sharing our work on [Twitter](https://x.com/_akhaliq/status/1974189217304780863)!
- [x] [2025.10.2] We release the [arXiv](https://arxiv.org/abs/2510.01174), [code](https://github.com/showlab/Code2Video) and [`dataset`](https://huggingface.co/datasets/YanzheChen/MMMC)
- [x] [2025.9.22] Code2Video has been accepted to the **Deep Learning for Code ([DL4C](https://dl4c.github.io/)) Workshop at NeurIPS 2025**.
---
### Table of Contents
- [๐ Overview](#-overview)
- [๐ Quick Start: Code2Video](#-try-code2video)
- [1. Requirements](#1-requirements)
- [2. Configure LLM API Keys](#2-configure-llm-api-keys)
- [3. Run Agents](#3-run-agents)
- [4. Project Organization](#4-project-organization)
- [๐ Evaluation: MMMC](#-evaluation----mmmc)
- [๐ Acknowledgements](#-acknowledgements)
- [๐ Citation](#-citation)
---
## ๐ Overview
**Code2Video** is an **agentic, code-centric framework** that generates high-quality **educational videos** from knowledge points.
Unlike pixel-based text-to-video models, our approach leverages executable **Manim code** to ensure **clarity, coherence, and reproducibility**.
**Key Features**:
- ๐ฌ **Code-Centric Paradigm** โ executable code as the unified medium for both temporal sequencing and spatial organization of educational videos.
- ๐ค **Modular Tri-Agent Design** โ Planner (storyboard expansion), Coder (debuggable code synthesis), and Critic (layout refinement with anchors) work together for structured generation.
- ๐ **MMMC Benchmark** โ the first benchmark for code-driven video generation, covering 117 curated learning topics inspired by 3Blue1Brown, spanning diverse areas.
- ๐งช **Multi-Dimensional Evaluation** โ systematic assessment on efficiency, aesthetics, and end-to-end knowledge transfer.
---
## ๐ Try Code2Video
### 1. Requirements
```bash
cd src/
pip install -r requirements.txt
````
Here is the [official installation guide](https://docs.manim.community/en/stable/installation.html) for Manim Community v0.19.0, to help everyone correctly set up the environment.
### 2. Configure LLM API Keys
Fill in your **API credentials** in `gpt_config.json`.
* **LLM API**:
* Required for Planner & Coder.
* Best Manim code quality achieved with **Claude-4-Opus**.
* **VLM API**:
* Required for Planner Critic.
* For layout and aesthetics optimization, provide **Gemini API key**.
* Best quality achieved with **gemini-2.5-pro-preview-05-06**.
* **Visual Assets API**:
* To enrich videos with icons, set `ICONFINDER_API_KEY` from [IconFinder](https://www.iconfinder.com/account/applications).
### 3. Run Agents
We provide two shell scripts for different generation modes:
#### (a) Any Query
Script: `run_agent_single.sh`
Generates a video from a single **knowledge point** specified in the script.
```bash
sh run_agent_single.sh --knowledge_point "Linear transformations and matrices"
```
**Important parameters inside `run_agent_single.sh`:**
* `API`: specify which LLM to use.
* `FOLDER_PREFIX`: output folder prefix (e.g., `TEST-single`).
* `KNOWLEDGE_POINT`: target concept, e.g. `"Linear transformations and matrices"`.
---
#### (b) Full Benchmark Mode
Script: `run_agent.sh`
Runs all (or a subset of) learning topics defined in `long_video_topics_list.json`.
```bash
sh run_agent.sh
```
**Important parameters inside `run_agent.sh`:**
* `API`: specify which LLM to use.
* `FOLDER_PREFIX`: name prefix for saving output folders (e.g., `TEST-LIST`).
* `MAX_CONCEPTS`: number of concepts to include (`-1` means all).
* `PARALLEL_GROUP_NUM`: number of groups to run in parallel.
### 4. Project Organization
A suggested directory structure:
```
src/
โโโ agent.py
โโโ run_agent.sh
โโโ run_agent_single.sh
โโโ api_config.json
โโโ ...
โ
โโโ assets/
โ โโโ icons/ # downloaded visual assets cache via IconFinder API
โ โโโ reference/ # reference images
โ
โโโ json_files/ # JSON-based topic lists & metadata
โโโ prompts/ # prompt templates for LLM calls
โโโ CASES/ # generated cases, organized by FOLDER_PREFIX
โ โโโ TEST-LIST/ # example multi-topic generation results
โ โโโ TEST-single/ # example single-topic generation results
```
---
## ๐ Evaluation -- MMMC
We evaluate along **three complementary dimensions**:
1. **Knowledge Transfer (TeachQuiz)**
```bash
python3 eval_TQ.py
```
2. **Aesthetic & Structural Quality (AES)**
```bash
python3 eval_AES.py
```
3. **Efficiency Metrics (During Creating)**
* Token usage
* Execution time
๐ More data and evaluation scripts are available at:
[HuggingFace: MMMC Benchmark](https://huggingface.co/datasets/YanzheChen/MMMC)
---
## ๐ Acknowledgements
* Video data is sourced from the **[3Blue1Brown official lessons](https://www.3blue1brown.com/#lessons)**.
These videos represent the **upper bound of clarity and aesthetics** in educational video design and inform our evaluation metrics.
* We thank all the **Show Lab @ NUS** members for support!
* This project builds upon open-source contributions from **Manim Community** and the broader AI research ecosystem.
* High-quality visual assets (icons) are provided by **[IconFinder](https://www.iconfinder.com/)** and **[Icons8](https://icons8.com/icons)**, which were used to enrich the educational videos.
---
## ๐ Citation
If you find our work useful, please cite:
```bibtex
@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},
}
```
If you like our project, please give us a star โญ on GitHub for the latest update.
[](https://star-history.com/#showlab/Code2Video&Date)