Manim
该专题还在整理中。
Manim 不是 AI 产品,它是一个用 Python 写数学动画的开源引擎,真正让它在中文互联网火起来的,是 3Blue1Brown(Grant Sanderson)用它做的那些线性代数、微积分视频——如果你想让公式、坐标系、几何图形动起来,目前几乎没有比它更优雅的方案。
我先说清楚一件事:很多人搜「Manim」的时候,其实是在搜两样东西——一个是 Grant 自己写的原始版本 ManimGL(也叫 ManimCairo 时代的 Manim),另一个是社区维护、现在更主流的 Manim Community Edition(ManimCE)。这两个不是同一个仓库,安装命令、API 细节、文档都不一样,新手最容易在这里踩坑。下面我主要讲 ManimCE,因为它文档最全、更新最勤、遇到问题最容易搜到答案。
Manim 到底是什么
一句话概括:Manim 是一个「用代码画动画」的框架。你写 Python 脚本,描述某个数学对象在某一时刻应该长什么样、怎么变换,Manim 负责把它渲染成 MP4 或 GIF。
它和 After Effects、PPT 动画的根本区别在于:动画的每一帧都是被「计算」出来的,而不是被「拖拽」出来的。这意味着你可以让一条曲线精确地沿着函数图像生长,可以让矩阵乘法的每个元素同步高亮,可以让一个公式推导的每一步都严丝合缝地对齐——这些在传统动画软件里做起来极其痛苦,在 Manim 里只是几行代码。
- 所属团队:最初由 Grant Sanderson 个人开发,2020 年前后社区 fork 出 Manim Community Edition,现在由一群志愿者维护,GitHub 上 star 数已经超过 7 万。
- 官网 / 文档入口:manim.community,文档在 docs.manim.community。
- GitHub:github.com/ManimCommunity/manim。
- 收费情况:完全免费、开源(MIT 协议)。没有任何付费墙,也没有官方云服务。你唯一要付的是自己的电费和渲染时间。
核心功能与特点
Manim 的能力可以拆成四层来看,从下往上分别是:
- 几何对象层(Mobjects):点、线、圆、多边形、向量场、曲面、坐标系、表格、矩阵……几乎所有你能在数学课本上见到的图形,都有现成的类。比如
Circle、Axes、Matrix、ThreeDScene。 - 动画层(Animations):
Create(画出来)、Transform(变形)、FadeIn、Write(像手写一样写字)、Indicate(高亮提示)。这些可以串行、并行、组合成AnimationGroup。 - 场景层(Scene):一个
Scene就是一个视频片段,你在这里写self.play(...)、self.wait(...),控制节奏。 - 渲染层:底层用 Cairo 做 2D 矢量渲染,用 OpenGL 做实时预览(
-p参数可以边写边看),最终输出 1080p60 甚至 4K 的 MP4。
几个我觉得最值得说的特点:
- 数学公式原生支持:直接写 LaTeX,
MathTex(r"int_0^infty e^{-x^2} dx")就能渲染出漂亮的公式,而且可以对公式的某一部分单独做动画(比如只让指数部分变色)。这是它碾压其他工具的地方。 - 坐标系与函数图像:
Axes+plot几行就能画出函数曲线,还能让一个点沿着曲线运动、让切线跟随移动,做「导数可视化」简直是为它量身定做的。 - 3D 场景:
ThreeDScene支持摄像机旋转、曲面渲染、光照,做向量场、曲面面积、旋转体体积很直观。 - 可复现、可版本控制:动画是代码,意味着你可以用 Git 管理、可以复用、可以参数化批量生成。这一点对做课程视频的人价值巨大。
安装与上手:别被第一步劝退
Manim 的安装是新手最大的门槛,因为它依赖 Python + FFmpeg + LaTeX 三件套。少任何一个,要么渲染报错,要么公式显示不出来。
| 依赖 | 作用 | 装不上会怎样 |
|---|---|---|
| Python 3.9+ | 运行 Manim 本身 | 根本跑不起来 |
| FFmpeg | 把帧合成视频 | 渲染完只有一堆 PNG 图片 |
| LaTeX(推荐 TeX Live 或 MiKTeX) | 渲染数学公式 | 用到 MathTex 的地方直接报错 |
安装方式我推荐两种:
- pip 安装:
pip install manim,适合已经熟悉 Python 环境的人。装完用manim --version验证。 - 官方推荐的系统级安装:Windows 用
winget install Python.Python.3.11+winget install ffmpeg,macOS 用 Homebrew,Linux 用 apt。文档里有非常详细的 安装指南,按操作系统一步步来就行。
如果你连环境都不想配,还有个偷懒办法:用 Google Colab,一行 !pip install manim 就能在浏览器里跑,渲染完直接下载视频。缺点是 Colab 免费版渲染长视频容易超时。
一个最小可运行示例
光说没用,给你一段能直接跑的代码,感受一下 Manim 的写法:
新建 test.py,写入一个继承 Scene 的类,在 construct 里先创建 Circle 并 self.play(Create(circle)),再用 Transform 把它变成 Square,最后写一个 MathTex 公式。然后在终端执行:
manim -pql test.py MyScene:低质量快速预览(-p渲染完自动播放,-ql是 480p15)。manim -pqh test.py MyScene:高质量 1080p60,出片用这个。
第一次跑大概率会遇到 LaTeX 报错,别慌,八成是没装 TeX 或者缺宏包,装个完整版 TeX Live 基本都能解决。
ManimCE vs ManimGL:到底选哪个
| 对比项 | Manim Community Edition | ManimGL(原版) |
|---|---|---|
| 维护状态 | 社区活跃维护,更新频繁 | Grant 个人维护,更新较慢 |
| 文档质量 | 完整、有大量示例 | 相对简略 |
| 安装命令 | pip install manim |
pip install manimgl |
| 实时交互 | 支持(OpenGL 渲染) | 支持得更好,Grant 本人用它 |
| 适合人群 | 绝大多数新手和课程制作者 | 想复刻 3B1B 视频风格、愿意啃源码的人 |
我的建议很直接:除非你明确要复现 3B1B 某个视频的效果,否则一律选 ManimCE。网上 90% 的中文教程、Stack Overflow 答案都是针对 CE 的。
它和 AI 有什么关系
严格说,Manim 本身不含 AI。但现在很多人用它,是因为可以让大模型帮你写 Manim 代码。比如你把需求描述给 ChatGPT 或 Claude,让它生成一段 Manim 脚本,再自己微调参数。这条路是可行的,但要注意:
- 模型对 ManimCE 的 API 记忆并不完美,经常混用 ManimGL 的写法,报错要自己修。
- 复杂动画(多对象时序、3D 相机运动)还是得自己理解
play和wait的节奏。 - 比较靠谱的用法是:让 AI 写骨架,你调细节,而不是指望它一次生成能直接出片的完整脚本。
学习路径建议
- 第一周:把官方 Tutorials 里的 Quickstart 和 Building Blocks 跑一遍,理解 Mobject 和 Animation 的关系。
- 第二周:临摹一个简单效果,比如「画一个圆,再画它的切线,让切点动起来」。
- 第三周:去 GitHub 搜
manim examples,找别人开源的项目读代码,这是进步最快的方式。 - 长期:加入 Manim 官方 Discord,遇到诡异 bug 在那里问,响应速度比 Stack Overflow 快得多。
相关问题
Q1:Manim 能用来做非数学类的动画吗?
可以,但没必要。它的强项是精确的几何与公式动画,做人物、场景、特效类的动画,用 After Effects 或 Blender 效率高得多。
Q2:渲染一个 10 分钟的视频要多久?
取决于复杂度和画质。1080p60 下,普通数学动画大概 1 分钟视频需要 3 到 10 分钟渲染,3D 场景或大量 LaTeX 公式会明显更慢。建议先用 -ql 预览,确认无误再出高清。
Q3:有没有在线的 Manim 编辑器?
官方没有。第三方有 try.manim.community 这类实验性在线环境,但功能有限,长期用还是本地装。
Q4:中文能正常显示吗?
可以,但需要指定中文字体,比如 Text("你好", font="SimHei")。默认字体不含中文,不设置会显示成方块。
Q5:学 Manim 需要多强的 Python 基础?
入门只需要会变量、函数、类的基本概念就够了。真正难的不是 Python,而是把一段数学讲解拆解成「先出现什么、再变换成什么」的分镜思维。
内容由 AI 生成,产品信息请以官网为准。











