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


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还附带一个%%manimIPython魔术,允许在JupyterLab(以及经典的Jupyter)笔记本中方便地使用它。请参阅

corresponding documentation需要一些指导和帮助try it out online

命令行参数

Manim的一般用法如下:

manim-illustration

这个-p上述命令中的标志用于预览,即视频文件渲染完成后将自动打开。这个-qlFLAG用于以较低质量进行更快的渲染

其他一些有用的标志包括:

  • -s跳到末尾,只显示最后一帧
  • -n <number>要跳到前面的n‘场景的第8个动画
  • -f在文件浏览器中显示文件

有关命令行参数的完整列表,请访问documentation

文档

文档正在进行中,地址为ReadTheDocs

码头工人

社区还维护码头形象(manimcommunity/manim),可以找到on DockerHub支持以下标签:

运行坞站映像的说明

快速示例

渲染场景的步骤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,
}

这应该会呈现大致如下所示的引用:

  1. 曼尼姆社区开发人员,Manim – Mathematical Animation Framework (Version v0.9.0)2021年

行为规范

我们完整的行为准则,以及我们如何执行它,都可以继续阅读。our website

许可证

该软件在麻省理工学院的许可下是双重许可的,版权归3Blu1Brown LLC所有(见许可),版权归Manim社区开发者所有(见LICENSE.Community)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。