Jupyter Notebooks

Binder

Binder 是一个在线平台,它以 Jupyter notebook 的形式托管可共享和可定制的计算环境。Manim 内置了 %%manim Jupyter 魔术命令,使得在这些 notebook 中使用 Manim 变得非常容易。

要查看此类环境的示例,请访问我们的交互式教程:https://try.manim.community/

以允许通过 Binder 交互式共享的方式准备自己的 notebook 也相对简单。

  1. 首先,准备一个目录,其中包含您希望在交互式环境中共享的一个或多个 notebook。您可以使用本地安装的 Manim 的 Jupyter notebook 创建这些 notebook,也可以在我们现有的交互式教程环境中进行操作。

  2. 在包含您 notebook 的同一目录中,添加一个名为 Dockerfile 的文件,其内容如下:

    FROM docker.io/manimcommunity/manim:v0.9.0
    
    COPY --chown=manimuser:manimuser . /manim
    

    别忘了将版本标签 v0.9.0 更改为您在本地创建 notebook 时使用的版本。

  3. 将包含您的工作表和 Dockerfile 的目录公开(特别是对 Binder!)。有几种不同的方法可以实现,在社区中,我们通常使用 GitHub 仓库或 Gist。

  4. 一旦您的材料公开可用,请访问 https://mybinder.org 并按照其中的说明为您的工作表生成一个交互式环境。

Google Colaboratory

也可以在 Google Colaboratory 环境中安装 Manim。与 Binder 不同,在 Binder 中您可以预先定制和准备环境(以便 Manim 已经安装并可供使用),而在 Google Colab 中,您每次启动新 notebook 时都必须自行处理。幸运的是,这并不特别困难。

创建新 notebook 后,将以下代码块粘贴到单元格中,然后执行它。

!sudo apt update
!sudo apt install libcairo2-dev \
    texlive texlive-latex-extra texlive-fonts-extra \
    texlive-latex-recommended texlive-science \
    tipa libpango1.0-dev
!pip install manim
!pip install IPython==8.21.0

您应该会看到 Colab 开始安装这些命令中指定的所有依赖项。执行完成后,系统将提示您重启运行时。点击单元格输出底部的“restart runtime”按钮。现在您就可以在 Colab 中使用 Manim 了!

要检查一切是否按预期工作,首先通过运行以下命令导入 Manim:

from manim import *

在一个新的代码单元格中。然后创建另一个包含以下代码的单元格:

%%manim -qm -v WARNING SquareToCircle

class SquareToCircle(Scene):
   def construct(self):
      square = Square()
      circle = Circle()
      circle.set_fill(PINK, opacity=0.5)
      self.play(Create(square))
      self.play(Transform(square, circle))
      self.wait()

运行此单元格后,一个将正方形转换为圆形的短动画应该会被渲染并显示出来。