mrkeyoor.com_
Mon 09 Nov 05:50 UTC
Dev Toolsevaluationupdated 11 Oct 2026

manim review

ManimGL turns Python code into animated mathematical diagrams and explanatory videos. It's the version developed by Grant Sanderson for 3Blue1Brown, useful when a diagram's movement needs to follow the mathematics precisely.

+240stars / 7d
Verdict

Our ManimGL run installed 35 packages in 35 seconds and built in 5 seconds, but pytest stopped with 2 collection/setup errors because it could not import NumPy. Use it when you specifically want the original 3Blue1Brown workflow and can maintain the scene code and graphics environment. For a new teaching project, I'd consider Manim Community first unless an existing ManimGL scene gives you a reason to choose this edition.

We ran it

Lab card: what happened when we ran manimScreenshot of manim (github.com/3b1b/manim)
Install✓ · 35s35 packages · 38 MB
Build✓ · 5s
Tests✗ · 6s0 passed · 0 failed · 2 errors of 2 (pytest)
Known vulns0(pip-audit)
Repo182 files~28,510 lines of source · 2.1 MB · 2 CI workflows · tests dir

Answers from our run

Does manim build from source?

Dependencies installed in 35 seconds (35 packages), and the build succeeded in 5 seconds. We cloned commit fafa083 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 finished in 6 seconds and reported 0 passed, 0 failed, 2 collection errors (pytest).

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?

Beginners following Manim Community tutorials: this repository uses manimgl, and its README warns against mixing the editions' instructions.

What are the alternatives to manim?

Manim Community, Motion Canvas. Our ManimGL run installed 35 packages in 35 seconds and built in 5 seconds, but pytest stopped with 2 collection/setup errors because it could not import NumPy.

Setup2/5System graphics requirements and 2 collection/setup errors
Docs3/5Useful platform steps, with edition and older-scene compatibility cautions
Community4/5September push and October issue and PR activity
Maturity3/5Established author workflow, but our suite never reached assertions

Discussed on

  1. hnManim – an animation engine for explanatory math videos905 points
  2. hnManim – 3Blue1Brown's animation engine for explanatory math videos669 points
  3. hnManim: Animation engine for explanatory math videos434 points
  4. hnManim: Animation engine for explanatory math videos283 points
  5. hnShow HN: I ported Manim to TypeScript (run 3b1B math animations in the browser)140 points

Who it’s for

Python developers making lessons where coordinate transformations or equations need to move according to code.
Creators extending scenes written specifically for 3b1b/manim.
Teachers willing to maintain a graphics environment and a versioned collection of scene files.

Who it’s NOT for

Beginners following Manim Community tutorials: this repository uses manimgl, and its README warns against mixing the editions' instructions.
Teams expecting every old 3Blue1Brown scene to run unchanged: the README warns that older video code may be incompatible with current ManimGL.
Developers seeking a Python-only environment: the documented workflow needs FFmpeg and OpenGL, plus Pango development headers on Linux.
Editors who want to arrange animations without programming: the documented scenes are Python classes that define their own animation steps.

Setup reality

Our run installed commit fafa083 in 35 seconds: 35 packages and 38 MB on disk. The build passed in 5 seconds. Pytest exited 1 after 6 seconds, with 0 passed, 0 failed, and 2 collection/setup errors. The tail reports that NumPy could not be imported. Pip-audit found 0 known vulnerabilities.

Local scenes need no hosted API credential. The README requires Python 3.10 or newer, FFmpeg, and OpenGL, plus Pango development headers on Linux. LaTeX is optional for typeset mathematics. Use custom_config.yml for output paths, asset directories, and style defaults.

The documented preview opens a graphics window, which our build result doesn't validate. Older video code may need adaptation, and Manim Community instructions aren't interchangeable with these. Select the edition and revision before collecting examples.

Choose ManimGL when you want the original author's workflow

Installing ManimGL took 35 seconds in our sandbox, but choosing the right Manim matters before you type a command. The package for 3b1b/manim is manimgl. The separate community edition uses manim, and the original README warns that mixing their installation instructions causes problems. If you're following a tutorial, check which edition it uses before turning its first example into your project.

Grant Sanderson built this repository to make 3Blue1Brown videos. Its example scene transforms a coordinate grid with a matrix, then bends a complex plane using a Python function. That's the appeal: the movement follows the mathematical operation you wrote. For a lesson about transformations, you can make the explanation and the animation share the same logic instead of manually placing each intermediate shape.

What happened when we ran it

Our run installed commit fafa083 in 35 seconds, adding 35 packages and using 38 MB on disk. The build succeeded in 5 seconds. We cloned it on October 10, 2026, into an unprivileged Debian container with 3 CPUs, 8 GB of RAM, and the ghcr.io/astral-sh/uv:python3.12-bookworm image. The container had no secrets. Those are repository setup results, without a measured animation-rendering workload.

