Math-To-Manim:六个 AI Agent 推理链,把数学问题变成电影级动画
痛点切入
你是一个数学老师或物理科普作者。你有一个想法——“用动画解释傅里叶级数的旋转矢量叠加”。你打开 Manim,发现要写 200 行 Python 代码,调试相机角度、字体大小、动画时序,折腾三个小时,最后导出的 GIF 还是糊的。
或者你用 ChatGPT 生成 Manim 代码,跑出来一堆 MathTex 重叠、公式和文字打架、镜头拉得太远看不清。你不是不会写代码,你是不想花三个小时调参数。
Math-To-Manim 解决的就是这个问题:你用一句话描述想解释什么,它给你一部完整的动画电影。
项目简介
Math-To-Manim 是一个开源项目,用 AI Agent 接管从”理解问题”到”渲染 MP4”的全流程。GitHub 2.4k star,339 次提交,255 个 fork,MIT 协议,Python 编写。
项目作者 Christian H. Cooper 在 2025 年 1 月 20 日——DeepSeek R1 发布的那天——创建了这个仓库。他在推文中写道:“I asked R1 to visually explain the Pythagorean theorem. This was done in one shot with no errors in less than 30 seconds. Wrap it up, its over.”
这句话说出了核心洞察:大模型已经能直接生成可运行的 Manim 代码了。问题是质量不稳定,镜头语言、教学节奏、视觉美感全靠运气。Math-To-Manim 的做法是在代码生成前加六个推理阶段,让 AI 先”想清楚”再写代码。
为什么是它
六阶段推理链:不是写代码,是做导演
普通 text-to-code 跳过了所有教学设计。Math-To-Manim 走了一条更长的路:
- Intent(意图解析) — 澄清学习者真正想理解什么
- Prerequisite Graph(前置知识图谱) — 从最终概念反向推导出需要先学什么
- Curriculum(课程编排) — 把知识图谱变成可教学的顺序
- Math Director(数学导演) — 选择定义、方程、假设和示例
- Cinematographer(摄影师) — 设计每一帧的镜头语言、文字排版、动画时序
- Scene Composer(场景合成) — 把所有计划编译成 Manim 对象和动画序列
然后才进入代码生成、静态检查、渲染、自修复。
这意味着什么? 它不是在”写 Manim 代码”,它是在”教你怎么理解这个概念,然后用动画把教学过程拍成电影”。每一帧都有教学目的,不是装饰。
Prime Intellect RL:让模型学会修复自己的错误
Math-To-Manim 还在做一件更前沿的事:用强化学习训练模型修复渲染后的错误。模型生成了 Manim 代码,渲染后发现文字和公式重叠了——RL 环境给模型看验证报告和渲染证据,让它学会只修改必要的代码片段,而不是重写整个场景。
这个 RL 环境已经发布在 Prime Intellect Hub 上(harleycooper/math-to-manim@0.1.1),在 Qwen/Qwen3.5-35B-A3B 上跑过 25 步 pilot。目标不是”一次性完美”,而是”出了问题能自己修”。
不只是 Claude:双后端支持
项目支持两个代码生成后端:
- Claude Mythos — 六阶段推理链,电影级输出,适合高质量场景
- Codex CLI — 本地认证的 OpenAI 会话,渐进式迁移,适合快速迭代
早期规划阶段用 typed adapter,只有代码生成和修复阶段才切换到 Codex。这让迁移是增量的,不是推倒重来。
快速上手
三步到第一个动画:
# 1. 克隆并安装
git clone https://github.com/HarleyCoops/Math-To-Manim.git
cd Math-To-Manim
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev,render]"
# 2. 安装渲染依赖(Debian/Ubuntu/WSL)
./scripts/bootstrap-render.sh
# 3. 生成动画
m2m2 generate \
"Show why the quantum harmonic oscillator only allows discrete energies: start with a springy potential well, zoom into the wavefunctions, then reveal the ladder of allowed energy levels." \
--codegen-provider codex-cli \
--codex-full-auto \
--style cinematic \
--quality l \
--runs-dir runs
生成的视频和所有中间产物都保存在 runs/<run_id>/ 目录下——包括 JSON 契约、生成的代码、验证报告、渲染结果和 manifest。
如果你不想花模型调用时间,可以先跑确定性冒烟测试:
math-to-manim generate "Explain why derivatives are slopes" --deterministic --no-render
这会验证 CLI、artifact 契约和验证器是否正确连接,不消耗任何 API 额度。
亮点代码
项目的杀手级用法是 QED 之旅——一个 200 秒、约 160 个动画的量子电动力学完整讲解:
python -m mythos.harness "explain quantum field theory" --render -q m
# 或者直接渲染旗舰场景
manim -qh examples/mythos/qft_cinematic.py QFTCinematicJourney
这个场景的镜头语言是:进入拉格朗日量内部,逐项用纯文字标题解释符号含义,然后镜头飞入正在讲解的那项,再拉远恢复上下文。不是从头到尾念公式,而是像导游一样带你在数学结构里走一圈。
每次运行都会产出完整的 run bundle:
runs/<run_id>/
request.json # 原始请求
intent.json # 意图解析
knowledge_graph.json # 前置知识图谱
curriculum.json # 课程编排
math_packet.json # 数学材料包
storyboard.json # 分镜脚本
scene_spec.json # 场景规格
generated_scene.py # 生成的 Manim 代码
validation_report.json
render_result.json
review_report.json
manifest.json
每个 JSON 都是版本化的契约,可以被下游工具读取和验证。这不是一个黑箱,而是一条完全可观测的管线。
社区与生态
社区活跃度从数据看不错:2.4k star,255 fork,339 次提交,18 个 watcher。项目有完善的文档架构——docs/ 目录下有架构文档、RL 集成说明、roadmap 和 showcase 画廊。
Hermes Agent 被集成为仓库的贡献者/运维层。它不是运行时依赖,而是用仓库的方式和项目交互:读文件、搜代码、跑测试、审查渲染结果。这让维护反向推理管线变得可行。
Prime Intellect 的 RL 集成是生态中最值得关注的部分。模型不再只是生成代码,而是在学习修复渲染后的视觉问题——文字重叠、公式太小、镜头角度错误。这是一个可训练的动画制作环境,不只是一个代码生成器。
适用场景与局限
适合用的场景:
- 数学/物理科普视频制作——从概念解释到成品动画
- 在线教育内容——课程动画、知识点可视化
- 学术论文配图——生成论文中的动态演示
- 社交媒体传播——快速产出数学之美的短视频
不适合的场景:
- 需要精确时序控制的商业动画——管线是自动化的,精细调参空间有限
- 复杂的叙事类动画——目前专注于教学解释,不是讲故事
- 实时渲染——生成后需要离线渲染,不支持实时预览
- 非数学内容——核心推理链是围绕数学教学设计的
踩坑提醒:
- 渲染需要 FFmpeg 和 LaTeX,WSL 和 macOS 都需要额外安装系统依赖
- 高质量渲染(
-q l)耗时较长,快速迭代建议先用--no-render验证代码 - Claude Mythos 后端需要 Claude 订阅或 API 访问,Codex CLI 需要本地认证
结论
Math-To-Manim 证明了一件事:AI 生成代码只是起点,让 AI 理解”怎么教”才是真正的差异化。六个推理阶段把一个模糊的问题变成一部有教学节奏的动画电影,中间产物全部可观测、可验证、可修复。
如果你在做数学可视化或教育内容,这个项目值得认真看一眼。它不只是一个代码生成器,而是一个”教学动画制作管线”。