mrkeyoor.com_
Thu 10 Sept 13:48 UTC
Dev Toolsevaluationupdated 10 Sept 2026

manim review

Manim Community is a Python engine for making explanatory animations, especially equations, graphs, geometry, and other mathematical ideas. You describe each scene in code, then Manim renders it as video or an image, which makes precise transformations easier to repeat than manual timeline editing.

trackingstars / 7d
Verdict

Our Manim install and 9-second build passed, but its tests stopped after 8 seconds because Python could not import cairo. Use v0.21.0 for code-driven mathematical animation if you can own the native rendering stack and pin scene projects through the current refactor. Choose a timeline editor for hand-shaped motion, or ManimGL when compatibility with Grant Sanderson's own source matters more than the community edition.

We ran it

Lab card: what happened when we ran manimScreenshot of manim (www.manim.community)
Install✓ · 32s35 packages · 37 MB
Build✓ · 9s
Tests✗ · 8sran, no count parsed
Known vulns0(pip-audit)
Repo1394 files~100,607 lines of source · 16.9 MB · 7 CI workflows · tests dir

Answers from our run

Does manim build from source?

Dependencies installed in 32 seconds (35 packages), and the build succeeded in 9 seconds. We cloned commit aebf357 into a clean Debian container with 3 CPUs and no project-specific setup.

Do manim's tests pass?

The test command failed in our container, and its output did not report a pass or fail count.

Does manim have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use manim?

Creators who want a point-and-click timeline: the README's basic workflow is a Python Scene class rendered from the command line.

What are the alternatives to manim?

ManimGL, Motion Canvas, Remotion. Our Manim install and 9-second build passed, but its tests stopped after 8 seconds because Python could not import cairo.

Setup3/5Fast Python setup, but native graphics packages still matter
Docs5/5Detailed install guides, examples, API reference, and health check
Community5/540,757 stars, same-day pushes, and active pull request review
Maturity4/5Established engine, though v0.21.0 and the refactor change APIs

Who it’s for

Math and science educators who want equations, plots, geometric objects, and camera movement controlled in Python.
Developers producing repeatable animations from changing data or lesson content.
Jupyter users who want to render scenes inside a notebook with the bundled IPython magic.
Teams willing to keep scene code, media assets, and rendering dependencies in a pinned project environment.

Who it’s NOT for

Creators who want a point-and-click timeline: the README's basic workflow is a Python Scene class rendered from the command line.
Users following old 3Blue1Brown or ManimGL tutorials verbatim: the README warns that the community and original editions have different installation instructions.
Linux users who cannot install native development packages: the official guide lists a compiler, Python headers, pkg-config, Pango headers, and Cairo headers.
Contributors expecting new feature proposals to be accepted promptly: the README says a major refactor is under way and new-feature contributions are generally paused.
Teams that cannot absorb API changes: v0.21.0 changed Code color handling and removed an argument from Camera.convert_pixel_array().

Setup reality

Our sandbox installed 35 Python packages in 32 seconds and used 37 MB on disk. Building commit aebf357 succeeded in 9 seconds. Tests stopped with exit 4 after 8 seconds because tests/conftest.py could not import cairo; pip-audit reported 0 known vulnerabilities.

Local rendering needs no account or API credential. The stable installation guide recommends uv and says Linux source builds may need a C compiler, Python development headers, pkg-config, Pango headers, and Cairo headers. Formula rendering can also require LaTeX, while v0.21.0 offers Typst as an optional route.

Manim can render from the CLI or Jupyter, and the community publishes a Docker image. Cairo and OpenGL are separate renderer paths. A successful package build does not prove that previews, fonts, formula tools, or video output are ready on a particular workstation.

Manim v0.21.0 turns Python scenes into precise animation

Manim Community v0.21.0 is built for visuals whose movement follows an idea: an equation rearranges, a graph responds to a parameter, or a square becomes a circle. A scene is a Python class, and objects move through explicit animation calls. That approach gives educators and technical creators a repeatable source file instead of a pile of timeline keyframes. It also makes ordinary programming skills part of the production process.

By v0.21.0, the community edition has its own package, documentation, release line, and API choices apart from the original 3Blue1Brown project. The README treats them as different products. Its warning is unusually blunt: installation instructions for 3b1b/manim and ManimCommunity/manim should not be mixed. If a course or code sample says only "Manim," identify the edition before copying commands.

The sample scene transforms 2 shapes with 3 animation calls

The README's first example creates a circle and a square, then uses 3 calls to create, transform, and remove the visible object. That small example captures why Manim works well for technical explanation. Geometry, color, placement, and timing are values in code. Changing a lesson means changing the scene source and rendering it again, rather than nudging layers by eye in a video editor.