Pytest exited with code 1 after 6 seconds. The summary recorded 0 passed, 0 failed, and 2 collection/setup errors. Both affected files were named in the tail: tests/test_coordinate_systems.py and tests/test_space_ops.py. The visible traceback ends at import numpy as np with ModuleNotFoundError: No module named 'numpy'. Test collection stopped before assertions could establish whether either module's behavior was correct.

The log establishes that NumPy was unavailable to the test interpreter. It doesn't establish why. Pip-audit reported 0 known vulnerabilities, which describes that audit's result rather than every possible security problem. Installation and build both completed, while the suite remained unverified. A team adopting this commit should resolve the collection error in its own environment before treating the successful build as release evidence.

The README names system requirements beyond pip

FFmpeg and OpenGL are listed system requirements. Linux also needs Pango with its development headers, and LaTeX is optional for scenes that use mathematical typesetting. The Debian instructions include the relevant package names. This is useful documentation: the reader gets an operating-system checklist alongside the Python command. A workstation intended only for Python scripts still needs those graphics and media facilities for the documented animation workflow.

The 38 MB we measured after installation isn't a budget for a complete animation workstation. Fonts, media assets, and any LaTeX distribution belong in your environment planning separately. Local animation doesn't call for a hosted API credential. Output locations, asset directories, and style defaults live in custom_config.yml, which you can supply in the directory where you run ManimGL. Keep that file with the scenes that depend on it.

Python controls the scene, including its visual details

The checked-in OpeningManimExample uses NumberPlane, an explicit matrix, and apply_complex_function. Other examples demonstrate equation transformations and font selection. These are good starting points for a Python developer who already knows what a diagram should explain. They also expose the work you're accepting: you write scene code and decide how mathematical objects should move, appear, and relate to one another on screen.

Our checkout contained 182 files and roughly 28,510 lines of source in 2.1 MB. That's accessible enough to inspect when an example behaves differently from your expectations, but reading implementation code still costs attention. I would choose ManimGL for a reusable sequence of mathematical scenes whose logic belongs in Python. For an occasional title animation that you want to arrange visually, this authoring model adds work without much payoff.

The README's preview command opens a scene in a window. Its -w option writes an animation to a file, while -s jumps to the final frame. Those controls help you inspect composition or export the result. The official examples also describe an interactive Python shell for manipulating scene objects. Our build result doesn't verify that windowed workflow, so check an actual preview on your target machine before committing a lesson deadline to it.

Older video code can need adaptation

The 5-second successful build doesn't resolve the README's compatibility warning: code from older 3Blue1Brown videos may not work with the latest ManimGL. That matters if your starting point is an impressive scene found in 3b1b/videos. Pin the code you're borrowing alongside the library version, and expect to inspect the example rather than assume every historical animation is a ready-made template for today's checkout.

For a new course or shared teaching repository, I'd start by considering Manim Community. The original README itself describes that fork's goals as greater stability and an easier start. That's a stated direction, without a comparative result from our lab. Motion Canvas is another sensible choice when you prefer TypeScript animation code and an editor preview, especially for explanatory vector graphics timed to narration.

Recent repository activity outlasts the release tag

The last push was September 9, 2026, while the latest tagged release, v1.7.2, dates to December 13, 2024. GitHub listed 94,880 stars and 501 open issues and PRs. The recently updated activity list includes October discussions and contributions, so the old release date alone doesn't support calling the project abandoned. Release packaging and ongoing repository work are different signals, and both matter when choosing a revision.

Our scan found 2 CI workflow files and a tests directory, yet our own suite stopped at collection. Use ManimGL when its original workflow or existing scenes give you a specific reason to accept that maintenance burden. Before adopting it for teaching, write one scene from your own material and export it on the machine you'll use. A working animation of your explanation is a better admission test than recognizing the logo.

Alternatives

ProjectWhat it isPick it when
Manim Community gh↗A separate community-maintained Python framework for mathematical animation.pick this instead when you want the community edition and its own tutorials, notebook integration, and contribution ecosystem.
Motion CanvasTypeScript animation code with an editor preview for explanatory vector graphics.pick this instead when TypeScript and timing graphics to narration suit your workflow better than Python math scenes.

Sources

  1. ManimGL README and platform requirements
  2. Current ManimGL example scenes
  3. ManimGL release v1.7.2
  4. ManimGL repository facts
  5. Recently updated ManimGL issues and pull requests
  6. Manim Community README
  7. Motion Canvas README
  8. ManimGL interactive example documentation

More dev tools reviews

google-colab-cli · mujoco · SteamTools · git-cliff · blackbird · czkawka · the whole board →