数学动画生成器

一个基于Manim的数学动画视频生成工具,通过Web界面或API从2407个预设代码示例中生成MP4视频。

  • by NileshArnaiya
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 NileshArnaiya/Clickhouse-mcp-3blue1brown

使用说明

Manim 视频生成器 - 快速入门

这款应用的功能

这个应用程序使用以下方法生成数学动画视频:

  1. 数据源来自3Blue1Brown数据集(CSV文件)的2,407个Manim代码示例 - 使用了https://huggingface.co/datasets/dalle2/3blue1brown-manim/
  2. 代码执行E2B沙盒化的Python解释器运行Manim代码
  3. 视频输出通过网页界面向用户返回MP4视频

建筑

User → Web UI → Flask API → CSV Data → E2B Sandbox → Manim → MP4 Video
                                ↓
                         ClickHouse Cloud
                      (original data source)

快速入门

  1. 安装依赖项:

    pip install -r requirements.txt
    
  2. 设置环境变量: 创建 .env 附上您的E2B API密钥文件:

    E2B_API_KEY=your_key_here
    
  3. 运行应用程序:

    python app.py
    
  4. 打开浏览器: 导航至 http://127.0.0.1:5001

特点/功能

Web 用户界面 (http://127.0.0.1:5001)

  • 🎯(目标) 根据提示生成输入关键词,如“圆形”、“旋转”、“动画”
  • 🎲(骰子/游戏骰子) 随机生成从2,407个示例中随机获取一个动画
  • 📋 译文:清单 浏览提示包含所有2,407个可用提示的下拉菜单
  • 🎬 电影/影片的标志 视频播放器在线观看生成的视频
  • 💾 代表“软盘”或“存储设备”的符号。 下载将MP4文件保存到本地

API终端点

GET /prompts

列出所有可用的提示

curl http://127.0.0.1:5001/prompts
# Returns: {"count": 2407, "prompts": [...]}

POST /generate

根据提示生成视频

curl -X POST http://127.0.0.1:5001/generate \
  -H "Content-Type: application/json" \
  -d '{"prompt":"circle"}' \
  --output animation.mp4

GET /generate/random

生成随机视频

curl http://127.0.0.1:5001/generate/random --output random.mp4

POST /code

获取代码而无需生成视频

curl -X POST http://127.0.0.1:5001/code \
  -H "Content-Type: application/json" \
  -d '{"prompt":"text"}'

视频生成的工作原理

  1. 用户请求用户输入提示或点击随机
  2. 数据获取Flask 在 CSV 中搜索匹配的 Manim 代码
  3. **E2B Sandbox(沙盒)**创建独立的Python环境
  4. 安装Manim: pip install manim 在沙盒环境中
  5. 执行代码运行Manim代码以生成视频
  6. 返回MP4将视频文件流式传输回用户

示例提示

  • “创建一个圆圈”
  • “Animate text”翻译成中文是“动画文字”
  • “旋转正方形”
  • “Draw graph”翻译成中文是“绘制图表”
  • “转换形状”
  • “写出方程”

数据源

该应用程序使用 3blue1brown-manim-prompts.csv 包含:

  • 第一列提示描述(动画的作用)
  • 第二列Manim Python 代码
  • 总记录数2,407个例子

这些数据最初被加载到ClickHouse云数据库中,用于演示目的。

技术栈

  • 后端Flask(Python)
  • 数据CSV/Pandas(可连接到ClickHouse)
  • 执行E2B 代码解释器(沙盒环境中的 Python)
  • 动画Manim 社区版
  • 前端纯HTML/CSS/JavaScript

当前状态

✅ 所有2,407条提示已加载并可搜索 ✅ 带有下拉浏览器的Web用户界面 ✅ 代码检索功能正常工作 ✅ E2B沙盒已配置 API端点功能正常

这款应用已准备好生成Manim视频!

故障排除

端口5000正在使用中? 该应用程序默认运行在5001端口(macOS AirPlay通常使用5000端口)。

E2B API密钥缺失? 设定 E2B_API_KEY 在里面 .env 文件。从 https://e2b.dev 获取密钥

视频生成速度慢? 第一代(或首次)请求需要30-60秒来安装E2B的Manim。后续请求可能会更快。

没有加载提示吗? 确保 3blue1brown-manim-prompts.csv 存在于根目录中。