# 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

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

Approach

### 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. [![Star History Chart](https://api.star-history.com/svg?repos=showlab/Code2Video&type=Date)](https://star-history.com/#showlab/Code2Video&Date)