mrkeyoor.com_
Sun 25 Oct 15:04 UTC
Dev Toolsevaluationupdated 23 Oct 2026

manim review

Manim Community is a Python library for turning scene instructions into explanatory math animations. It helps you revise precise visual explanations in code instead of repeating the same editing steps by hand.

+138stars / 7d
Verdict

Our Manim Community build succeeded in 3 seconds, but tests stopped after 6 seconds because Python could not import cairo. Choose it for mathematical lessons you want to author and revise in Python, after exporting a representative scene in your intended environment. Keep editions and versions pinned, especially if your export scripts use options removed in 0.22.0.

We ran it

Lab card: what happened when we ran manimScreenshot of manim (www.manim.community)
Install✓ · 22s35 packages · 37 MB
Build✓ · 3s
Tests✗ · 6sran, no count parsed
Known vulns0(pip-audit)
Repo1398 files~101,592 lines of source · 17 MB · 7 CI workflows · tests dir

Answers from our run

Does manim build from source?

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

Do manim's tests pass?

No. The project's own test command exited unsuccessfully after 6 seconds, and its output did not expose an individual test 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?

Authors who want to arrange animations visually: the README's basic workflow requires a Python Scene class and a terminal command.

What are the alternatives to manim?

ManimGL, Motion Canvas. Our Manim Community build succeeded in 3 seconds, but tests stopped after 6 seconds because Python could not import cairo.

SetupN/ANot assessed: installation was not reproduced in a supported environment.
Docs4/5Coverage rating: scene example, platform-specific local guide, and release migration notes are present; their relevant workflows were not all reproduced.
CommunityN/ARecent pushes and issue discussion show activity, but we did not assess support response quality or contributor experience.
MaturityN/AThe test process stopped while importing cairo; we did not establish runtime or rendering correctness in a supported environment.

Discussed on

  1. hnManim: An animation engine for explanatory math videos576 points
  2. hnShow HN: ManimGX – Manim's API on a Rust/wgpu engine, for 3D videos in Python10 points
  3. hnShow HN: Manim-Studio – Prompt to 3blue1brown video3 points
  4. hnManim: Framework for Creating Mathematical Animations3 points

Who it’s for

Teachers and technical authors who want to keep lesson animations in Python scene files.
Developers making related mathematical scenes whose transformations should be repeatable.
Notebook users who want the documented Jupyter workflow before moving to local rendering.

Who it’s NOT for

Authors who want to arrange animations visually: the README's basic workflow requires a Python Scene class and a terminal command.
Teams expecting to reuse ManimGL instructions unchanged: the Community README explicitly warns against mixing the two editions.
Maintainers who need new features accepted upstream soon: the README says a major refactor is underway and new-feature contributions generally will not be accepted during it.
Export pipelines that cannot accommodate changed command options: version 0.22.0 removes several output switches and requires affected scripts to migrate.

Setup reality

Our sandbox installed commit 622520d in 22 seconds, recorded 35 dependencies and 37 MB on disk, and built it in 3 seconds. Tests failed after 6 seconds with exit code 4: loading tests/conftest.py reached import cairo and raised ModuleNotFoundError. Pip-audit reported 0 known vulnerabilities.

Local use needs a Python environment and scene files, without a hosted rendering account or API credential. The official guide recommends uv, explains optional LaTeX for formulas, and documents an optional Typst dependency. The README also links browser notebooks and a Docker image.

Linux guidance lists compiler tools and Pango/Cairo development libraries; macOS guidance calls for Cairo and pkg-config. Those requirements do not establish why our import failed. The recorded image label is not proof of actual runtime versions. Follow Community instructions throughout: the README warns that ManimGL setup instructions are incompatible.

A scene file makes the lesson repeatable

Change the transformation in a Python scene, then render the explanation again. Manim Community makes sense when that is how you want to revise a lesson. Its README example creates a square, transforms it into a circle, and fades it out through explicit scene instructions. You can inspect the sequence in a text file. For an explanation whose geometry carries the argument, that control is a good reason to learn the library.

The cost is that you author the animation in Python. The example asks you to define a Scene and its construct method before running a command. I would choose this approach for teaching material that needs repeated revisions or related scenes with shared logic. For a presenter who wants to arrange every movement visually, the code is extra work before the explanation gets any better.

What happened when we ran it

