phelpsyacht/dshmath-manim2

dshmath-manim

DeepSeek Harness math animation plugin powered by Manim CE (zero-code skills for math/physics users)

AI 분석

核心用途是让用户通过自然语言口语直接生成高质量的数学或物理演示动画。适合教师、学生及科研人员,无需编写代码即可渲染复杂的函数、几何和物理图像。

패키지
dshmath-manim
버전
0.1.0
라이선스
Apache-2.0
최근 업데이트
2026. 8. 17.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:phelpsyacht/dshmath-manim

数学动画向导(零代码使用)

面向只懂数学、不懂代码的用户。启动后浏览器打开即可使用:

python3 py/wizard_server.py --port 8321

### 使用者视角(零代码,完全不用接触代码)

在 dsh 对话中直接说数学/物理语言即可,例如:

- 「画一个正弦函数和余弦函数在同一坐标系里的对比动画」
- 「y=x² 在 x=1 处的切线,标出导数」
- 「画出 sin x 从 0 到 π 的定积分,涂上面积」
- 「画一个蓝色三角形,标 ∠ABC」
- 「画心形线 r=1+cosθ」
- 「画马鞍面 z=x²-y²,能旋转的」
- 「弹簧振子的位移-时间图像」(物理 → 自动翻译为简谐运动曲线)

模型会加载技能 → 翻译成模板参数 → 调用 `render_math_scene` → 返回视频。超出模板时自动切换 `manim-codegen` 写代码渲染。技能内置:

- **口语 → 表达式翻译表**("x 的平方"→`x**2`,极坐标、3D 双变量同样覆盖)
- **模板选择决策树**(需求类型 → 模板)
- **精细动画加分项**(标题智能渲染:数学公式走 LaTeX、含中文自动走 Pango 文本渲染,中文标题无忧;贴合函数形状的坐标区间、多曲线配色、low 预览→high 出片)
- **自愈循环**(参数校验/表达式/LaTeX 报错 → 自动修正重试,连续 2 次失败才询问用户)

# 方式 A:加载本插件,技能随插件自动注册(推荐,零配置)
dsh --patch /path/to/dshmath-manim/math-manim.cordis.yml

## 打包与发布(让其他使用者安装)

插件是标准的 dsh bundle 包:`package.json` 声明 `dsh.bundle.patch` 指向 `math-manim.cordis.yml`,
`files` 字段保证 `dist/`(编译产物)、`py/`(Python 渲染后端与模板)、`skills/`(技能提示词)全部随包分发。

### 方式一:npm 发布(推荐,使用者一行安装)

```bash
cd dshmath-manim
npm run build            # 编译 dist/
npm publish              # 发布到 npm(会先跑 build)

### 方式一:npm 发布(推荐,使用者一行安装)

```bash
cd dshmath-manim
npm run build            # 编译 dist/
npm publish              # 发布到 npm(会先跑 build)

# 使用者侧:
dsh plugin --profile web add dshmath-manim

方式二:tarball 交付(内部/私有分发)

npm pack                 # 生成 dshmath-manim-0.1.0.tgz

# 使用者侧:
dsh plugin add ./dshmath-manim-0.1.0.tgz

方式三:GitHub 安装

给仓库打 dsh-plugin 话题即可进入社区生态;使用者可 dsh plugin add github:you/dshmath-manim。 注意 git 安装拉取的是源码,需要 prepare 脚本且用户需在 profile 的 pnpm-workspace.yaml allowBuilds 中授权构建——推荐优先用 npm / tarball 避免此门槛。

使用者安装后的效果

安装成功后,使用者只需在 dsh 对话中说数学/物理语言,例如「画一个蓝色三角形标 ∠ABC」或 「弹簧振子的动画」,模型会加载插件注册的两个技能(math-animation 模板路径 / manim-codegen 自由代码路径)自动生成动画。使用者侧无需安装任何 Python 依赖 —— 但渲染需要本机已安装 manim + numpy(见上「Python 依赖」),或后续可内置自动检测提示。

安全模型

  • 模板渲染:参数只做 {key} 文本替换 + JSON 字面量序列化,绝不 eval 模型输入
  • 模型代码:AST 静态校验,拦截 os/subprocess/eval/open 等危险符号后才渲染
  • 进程隔离:渲染始终在 Python 子进程内执行,带超时与取消信号(exec.signal
  • 环境隔离:子进程清除 IDE 注入的钩子(CODEBUDDY_SAFE_DELETE_*),避免 TeX 临时文件清理被拦截

自愈循环(与 dsh agent loop 协同)

模型写出场景 → validate_math_code 检查 → 失败则根据 violations 重写 → render_math_scene/render_math_code 渲染 → 渲染错误(含 LaTeX 报错)作为 tool result 回喂 → 模型修正。错误信息被裁剪到末尾 2000 字符返回,避免上下文爆炸。

路线图

  • Python 渲染后端 + 6 个数学模板(本地验证通过)
  • TS 插件(4 个工具注册)
  • 零代码技能包:math-animation Skill(模板路径:提示词引导参数翻译)
  • 进阶技能包:manim-codegen Skill(自由代码路径:模型直接写 Manim 场景代码)
  • dsh 仓库内集成测试(需在 deepseek-harness 仓库中 pnpm 安装验证)
  • UI 卡片(presentResult 内嵌视频预览)
  • 对话式增量修改(改模板参数重渲染)

使用者安装后的效果

安装成功后,使用者只需在 dsh 对话中说数学/物理语言,例如「画一个蓝色三角形标 ∠ABC」或 「弹簧振子的动画」,模型会加载插件注册的两个技能(math-animation 模板路径 / manim-codegen 自由代码路径)自动生成动画。使用者侧无需安装任何 Python 依赖 —— 但渲染需要本机已安装 manim + numpy(见上「Python 依赖」),或后续可内置自动检测提示。