MathAnim 是一款本地桌面应用,把数学/物理教学描述转换成 Manim 动画,并在本机预览与导出视频或图片。
输入描述 → AI 生成 Manim 脚本 → 静态检查 → Manim 渲染 → 预览 / 导出
- 双输入创作:直接描述 / 题干 + 解析
- AI 代码生成:可选两阶段生成、参考图 URL、480p/720p/1080p、视频或图片
- 场景与任务管理:列表/网格、搜索、状态筛选、收藏、克隆、拖拽排序
- 多工作区:任务与备课笔记按工作区隔离
- 备课笔记:Markdown + LaTeX、图片粘贴;AI 扩写/提纲/润色/讲解/分镜/生成动画
- 预览与 Review Room:进度拖动(HTTP Range)、播放速度、导出帧、打开输出目录、全屏审阅
- 导入导出:任务包
.mathanim.zip - 环境检测:Python / Manim 状态栏
已废弃:TTS / 配音。默认 UI 为 Vue 3 + JavaFX WebView(旧 FXML 仅兼容)。
完整清单见 FEATURE_SCOPE.md。
本地运行后:侧边栏任务列表 · 创作区 · 预览区 · 备课笔记。
| 依赖 | 版本建议 |
|---|---|
| JDK | 17+(打包推荐 17–21) |
| Node.js | 18+ |
| Maven | 3.8+(或使用仓库自带 mvnw.cmd) |
| Python + Manim Community | 用于渲染 |
git clone git@github.com:1634594707/mathanim-desktop.git
cd mathanim-desktop
.\run-dev.ps1脚本会启动 Vite(5173)与 Spring Boot。也可手动:
cd frontend
npm install
npm run dev
# 另一终端
.\mvnw.cmd spring-boot:run# 便携版 app-image
.\package-windows.ps1
# 便携版 + 安装包目录 / Zip
.\scripts\build-installer.ps1| 产物 | 路径 |
|---|---|
| 便携运行 | target\windows\MathAnim\MathAnim.exe |
| 安装程序 | target\installer\MathAnim-Setup\Install.cmd |
| 分发 Zip | target\installer\MathAnim-Setup.zip |
安装默认目录:%LOCALAPPDATA%\Programs\MathAnim,并创建桌面与开始菜单快捷方式。
mathanim-desktop/
├── frontend/ # Vue 3 + TypeScript + Vite
│ └── src/
│ ├── api/ # REST / SSE 客户端
│ ├── components/ # 界面组件
│ ├── composables/ # 工作区 / 笔记 / 卡片状态
│ └── styles/
├── src/main/java/com/mathanim/
│ ├── MathAnimFx.java # 桌面入口(WebView)
│ ├── rest/ # REST API
│ ├── service/ # 业务与 Manim 流水线
│ ├── domain/ repo/ config/
│ └── ui/ # 遗留 FXML(非默认)
├── src/main/java/db/migration/
├── src/main/resources/ # application.yml · prompts · 静态资源
├── examples/ # Manim 示例脚本
├── scripts/ # 构建 / 安装脚本
├── docs/ # 架构与归档文档
├── package-windows.ps1
├── run-dev.ps1
├── FEATURE_SCOPE.md
└── README.md
架构说明:docs/ARCHITECTURE.md
- 应用内 设置 / AI 配置
- 或
src/main/resources/application.yml中mathanim.* - 用户数据目录:
%USERPROFILE%\.mathanim\(SQLite、任务工作目录、导出媒体、WebView 缓存)
| 前缀 | 说明 |
|---|---|
/api/jobs |
任务 CRUD、克隆、导入导出、打开文件夹、筛选 |
/api/workflow |
运行 / 取消 / SSE |
/api/workspaces |
工作区与备课笔记、笔记 AI |
/api/media/{id} |
媒体流(支持 HTTP Range,便于进度条拖动) |
/api/settings |
AI 与路径设置 |
/api/environment |
Python / Manim 检测 |
/api/auth |
Bearer / CSRF |
- 壳:JavaFX WebView + JsBridge
- 后端:Spring Boot 3.4、Spring Security、JPA、Flyway、SQLite
- 前端:Vue 3、Vite、TypeScript、CodeMirror、KaTeX
- 渲染:本机 Manim Community
- Fork 本仓库
- 创建分支:
git checkout -b feature/your-feature - 提交:
git commit -m "feat: ..." - 推送并开 Pull Request
请勿提交 target/、node_modules/、.mathanim/、API Key 与生成视频。
MIT License — 详见 LICENSE。