Our sandbox installed Manim Community commit 622520d in 22 seconds and built it in 3 seconds, but the test step failed after 6 seconds with exit code 4. The run took place on October 16, 2026, with 3 CPUs and 8 GB of RAM. The recorded image was ghcr.io/astral-sh/uv:python3.12-bookworm. That label does not establish the actual interpreter or operating-system version, which would require the raw toolchain logs.

The failure occurred while loading tests/conftest.py. Its import cairo statement raised ModuleNotFoundError: No module named 'cairo'. That is the extent of the diagnosis: the test process could not import that module. The supplied log does not explain why it was unavailable, and it gives no passing-test count. A successful build therefore leaves the test setup unresolved. It does not establish a rendering defect.

Installation recorded 35 dependencies and 37 MB on disk. Pip-audit reported 0 known vulnerabilities in this run, which is an audit result rather than a security guarantee. The checkout itself contained 1,398 files, about 101,592 source lines, and occupied 17 MB. These measurements describe the repository workflow we ran. They provide no rendering-speed benchmark or visual-quality result, so I would still require an exported lesson before adopting it for a deadline.

Local use needs a prepared Python environment

The official local guide recommends an isolated project managed with uv. On Linux it lists a C compiler, Python development headers, pkg-config, and the Pango and Cairo development libraries. Its macOS path calls for Cairo and pkg-config through Homebrew. Those documented requirements deserve attention before you treat a package command as the whole setup. They do not, by themselves, explain the missing import in our sandbox.

Formula rendering adds another choice. The guide describes LaTeX as optional if plain text is sufficient, and gives operating-system-specific distribution advice for people who need it. It also documents an optional Typst dependency. The basic local workflow needs a scene file and a working local environment, without a hosted rendering account or API credential. For an initial look, the README links an online Jupyter environment and a maintained Docker image.

Community scenes and ManimGL instructions must stay separate

The Community README explicitly warns that mixing its installation instructions with those for 3b1b/manim causes problems. Both projects carry the Manim name and share an origin, which makes an old tutorial an easy source of confusion. Check the repository behind an example before copying its commands. A recognizable square-to-circle animation does not tell you which edition produced it.

ManimGL is the alternative to consider when studying Grant Sanderson's own video workflow. Its README identifies the package as manimgl and warns that older video code may be incompatible with the current version. Motion Canvas instead combines a TypeScript animation library with an editor preview and targets informative vector animation synchronized with voice-overs. Choose between these authoring models using a scene you actually need to explain, rather than the reputation of a demonstration video.

Version 0.22.0 requires some script changes

The October 8, 2026 release notes replace overlapping output switches with a single format setting. They also separate opening a finished file from live OpenGL preview. Ordinary scenes using default settings need no changes, according to the release, while scripts and configuration relying on removed options need updates. A team with automated exports should read that migration section before changing its pinned version.

Maintenance is current, although contribution expectations are restrictive. GitHub records a push on October 20, and the issue feed contains discussion updated on October 23. The README says a major refactor is underway and that new-feature contributions generally will not be accepted during it. If adopting Manim depends on getting your own feature merged soon, that is a concrete reason to wait or keep the change in your own fork.

I rate documentation 4/5 for its runnable scene example, platform-specific local guide, and explicit release migration notes. That is a judgment of documented coverage, with 5 reserved for coverage verified through the relevant workflows. Setup ease and runtime maturity remain unassessed because our tests stopped at the import, and community support quality remains unassessed because an active feed cannot establish response quality. Before moving a course onto Manim Community, export one representative scene with your own formulas and keep its working environment pinned alongside it.

Alternatives

ProjectWhat it isPick it when
ManimGL gh↗Grant Sanderson's Python animation project, distributed as manimgl.Pick this instead when studying the original 3Blue1Brown video workflow, while allowing for the README's older-scene compatibility warning.
Motion CanvasA TypeScript animation library paired with an editor preview.Pick this instead when TypeScript and vector animations synchronized with voice-overs fit your authoring workflow.

Sources

  1. Manim Community README
  2. Manim 0.22.0 release and migration notes
  3. Official local environment guide
  4. ManimGL README
  5. Motion Canvas README
  6. Recent Manim Community issues and pull requests

More dev tools reviews

firebase-tools · brotli · agentskills · hallmark · ds-harness-remote · PCL · the whole board →