前言¶
在 DSH 里让智能体「讲清楚一个方法」,常见做法是堆文字或贴几张静态图。若要把流程拆成有节奏的讲解视频,往往还要单独开 Manim 工程、自己管 Python 环境、配音与成片预览,和编辑器里的对话、工作区是两套链路。
dsh-manim 是维护者 Strivy-ZSY 发布的 DSH 插件(社区目录分类为「趣味换装」)。它在宿主里挂上「动画」入口与「动画工作室」面板,用 Manim 0.22 渲染场景,并用系统或在线 TTS 生成旁白,成片 .mp4 可在工作区文件树里直接预览播放。
这是什么¶
一句话:DSH 侧的 Manim 动画工作室——把论文、方法或流程说明做成带旁白的讲解视频,尽量全程留在编辑器里完成。
插件随包提供四个 agent 工具(manim_scene、manim_render、manim_frames、manim_voice),以及 skill manim-explainer(如何把内容拆成 4–8 拍、版式与节奏、常见坑)。渲染依赖装在插件自有虚拟环境里的 Manim 0.22,不往系统 Python 里装包;旁白不需要下载语音模型。
核心功能¶
面板与工作区¶
- 左侧栏「动画」入口(部分宿主默认只在右侧 tab 打开,可通过 profile 配置
sidebarEntry: true显式要左栏一行)。 - 右侧栏「动画工作室」:场景列表、画质、渲染与取消、播放、分镜条、实时日志。
- 扫描工作区内
.py场景文件;渲染完成后在工作区得到成片,插件注册了视频预览渲染器。
Agent 工具¶
| 工具 | 作用(README 示例) |
|---|---|
manim_scene |
从模板创建场景,如 action='template', name='MyExplainer' |
manim_render |
按路径与画质渲染,如 quality='draft' |
manim_frames |
抽帧,如 count=6 |
manim_voice |
旁白与音色,如 action='list' |
建议工作顺序为 audio-first:先出旁白与每句时长,再按句长对画面。
配音¶
manim_voice 在 engine='auto' 时优先 Edge TTS(联网、免 key,含多个中文音色),Windows 上可走 SAPI 离线。输出 animations/voice/*.wav 与 cues.json;也可手写替换音频与 cue 结构,场景代码可不变。
公式与运行时¶
默认用 manimkit.mathtex()(matplotlib mathtext),不需要 LaTeX / TeX 发行版;机器上有可用 LaTeX 时可自动走 MathTex。README 说明 manim 0.22 用 PyAV 编码,旁白 mp3 转 WAV 也在进程内,不依赖单独安装 ffmpeg。
驱动 runtime/engine/driver.py 单独实现:媒体目录由插件管理、NDJSON 进度事件、plan 阶段先快速量时长,避免往工作区写 ./media/… 杂物。
环境要求¶
| 需要 | 说明 |
|---|---|
| Node.js | ^22.19.0 \|\| >=24(见 package.json engines) |
| Python | ≥ 3.10,仅用于创建插件 runtime/venv |
| DSH 宿主 | 插件注册侧边栏槽位与 agent 工具,需宿主运行 |
当前包版本为 1.1.20(package.json),许可证 MIT。
安装与启用¶
下面介绍装进官方 DSH 客户端的用法;插件以 bundle 形式随 cordis.patch.yml 安装,一般无需手改 profile。
1、侧栏打开「插件」→「添加插件」。
2、在「包名或地址」填入仓库地址并安装、启用:
https://github.com/Strivy-ZSY/dsh-manim
3、首次使用需在本机插件安装目录下一次性建立渲染运行时(约 500 MB Python 依赖,装进 runtime/venv)。面板若提示「运行时未就绪」,在安装目录执行:
cd <安装目录>/node_modules/dsh-manim
node runtime/setup-runtime.mjs
仓库开发脚本里还有 npm run setup:runtime(等价于上述 setup),以及 npm install / npm run build 供本地构建;从 GitHub 页面安装的用户通常只需第 3 步。
若通过 pnpm 从 GitHub 拉包时遇到传输错误,README 给出了 git config、重试参数与镜像 / tar 包等变通方式,可按文档顺序尝试。
安全说明:插件在 DSH 进程权限下运行,安装前请自行查看 源码 与 LICENSE,确认符合你的环境与合规要求。
典型用法¶
面板:点「动画」→ 选场景 .py → 选画质 → 渲染;可拖动播放、点分镜跳转,日志可实时查看并取消任务。
会话里(摘自 README):
manim_scene(action='template', name='MyExplainer') # 从模板起一个场景
manim_render(path='animations/MyExplainer.py', quality='draft')
manim_frames(path='animations/MyExplainer.py', count=6)
manim_voice(action='list') # 看可用音色
旁白与画面对齐时,场景里可挂 find_cue_sheet、narration、hold(见 README「配音」一节)。
README 中的示例成片约 78 秒(1920×1080 @ 60fps,含中文旁白),演示把方法拆成 8 拍;示例内容基于已发表论文 UNETR++(IEEE TMI 2024)的公开方法说明。
配置(可选)¶
cordis.patch 里可覆盖部分键,均有默认值。例如:
| 键 | 说明 |
|---|---|
agentTools |
暴露给模型的工具,默认四个全开 |
pythonPath |
默认指向 runtime/venv 下解释器 |
outputDir |
默认 animations |
cacheDir |
渲染缓存目录 |
完整列表见仓库 README「配置」一节。
适用场景与注意¶
适合:需要在 DSH 工作区里快速做方法讲解片、希望 Manim 版本固定、又不想本机装 LaTeX / ffmpeg / 本地语音模型的开发者或内容作者。
注意:
- Edge TTS 需要网络;离线 Windows 可考虑 SAPI。
mathtex()不宜写中文,中文用text()单独排版。- 社区目录 SkillHub 插件页 与 GitHub 为独立信息源;目录站点与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-manim 把 Manim 渲染、旁白 cue、面板预览和四个 manim_* 工具收进一个 DSH 插件,降低「论文/方法 → 讲解视频」的环境与胶水成本。进一步了解可访问社区目录页与仓库:
- 目录页:https://www.skillhub.cn/plugins/Strivy-ZSY/dsh-manim
- GitHub:https://github.com/Strivy-ZSY/dsh-manim