曼尼姆·麦克普
文本转视频动画由 曼尼格尔 (3Blue1Brown的库)和多代理LLM管道。描述您想要看到的内容,并取回渲染的动画。
作为一个 CLI工具一 LLM动力代理,或 MCP服务器 与Claude等人工智能助手集成。
例子
| 圆形到方形变换 | 3D旋转立方体 |
|---|---|
manim-mcp gen "Transform a blue circle into a red square" | manim-mcp gen "A 3D cube rotating. Use ThreeDScene." |
| Circle to Square | Rotating Cube |
特性
- RAG驱动的代码生成 -使用5300多个索引文档生成高质量代码:
- 3140 3蓝色1棕色场景示例 - 1652个带有精确参数的manimgl API签名 - 101个动画模式模板(黎曼求和、变换、物理等) - 470个库文档文件 - 16+常见错误模式
- 探头集成 -可选的AST感知语义代码搜索使用 探测:
- 基于树的代码解析(理解Python结构) - 混合BM25+TF-IDF排名,以实现更好的关键字匹配 - 完整的代码块提取(无截断)
- 多动画视频 -每个视频使用2+个动画模式,达到专业质量
- 多代理管道 -概念分析、场景规划、代码生成和代码审查
- 自我学习 -存储错误模式和修复以进行持续改进
- 多供应商法学硕士 -支持谷歌双子座、拟人克劳德和DeepSeek
- 音频旁白 -具有自动同步功能的并行音频生成:
- 首先生成视频代码(无旁白限制) - TTS与视频渲染并行运行 - 音频自动调整节奏以匹配视频持续时间
- 参数验证 -API签名可防止无效的方法调用
快速开始
pip install -e ".[rag]"先决条件
- Python 3.11+
- 曼尼格尔 安装:
pip install manimgl - A. Google Gemini API密钥 设为
MANIM_MCP_GEMINI_API_KEY - 可选:ChromaDB(用于RAG)、ffmpeg(用于音频混合)、LaTeX(用于数学文本)、S3/MinIO(用于云存储)
- 可选: 探测 用于AST感知代码搜索(通过安装
cargo install probe-search)
环境变量
复制 .env.example 到 .env 并填写您的值:
# LLM Provider
MANIM_MCP_GEMINI_API_KEY=your-gemini-api-key
MANIM_MCP_GEMINI_MODEL=gemini-3-flash-preview # default
# Alternative: Claude
# MANIM_MCP_LLM_PROVIDER=claude
# MANIM_MCP_CLAUDE_API_KEY=your-claude-api-key
# MANIM_MCP_CLAUDE_MODEL=claude-sonnet-4-20250514
# Alternative: DeepSeek
# MANIM_MCP_LLM_PROVIDER=deepseek
# MANIM_MCP_DEEPSEEK_API_KEY=your-deepseek-api-key
# RAG (ChromaDB)
MANIM_MCP_RAG_ENABLED=true
MANIM_MCP_CHROMADB_HOST=localhost
MANIM_MCP_CHROMADB_PORT=8000
# S3 Storage (optional)
MANIM_MCP_S3_ENDPOINT=localhost:9000
MANIM_MCP_S3_ACCESS_KEY=minioadmin
MANIM_MCP_S3_SECRET_KEY=minioadmin
MANIM_MCP_S3_BUCKET=manim-renders
# Probe Search (optional - for AST-aware code search)
# Colon-separated paths to search for scene examples
MANIM_MCP_PROBE_PATHS=/path/to/3b1b-videos:/path/to/manim-examples用法
生成动画
# Simple mode (default) - direct LLM generation
manim-mcp gen "Transform a blue circle into a red square"
# Advanced mode - multi-agent pipeline with RAG
manim-mcp gen "Visualize the central limit theorem" --mode advanced
# With quality and format options
manim-mcp gen "Animate eigenvectors" --quality high --format mp4生成模式:
--mode simple(默认):直接生成LLM代码,速度更快--mode advanced:多代理管道(ConceptAnalyzer→ 风景规划师→ 代码生成器→ CodeReviewer)与RAG检索
使用音频旁白生成
manim-mcp gen "Introduction to linear algebra" --audio
manim-mcp gen "Pythagorean theorem proof" --audio --voice Kore音频使用a 并行流水线 自动同步:
- 首先生成Manim代码(视频驱动)
- 视频渲染和TTS生成并行运行
- 音频会自动调整节奏以匹配视频持续时间
- 音频被混合到最终的视频中
编辑现有动画
manim-mcp edit "Make the vectors red and add axis labels"列出、检查、删除渲染图
manim-mcp list --status completed --limit 10
manim-mcp get
manim-mcp delete --yes代理模式
让LLM解释多步骤请求:
manim-mcp prompt "Create a video on eigenvectors, then edit it with better colors"MCP服务器
启动模型上下文协议服务器,以便与Claude、Cursor或其他MCP客户端集成:
manim-mcp serve
manim-mcp serve --transport stdio
manim-mcp serve --transport streamable-httpRAG索引
索引所有知识源以获得最佳代码生成质量:
# Check current index status
manim-mcp index status
# Index 3b1b video scenes (3,140 scenes)
manim-mcp index 3b1b-videos --path /path/to/3b1b/videos
# Index manimgl API signatures (1,652 signatures)
manim-mcp index api
# Index animation patterns (101 patterns)
manim-mcp index patterns
# Index error patterns (16+ patterns)
manim-mcp index errors
# Index library documentation (470 docs)
manim-mcp index manim-docs
# Clear a collection
manim-mcp index clear patterns --yes码头工人
使用所有依赖项(ChromaDB、MinIO)运行:
export MANIM_MCP_GEMINI_API_KEY=your-api-key
docker compose up这将开始:
- 端口8000上的MCP服务器
- 端口8001上的ChromaDB
- 端口9000/9001上的最小IO
建筑
┌─────────────────────────────────────────────────────────────────────────────┐
│ AUDIO PIPELINE (parallel with video) │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ prompt ──► Code Generation (video-driven) │
│ │ │
│ ┌────────────┴────────────┐ │
│ │ │ PARALLEL │
│ ▼ ▼ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ Render Video │ │ Generate Script │ │
│ │ │ │ + TTS Audio │ │
│ └────────┬─────────┘ └────────┬─────────┘ │
│ │ │ │
│ ▼ ▼ │
│ video.mp4 audio segments │
│ │ │ │
│ └────────────┬────────────┘ │
│ ▼ │
│ Pace audio to video duration │
│ │ │
│ ▼ │
│ Mix Audio + Video ──► S3 upload ──► URL │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────────────┐
│ MULTI-AGENT PIPELINE │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ prompt ──► ConceptAnalyzer ──► ScenePlanner ──► CodeGenerator ──► CodeReviewer
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────────────────────────┐ │
│ │ ChromaDB RAG (5,300+ docs) │ │
│ │ ┌──────────┬──────────┬──────────┬────────┬────────┐ │ │
│ │ │ scenes │ api │ patterns │ docs │ errors │ │ │
│ │ │ (3,140) │ (1,652) │ (101) │ (470) │ (16) │ │ │
│ │ └──────────┴──────────┴──────────┴────────┴────────┘ │ │
│ └─────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────┬──────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ RENDER PIPELINE │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ validated code ──► CodeSandbox ──► manimgl (xvfb) ──► S3 upload ──► URL │
│ │ │ │
│ ▼ ▼ │
│ ┌───────────┐ ┌───────────────┐ │
│ │ SQLite │ │ MinIO/S3 │ │
│ │ (tracker) │ │ (storage) │ │
│ └───────────┘ └───────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘组件
| 组件 | 描述 |
|---|---|
| ConceptAnalyzer | 从提示中提取领域、复杂性和关键概念 |
| 风景规划师 | 设计动画结构、时间和过渡 |
| 代码生成器 | 使用场景、API签名和动画模式生成manimgl代码 |
| 代码审查员 | 验证代码质量并应用修复 |
| 参数 | 根据API签名验证方法参数 |
| 双子座服务 | 与双子座声音并行的TTS,生成叙事脚本 |
| ChromaDB服务 | 在5300多个索引文档中进行矢量相似性搜索 |
| 探针搜索器 | 使用Probe进行AST感知语义代码搜索(树保姆+BM25) |
| 代码检查工具 | 使用ruff进行预生成代码验证 |
| 自我批评 | 具有自我审查功能的多通道代码生成 |
| Schema生成器 | 基于JSON模式的结构化场景生成 |
| 寺庙发电机 | 第一代模板(中间填充样式) |
| 代码沙盒 | 基于AST的安全验证(阻止危险代码) |
| 人体模型渲染器 | 使用xvfb执行manimgl以进行无头渲染 |
| S3存储 | 使用预签名的URL上传到MinIO/S3 |
| RenderTracker | 在SQLite中持久化作业元数据 |
RAG系列
| 收藏 | 文档 | 描述 |
|---|---|---|
manim_scenes | 3140 | 生产3Blue1Brown场景代码 |
manim_api | 1652 | 带精确参数的API签名 |
animation_patterns | 101 | 可重复使用的动画模板 |
manim_docs | 470 | manimgl库文档 |
error_patterns | 16+ | 自学错误/修复模式 |
自我学习
系统从每个错误中学习:
- 验证失败 -LLM更正修复后,与修复程序一起存储
- 渲染失败 -存储以备将来进行模式匹配
- 成功修复 -存储为错误→修复RAG检索的配对
这创建了一个反馈循环,系统会随着时间的推移而改进。
MCP工具
当作为MCP服务器运行时,可以使用以下工具:
| 工具 | 说明 |
|---|---|
generate_animation | 从文本提示创建动画 |
edit_animation | 使用说明编辑现有动画 |
list_renders | 使用分页和筛选列出过去的渲染 |
get_render | 获取完整详细信息和新的下载URL |
delete_render | 永久删除渲染及其文件 |
rag_search | 在RAG数据库中搜索类似场景 |
rag_stats | 获取收藏统计信息 |
推荐提示
该系统在RAG覆盖率较高的数学和教育主题上表现最佳:
| 主题 | 索引场景 | 示例提示 |
|---|---|---|
| 线性代数 | 810+ | “矩阵变换动画”,“变换过程中显示特征向量” |
| 几何学 | 568+ | “毕达哥拉斯定理的直观证明”、“内角定理” |
| 概率 | 290+ | “中心极限定理”,“具有更新先验的贝叶斯定理” |
| 微积分 | 178+ | “作为切线斜率的导数”,“黎曼和收敛到积分” |
发展
pip install -e ".[dev,rag]"
pytest测试脚本
# Test all LLM provider combinations (Gemini/Claude × Simple/Advanced × RAG On/Off)
python scripts/test_providers.py
python scripts/test_providers.py --no-audio # Skip audio generation
python scripts/test_providers.py --quick # Only simple mode tests
# Benchmark LLM providers (DeepSeek vs Gemini)
python scripts/benchmark_providers.py
python scripts/benchmark_providers.py --providers gemini,deepseek --categories simple,medium许可证
麻省理工学院

