用于解释数学视频的动画引擎
Manim是用于解释数学视频的动画引擎。它用于以编程方式创建精确的动画,如3Blue1Brown
注意:这个存储库是由Manim社区维护的,与Grant Sanderson或3Blue1Brown没有任何关联(尽管我们非常感谢他将他的工作提供给世界)。如果你想了解格兰特是如何制作视频的,请访问他的存储库(3b1b/manim)。此分叉比他的更新更频繁,如果您想将Manim用于您自己的项目,建议使用此分叉
目录:
安装
Manim需要一些依赖项,在使用它之前必须安装这些依赖项。如果您想在本地安装之前先试用,可以这样做in our online Jupyter environment
有关本地安装,请访问Documentation并按照适用于您的操作系统的说明进行操作
安装依赖项后,在终端窗口中运行以下命令:
pip install manim
用法
Manim是一个非常通用的软件包。以下是一个示例Scene
您可以构建:
from manim import *
class SquareToCircle(Scene):
def construct(self):
circle = Circle()
square = Square()
square.flip(RIGHT)
square.rotate(-3 * TAU / 8)
circle.set_fill(PINK, opacity=0.5)
self.play(Create(square))
self.play(Transform(square, circle))
self.play(FadeOut(square))
要查看此场景的输出,请将代码保存在一个名为example.py
然后,在终端窗口中运行以下命令:
manim -p -ql example.py SquareToCircle
您应该会看到您的原生视频播放器程序弹出,并播放一个简单的场景,在该场景中,一个正方形被转换为一个圆。您可以在下面的内容中找到一些更简单的示例GitHub repository您也可以访问official gallery有关更高级的示例,请参阅
Manim还附带一个%%manim
IPython魔术,允许在JupyterLab(以及经典的Jupyter)笔记本中方便地使用它。请参阅
corresponding documentation需要一些指导和帮助try it out online
命令行参数
Manim的一般用法如下:
这个-p
上述命令中的标志用于预览,即视频文件渲染完成后将自动打开。这个-ql
FLAG用于以较低质量进行更快的渲染
其他一些有用的标志包括:
-s
跳到末尾,只显示最后一帧-n <number>
要跳到前面的n
‘场景的第8个动画-f
在文件浏览器中显示文件
有关命令行参数的完整列表,请访问documentation
文档
文档正在进行中,地址为ReadTheDocs
码头工人
社区还维护码头形象(manimcommunity/manim
),可以找到on DockerHub支持以下标签:
latest
–对应于的最新版本the main branchstable
–最新发布的版本(根据the releases page)vX.Y.Z
–任何特定发布的版本(根据the releases page)
运行坞站映像的说明
快速示例
渲染场景的步骤CircleToSquare
在文件中test_scenes.py
包含在当前工作目录中,同时保留您的用户和组ID,请使用
docker run --rm -it --user="$(id -u):$(id -g)" -v "$(pwd)":/manim manimcommunity/manim manim test_scenes.py CircleToSquare -qm
在后台运行图像
除了使用上面描述的“一次性容器”方法,您还可以创建一个命名容器,您也可以根据自己的喜好进行修改。首先,跑步
docker run -it --name my-manim-container -v "$(pwd):/manim" manimcommunity/manim /bin/bash
要在容器中获得交互式shell,例如,可以安装更多依赖项(比如使用以下命令安装texlive包tlmgr
)。满意后立即退出容器。然后,在使用它之前,通过运行以下命令启动容器
docker start my-manim-container
然后,要渲染场景CircleToSquare
在文件中test_scenes.py
,呼叫
docker exec -it --user="$(id -u):$(id -g)" my-manim-container manim test.py CircleToSquare -qm
木星实验室
另一种替代方法是使用docker映像启动运行JupyterLab的本地Web服务器,JupyterLab中安装了Python内核Manim,可以通过%%manim
细胞魔法。要使用JupyterLab,请运行
docker run -it -p 8888:8888 manimcommunity/manim jupyter lab --ip=0.0.0.0
然后按照航站楼里的说明操作
重要说明
在执行时manim
在Docker容器中,有几个命令行标志(特别是-p
(预览文件)和-f
(在文件浏览器中显示输出文件))不受支持
帮助处理Manim
如果您需要安装或使用Manim的帮助,请随时联系我们的Discord
Server或Reddit Community如果您要提交错误报告或功能请求,请打开问题
贡献
对Manim的贡献总是受欢迎的。特别是,对测试和文档的需求非常迫切。有关投稿指引,请参阅documentation
该项目中的大多数开发人员使用Poetry对于管理层来说。您需要在您的环境中安装并使用POLITE。您可以了解更多关于poetry
以及如何在ITS中使用它documentation
如何引用Manim
我们认识到好的软件对支持研究的重要性,我们注意到,当研究得到有效沟通时,它就会变得更有价值。为了证明曼尼姆的价值,我们要求你在你的作品中引用曼尼姆。目前,引用Manim的最佳方式是引用Manim home page使用此BibTeX条目(该条目用于发布v0.9.0
,但很容易修改):
@Manual{Manim:v0.9.0,
key = {Manim},
author = {{The Manim Community Developers}},
title = {{Manim} -- {M}athematical {A}nimation {F}ramework ({V}ersion v0.9.0)},
note = {\url{https://www.manim.community}},
year = 2021,
}
这应该会呈现大致如下所示的引用:
- 曼尼姆社区开发人员,Manim – Mathematical Animation Framework (Version v0.9.0)2021年
行为规范
我们完整的行为准则,以及我们如何执行它,都可以继续阅读。our website
许可证
该软件在麻省理工学院的许可下是双重许可的,版权归3Blu1Brown LLC所有(见许可),版权归Manim社区开发者所有(见LICENSE.Community)