用 Manim 在本机做教学动画:公式推导、几何、函数图像、算法步骤,不花生成费用。
用 Manim 社区版(3Blue1Brown 数学动画的那套引擎)做教学动画:公式推导、几何关系、函数图像、算法步骤、代码讲解、物理示意。在本机渲染,不调用视频生成模型,不按条计费。
| 工具 | 做什么 | 默认开放 |
|---|---|---|
准备 Manim 环境 manim_setup | 建 Python 环境、装 Manim、查 LaTeX、试渲一帧;缺什么逐条说怎么装 | 是 |
Manim 讲解视频 manim_explainer | 给结构化内容出讲解视频,不写代码 | 是 |
Manim 自定义动画 manim_animation | 给一段 Manim 场景代码,画什么都行 | 否 |
Manim 静帧 manim_still | 同上,只要最后一帧(PNG) | 否 |
四个工具都会边跑边报进度(工作流执行面板里看得到「第 2/5 段:勾股定理」);在工作流或任务里取消时,Manim 连同它起的 LaTeX 进程一起停下。
第一次请在插件页先运行一次「准备 Manim 环境」。 渲染工具不会顺手装环境:装一次要一到几分钟,而渲染工具的预算是按「智能体一次最多等 180 秒」定的。
标题页 → 一步一步讲 → 要点回顾。每一步可以有:
sin(x) + x^2/8 这样的算式,自动定坐标范围,渐近线处断开)、或代码(语法高亮,按 [2, "4-6", 9] 依次框住讲解的行)。画幅 16:9 / 9:16 / 1:1 / 4:3 / 3:4,画质 480p–4K,深色 / 浅色主题,自定强调色与字体。返回值里的 steps 是每一步实际渲出来的起止时间;打开 subtitles 还会同时交出一份按句切好的 .srt —— 给旁白配音、对字幕都用得上。
内容从不拼进代码:场景是插件自带的一份固定文件,内容经 JSON 交给它;文字进 Text(纯文本),公式先挡掉 \input、\write18、\def 这类读写文件、定义命令的写法,函数算式用语法树求值(不经 eval,只认数字、x、四则运算与白名单里的函数)。
from manim import *
from mosael import DATA # 调用时传的 data
class Sorting(Scene):
def construct(self):
values = DATA.get("values", [5, 2, 4, 1, 3])
bars = VGroup(*[Rectangle(width=0.8, height=v * 0.6, fill_opacity=0.8, color=BLUE) for v in values])
bars.arrange(RIGHT, buff=0.2, aligned_edge=DOWN)
self.play(FadeIn(bars))
self.play(Swap(bars[0], bars[1]))
self.wait()代码里只有一个场景类时 scene 可留空。格式 mp4 / webm / mov / gif,可透明背景(mp4 会改成 mov)。报错会指出第几行哪一句(第 12 行 self.play(Swapp(a, b)):NameError: …),改了再调即可;语法错误在起 Manim 之前就说。
自定义动画和静帧执行的是任意 Python 代码,以你的身份在这台电脑上运行。所以:
"effects": "local-code"),写明
「会在你的电脑上运行代码」和代码开头,你批准了才跑;插件页里它们旁边标着「需确认」;open、exec、__import__,不准碰 os.system、np.save 之类,也不准不经 open 把本机文件读进画面(SVGMobject / ImageMobject 按路径读、Code(code_file=…)、公式里的 \input)。护栏挡的是随手写出、或被一段网页诱导写出的越界代码,它不是沙箱;讲解视频不执行你给的任何代码,默认开放。
Manim 需要 Python 3.11+(插件用随 Mosael 发的那个 Python,不用你装),以及:
| 系统 | 装 Manim 之前要有 | LaTeX(可选,公式排版用) |
|---|---|---|
| Windows | 什么都不用 —— 依赖都有现成的二进制包 | MiKTeX,安装时允许自动安装缺的宏包 |
| macOS | brew install cairo pkg-config(pycairo 没有 macOS 的二进制包,要编译),以及 xcode-select --install | MacTeX,或 brew install --cask mactex-no-gui |
| Linux | Debian/Ubuntu:sudo apt install build-essential pkg-config libcairo2-dev libpango1.0-dev;Fedora:sudo dnf install gcc pkg-config cairo-devel pango-devel | sudo apt install texlive texlive-latex-extra dvisvgm |
a² + b² = c²、(-b ± √(b²-4ac))/(2a))照样出片,结果里会说明;自定义动画里的 MathTex / Tex 用不了,会得到一句「没装 LaTeX」和装法。想用精简的 TinyTeX,Manim 文档列了要装的宏包。plugin-data/dev.mosael.manim 下。插件更新不会重装;卸载插件时一起删掉。Mosael 升级后自带的 Python 挪了位置,环境自动接过去;换了次版本(比如 3.13 → 3.14),渲染工具会说清楚,再运行一次「准备 Manim 环境」按新版重建。process:spawn:启动 Python / Manim / LaTeX,以及执行自定义动画的代码。network:pypi:准备环境时从 PyPI 安装 Manim。渲染本身不联网(已关掉 Manim 渲完后查新版本的那次请求)。filesystem:write:写插件自己的数据目录。Manim 0.21.0(锁定精确版本;插件升级换了版本时,渲染工具会提醒再运行一次「准备 Manim 环境」,它按新版本重装)。Manim 社区版是 MIT 许可;插件不分发 Manim 的代码,而是在你的电脑上从 PyPI 安装。
manim_setup在插件自己的数据目录里建 Python 环境、装锁定版本的 Manim,查 LaTeX,试渲一帧;缺什么(macOS 的 cairo、Linux 的开发包、LaTeX)逐条说怎么装。第一次要一到几分钟,之后几乎瞬间完成。渲染工具不会顺手装环境,第一次请先跑它。
manim_explainer给结构化的教学内容,出一段 Manim 讲解视频(mp4,进素材库),不用写代码:标题页 → 一步一步讲(每步:标题、旁白字幕、逐条出现的要点,再配一样:LaTeX 公式、函数图像或逐处高亮的代码)→ 要点回顾。每步多长按旁白的朗读时长自动算;返回每一步的实际起止时间(steps),可选同时出 .srt 字幕,方便配音对时间。本机没装 LaTeX 时公式写成一行纯文字,照样出片。默认 720p,智能体调用时别选 production / 4k。
manim_animation用一段 Manim(社区版 0.21)场景代码渲染动画(进素材库)。代码里定义 class 名字(Scene),在 construct(self) 里 self.play(...);from manim import * 即可,调用时给的 data 用 from mosael import DATA 读。默认只准 import manim、math、numpy 等画图模块,不准读写文件、起进程。报错会指出是第几行哪句代码,改了再调。会在本机执行 Python 代码,默认不开放。讲解类内容优先用「Manim 讲解视频」。
manim_still和「Manim 自定义动画」同样给一段场景代码,只要最后一帧(PNG,进素材库):几何图、函数图、示意图、封面。可以透明背景。同样会在本机执行代码,默认不开放。
权限是逐项给的:装之前,应用会把它声明的权限摊开给你看。本地脚本以你当前用户的权限运行,只装信得过的来源。