返回市场
manim-管理控制面板

manim-管理控制面板

作者:wstcpyt16 星标更新:2025-05-06

项目介绍

Manim MCP

License: Apache 2.0 Docker Manim API

基于Docker的环境,用于使用Manim创建数学动画,提供CLI界面和支持模型上下文协议(MCP)的Web API,以便与AI助手进行交互。

📑 概述

本项目提供:

  1. 容器化Manim环境:在隔离且可重现的Docker环境中运行Manim
  2. Web API:通过HTTP请求创建和管理Manim动画
  3. MCP集成:与Claude等AI助手直接交互
  4. 文件管理:上传脚本并下载生成的动画

🚀 快速开始

前提条件

  • 在系统上安装Docker和Docker Compose

安装

选项1:使用预构建镜像(推荐)

从Docker Hub拉取预构建镜像:

docker pull wstcpyt/manim-docker-mcp:latest

然后使用docker-compose运行:

docker compose up -d

选项2:本地构建

  1. 克隆仓库:

    git clone https://github.com/YOUR_USERNAME/manim-docker-mcp.git
    cd manim-docker-mcp
    
  2. 构建Docker镜像:

    docker compose build
    

使用

CLI模式

animations目录中创建一个Python文件(参见下面的示例),然后运行:

docker compose run manim -pql animations/example.py ExampleScene

API模式

启动API服务器:

docker compose up -d manim-api

访问API文档:http://localhost:8000/docs

🎬 创建动画

基本示例

创建文件animations/example.py

from manim import *

class CircleToSquare(Scene):
    def construct(self):
        circle = Circle()
        circle.set_fill(BLUE, opacity=0.5)

        square = Square()
        square.set_fill(RED, opacity=0.5)

        self.play(Create(circle))
        self.wait()
        self.play(Transform(circle, square))
        self.wait()

运行动画

# CLI模式,预览(-p),低质量(-ql)
docker compose run manim -pql animations/example.py CircleToSquare

# API模式
curl -X POST "http://localhost:8000/run-manim?filepath=/manim/temp/circle_example.py&scene_name=CircleToSquare&quality=low_quality"

📂 项目结构

manim-docker-mcp/
├── animations/           # Manim动画脚本
├── app/                  # FastAPI应用程序
├── media/                # 生成的动画(CLI模式)
├── output/               # 生成的动画(API模式)
├── temp/                 # 临时文件
├── uploads/              # 上传的动画脚本
├── Dockerfile            # Docker镜像定义
├── docker-compose.yml    # Docker Compose配置
└── README.md             # 本文件

🔧 配置

质量设置

标志分辨率帧率最适合
-ql480p15fps快速预览
-qm720p30fps通用用途
-qh1080p60fps演示
-qk1440p60fps生产视频

其他有用标志

  • -p:预览输出文件
  • -t:透明背景
  • --save_last_frame:仅渲染最后一帧
  • -c COLOR:设置背景颜色

🌐 API文档

核心端点

列出文件

GET /list-files?directory=/manim

写入文件

POST /write-file?filepath=/manim/temp/example.py

运行动画

POST /run-manim?filepath=/manim/temp/example.py&scene_name=CircleToSquare

下载动画

GET /download-file?filepath=/media/videos/example/480p15/CircleToSquare.mp4

完整的API文档可在/docs端点获取。

🤖 AI助手集成(MCP)

本项目支持模型上下文协议(MCP),使AI助手能够:

  1. 根据自然语言描述创建Manim脚本
  2. 运行动画并提供下载链接
  3. 浏览和管理生成的媒体文件

MCP会话示例:

用户:创建一个显示圆变成正方形的动画
AI:我将为您创建该动画...

🔍 高级用法

自定义LaTeX

容器中包含了一个最小化的LaTeX安装。可以在动画中使用自定义LaTeX:

formula = MathTex(r"\int_{a}^{b} f(x) \, dx = F(b) - F(a)")
self.play(Write(formula))

挂载自定义目录

修改docker-compose.yml文件以挂载其他目录:

volumes:
  - ./my_custom_dir:/manim/custom

🛠️ 故障排除

常见问题

  • Docker未运行:确保Docker守护进程正在运行
  • 权限错误:容器需要对挂载卷的写入权限
  • 缺少媒体文件:检查正确的输出目录(CLI模式为media/,API模式为output/)

获取帮助

如果您遇到问题:

  1. 查看Manim文档
  2. 搜索现有的GitHub问题
  3. 创建一个新的问题,并详细描述您的问题

📜 许可证

本项目采用Apache License 2.0许可 - 详情请参阅LICENSE文件。

🙏 致谢