近日一名老师雇我为他新开的一门线上课《线性代数的几何意义》制作动画,并且要求使用 3b1b 所采用的 manim 动画引擎。在此之前,我对 manim 了解甚少,故利用此次机会学习一下 manim 相关的知识。
什么是 Manim?
根据维基百科关于 3Blue1Brown 的词条,Grant Sanderson 是斯坦福大学的数学研究生。从 2015 年初,3Blue1Brown 作为编程方面的个人兴趣项目诞生。在播客节目 Showmaker 中,他透露到他最初为练习他的编程技能,决定用 Python 制作一个计算机图形软件,这便是开源项目”Manim”的由来。他使用该动画引擎制作了许多视频上传到 3Blue1Brown 频道,3Blue1Brown 还在中国大陆 Bilibili 弹幕视频网站建有“中国官方账号”,转载其 Youtube 视频并配中文字幕。
按照 Manim 的 github 仓库上的说法:Manim is an animation engine for explanatory math videos. It’s used to create precise animations programmatically, as seen in the videos at 3Blue1Brown。大致意思是说 Manim 是一个用于制作解释性数学视频的动画引擎。
安装 Manim
在安装 Manim 前,要先安装好一些依赖 (Cairo,ffmpeg,Sox,latex)
源码安装
如果想要对 manim 项目的源代码进行一些个性化的修改,可以直接克隆 manim 的 github 仓库,进行安装
1 | git clone https://github.com/3b1b/manim.git |
这种安装方式下,文件夹下除了关键的manimlib
和manim.py
文件外,值得注意的还有一个docs
文件夹。在docs
文件夹下make
操作,可以生成 manim 相关的文档,格式可以选择。(需要提前安装好sphnix
,安装方式pip install sphnix
)
pip 安装
manim 需要 python3.6 或者更高的版本,可以通过 pip 安装
1 | pip3 install manimlib |
初识 Manim
在使用源码安装的情况下,在项目根目录下会附带一个example_scenes.py
,其作为样例代码,里面包含了许多简单场景,使用如下命令后选择需要生成的场景,可以观看效果:
1 | python3 manim.py example_scenes.py -pl |