Manim:用于解释数学视频的动画引擎

2020-10-29 12:37:22

Manim是用于解释数学视频的动画引擎。它用于以编程方式创建精确的动画,如3Blue1Brown的视频所示。

此存储库包含3Blue1Brown使用的Manim版本。在https://github.com/ManimCommunity/manim/.To上还有一个社区维护的版本,希望获得帮助或加入开发工作,请加入不和谐的行列。

Manim在Python3.6或更高版本上运行。您可以通过pip从PyPI安装它:

系统要求是cairo、ffmpeg、sox(如果要在运行后播放提示音,则为可选)、latex(如果要使用LaTeX,则为可选)。

如果您想要攻击manimlib本身,请克隆此存储库并在目录中执行:

#安装python要求spython3-m pip install-r requirements.txt#尝试outpython3./manim.py示例_Scarees.py SquareToCircle-pl。

安装开罗。对于大多数用户来说,pycairo-1.18.0-cp37-cp37m-win32.whl就可以了(您可以从这里下载它或其他版本)。

由于要将所有依赖项设置得恰到好处有点棘手,因此在此Repo中提供了Dockerfile和Compose文件,并在Docker Hub上提供了预制的图像。Dockerfile包含有关如何构建Manim映像的说明,而Compose文件包含有关如何运行映像的说明。

预构建的容器映像包含Manim存储库。INPUT_PATH是容器查找场景文件的位置。必须将INPUT_PATHEnvironment变量设置为包含场景文件的绝对路径,将OUTPUT_PATH环境变量设置为要写入介质的目录。

如果您的用户名不在扩展坞组中,则需要以root用户身份运行该命令。

运行之后,输出将显示位于/tmp/output/的文件就绪,这指的是容器内的路径。您的output_path被绑定挂载到此/tmp/output,因此容器对/tmp/output所做的任何更改都将镜像到您的output_path上。/media/将在OUTPUT_PATH中创建。

-P赢不了工作,因为Manim会在集装箱系统中寻找视频播放器,而这是它没有的。

当您第一次执行上述命令时,Docker会将镜像从Docker Hub拉取并缓存。在该映像被逐出之前的任何后续运行都将使用缓存的映像。请注意,该映像没有安装任何开发工具,无法预览动画。它的目的只是构建和测试。

上面命令中的-p标志用于预览,这意味着视频文件将在渲染完成后自动打开。-l标志用于以较低质量进行更快的渲染。

设置MEDIA_DIR环境变量以指定图像和动画文件的写入位置。

查看old_jects文件夹,查看之前3b1b视频的代码。但是,请注意,通常对库进行开发时没有考虑与那些旧项目的向后兼容性。要运行一个旧项目并保证它会工作,您必须返回到完成该项目的提交。

在开发场景时,-sp标志有助于只查看结尾的情况,而不必生成完整的动画。使用-n标志跳过一定数量的动画也很有帮助。

文档正在eulerour.com/docs上进行。还有一个由@manim-pytuten维护的一体式文档和教程:manim.ml(中文版)。

Todd Zimmerman整理了一个关于Manim入门的教程,该教程已经更新,可以在Python3.7上运行。

Manim-幼儿园在Manim_sandbox repo中编写并收集了一些有用的课外课程和视频代码。

只接受修复错误/修复打字错误/改进现有内容的拉取请求(有关更多信息,请参阅#1243)。大多数拉取请求应该定向到社区版本。

_3b1b目录中的所有文件基本上都为3b1b视频生成视觉效果,版权所有为3Blue1Brown。

另一方面,在存储库的其余部分中找到的通用动画代码受麻省理工学院的许可。