The command line can preview a completed render, select a low-quality preset, save only the final frame, or skip to a numbered animation. Jupyter users get a %%manim magic, and an online Binder environment lets a newcomer try basic scenes before installing locally. Those paths reduce the first-hour burden, though a serious project still needs reproducible fonts, assets, renderer choices, and output settings.

What happened when we ran it

Our sandbox installed 35 packages in 32 seconds, using 37 MB on disk. The build for commit aebf357 completed in 9 seconds. That checkout contained 1,394 files, roughly 100,607 lines of source, and occupied 16.9 MB before installation. Pip-audit found 0 known vulnerabilities in the installed Python packages. The measurement setup was a fresh unprivileged Debian container with 3 CPUs and 8 GB of RAM.

Tests did not run past collection. After 8 seconds, pytest exited with code 4 while loading tests/conftest.py; the final log showed ModuleNotFoundError: No module named 'cairo'. We are not assigning a cause the log did not prove. The practical result is clear: installation and build succeeded, while the repository's test command could not start its suite in our stated environment.

Our scan found 7 CI workflow files and a tests directory, but no Dockerfile in the checkout. The project does publish a maintained Docker image through Docker Hub, so the missing repository Dockerfile does not mean containers are unsupported. Our run also did not render a scene, invoke LaTeX or Typst, open a native preview, or compare Cairo with OpenGL output. Those are separate acceptance checks for a production animation workstation.

Linux installation needs Cairo and Pango development files

The stable v0.21.0 guide recommends uv for creating a project and adding Manim. On Linux, it lists a C compiler, Python development headers, pkg-config, Pango development headers, and Cairo development headers because ManimPango and sometimes pycairo must be built from source. That is more setup than the short Python package command suggests, and it matches the broad category of dependency exposed by our failed import without proving its cause.

Formula work adds another choice. LaTeX is optional when plain text is enough, but the guide recommends a TeX distribution for typeset mathematics and lists the packages needed for a minimal installation. Version 0.21.0 also introduced optional Typst and MathTypst objects that compile markup and formulas to SVG. Teams should still render a representative equation set before choosing either tool, since fonts and package availability become part of reproducibility.

Version 0.21.0 adds features while a major refactor limits contributions

Release v0.21.0 was published on August 10, 2026. It added Typst rendering, bounded parallel encoding for partial movie files, and several graph, table, text, and renderer fixes. The same release includes breaking changes: Code delegates syntax colors to Pygments, and Camera.convert_pixel_array() no longer accepts its former conversion argument. Pinning Manim per animation project is sensible when old scenes must keep rendering.

The README says a major refactor is in progress and that new feature contributions generally will not be accepted during it. It also warns that the contribution guide may become outdated quickly and recommends discussing work in Discord first. That is useful candor for contributors. For production users, it means the project is active but its internal boundaries are moving, so upgrades deserve a known-scene render comparison rather than an automatic version bump.

40,757 stars and same-day pull requests show active maintenance

GitHub reported 40,757 stars, 499 combined issues and pull requests, and a last push on September 10, 2026. Pull requests updated that same day covered scene frame capture, timeline export, rendering lifecycle cleanup, and positioning APIs. One substantial positioning refactor had 16 comments. The queue is large, but the last push, release date, and current review discussion all point to an actively worked project rather than a repository coasting on old popularity.

Manim Community is the sensible default Manim edition for most new Python users. ManimGL is the better comparison when the goal is reproducing Grant Sanderson's current workflow. Motion Canvas suits TypeScript shops, while Remotion fits React-based video systems. For mathematical scenes whose logic benefits from code, Manim earns the setup work. For designers who need direct manipulation and a visual timeline, its Python-first model will remain the wrong fit.

Alternatives

ProjectWhat it isPick it when
ManimGL gh↗Grant Sanderson's own Manim branch and the closest match for current 3Blue1Brown production code.pick this instead when following Grant Sanderson's source or when ManimGL's interactive workflow is the requirement.
Motion CanvasA TypeScript framework for programmatic animation with a browser-based editor.pick this instead when your team works in TypeScript and wants live visual editing beside code.
Remotion gh↗A React toolkit for rendering videos from components and application data.pick this instead when the output is template-driven video rather than equation-heavy mathematical animation.

What people are saying

  1. [velocity-scout] ManimCommunity/manim

Sources

  1. Manim Community repository and README
  2. Manim v0.21.0 release
  3. Manim stable installation guide
  4. Active Manim pull requests
  5. Manim Community website

More dev tools reviews

jadx · blender · maui · desktop · LazyVim · navop · the whole board →