marcelo-earth/generative-manim
🎨 GPT for video generation ⚡️
Generative Manim – AI 驱动的动画创作
是什么
- 一个开源工具套件,让你用自然语言描述场景,由大型语言模型(LLM)生成对应的 Manim Python 代码,再渲染为视频。
- 基于 Manim 渲染器本身是确定性验证器的理念:生成的代码要么产生正确的动画,要么崩溃,这种结果可作为训练的奖励信号。
核心组件
| 组件 | 目的 |
|---|---|
| LLM → Manim 代码引擎 | 一系列模型包装器(GPT‑4o、Claude、Gemini、通过 Featherless 使用的开源权重模型、LiteLLM 代理等),将自然语言提示转换为 Manim 脚本。 |
| API | 一种 REST 风格的 Animation Processing Interface,接收提示,选择模型,执行生成,并返回渲染后的视频(或原始 Python 代码)。 |
| Web 演示 | 部署在 generative-manim.vercel.app;在浏览器中展示端到端流程。 |
| Animo 桌面应用 | 同一流程的打包本地渲染版本,提供隐私保护和零额外云成本。 |
| 训练流水线 | 开源脚本,使用三阶段过程(监督微调 → 直接偏好优化 → 组相对策略优化)对开源权重模型(Qwen 2.5‑Coder 7B、DeepSeek‑Coder V2 Lite、CodeLlama 7B)进行微调,以 Manim 渲染器作为奖励信号。 |
| 基准测试套件 | 可复现的评估(pass@k、基于渲染的评分、结构检查),用于任何生成 Manim 代码的模型。 |
主要特性
- 提示 → 动画:输入一句如 "A ball falls, bounces, and turns into a star" 的描述,即可获得可播放的视频。
- 多模型后端支持:官方支持 OpenAI、Anthropic、Google Gemini、Moonshot,以及通过 Featherless 或 LiteLLM 访问的开源权重模型。
- Animo 本地渲染:无需上传代码或视频;所有操作在用户本地机器上完成。
- 可导出代码:生成的 Manim 脚本会提供,便于编辑、版本控制或复用。
- 开源训练:提供训练自定义代码生成模型的脚本,以及衡量模型生成可运行 Manim 代码频率的基准测试。
- 社区资源:Discord 用于讨论,精选的 Manim Awesome Skills 仓库,以及详细的部署文档(Docker/Render)。
典型工作流
- 编写描述 – 使用自然语言,无需 Manim 知识。
- 选择模型 – 选择高性能模型(如 GPT‑4o)或更便宜的开源权重模型。
- 生成代码 – API 调用 LLM,接收 Python 脚本,并可选择性地流式返回。
- 渲染 – 脚本通过 Manim 运行;返回结果视频(或由 Animo 本地保存)。
- 迭代 – 编辑提示或生成的代码,重复执行。
快速入门
- 试用演示:访问 https://generative-manim.vercel.app 并输入提示。
- 本地运行 API:
git clone https://github.com/360macky/generative-manim.git cd generative-manim/api # 设置你的 OpenAI/Anthropic/Google API 密钥 export OPENAI_API_KEY=… uvicorn main:app --reload # 或按 docs/cloud-deployment.md 中所述使用 Docker - 使用 Animo:从 https://animo.video 下载桌面应用,安装并开始创建,无需任何服务器。
- 训练自己的模型:遵循
training/的 README——它展示了如何使用提供的 5,000+ 个提示-代码对微调 Qwen 2.5‑Coder 7B 并运行基准测试。
谁会受益
- 教育工作者和内容创作者:无需学习 Manim 即可快速制作解释性动画。
- 开发者:寻找具有确定性、可视化奖励的代码生成基准的人。
- 研究人员:对 LLM 驱动编程感兴趣,尤其关注输出可自动验证(渲染视频)领域的研究者。
- 学生:希望通过自然语言生成的动画可视化探索物理或数学概念的学生。
社区与支持
- Discord: https://discord.gg/SNdbPU2AMM
- GitHub 上欢迎提交问题和拉取请求。
- 赞助:目前由 The Astronomical Software Company 支持。
以上所有信息均直接来自仓库的 README;未推断任何额外功能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目