mrkeyoor.com_
Thu 24 Sept 23:59 UTC
Dev Toolsevaluationupdated 27 Aug 2026

manim review

ManimGL is the Python animation engine Grant Sanderson uses to make precise mathematical explanations for 3Blue1Brown videos. You describe equations, shapes, transformations, camera moves, and timing in code, which makes repeatable visuals easier than animating each change by hand.

+138stars / 7d
Verdict

Our ManimGL run installed 33 packages and built in 2 seconds, but pytest stopped with 2 collection errors because numpy was missing. Choose it when you specifically want the engine and interactive habits used for 3Blue1Brown production. Most beginners should start with Manim Community, as this repository's own README recommends.

We ran it

Lab card: what happened when we ran manimScreenshot of manim (github.com/3b1b/manim)
Install✓ · 16s33 packages · 36 MB
Build✓ · 2s
Tests✗ · 1s0 passed · 0 failed · 2 errors of 2 (pytest)
Known vulns0(pip-audit)
Repo178 files~27,698 lines of source · 2.1 MB · 2 CI workflows · tests dir

Answers from our run

Does manim build from source?

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

Do manim's tests pass?

Yes: 0 of 2 passed when we ran the project's own test command (pytest), with 2 collection errors. Some failures need services or credentials a bare container does not have.

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?

Most first-time Manim users: this repository's README says Manim Community aims to be more stable, better tested, more responsive to contributions, and friendlier to start with.

What are the alternatives to manim?

Manim Community, Motion Canvas, Remotion. Our ManimGL run installed 33 packages and built in 2 seconds, but pytest stopped with 2 collection errors because numpy was missing.

Setup2/5Short pip command, substantial native and LaTeX dependencies
Docs3/5Useful examples and guides, but documentation remains in progress
Community4/5Large audience and current work despite a sizable queue
Maturity3/5Active source, but released package trails current development

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 users who specifically want the 3Blue1Brown-style ManimGL workflow and API.
Mathematics educators who need equations, coordinate planes, geometric objects, and transformations to move with code-level precision.
Creators who value interactive scene inspection and fast iteration more than a beginner-oriented editor.
Developers prepared to pin an environment and learn from example scenes and real 3Blue1Brown source files.

Who it’s NOT for

Most first-time Manim users: this repository's README says Manim Community aims to be more stable, better tested, more responsive to contributions, and friendlier to start with.
Anyone expecting pip install to be the entire setup: FFmpeg and OpenGL are required, Linux needs Pango development headers, and formula rendering adds a LaTeX installation.
Teams that need old 3Blue1Brown scene files to run unchanged: the README explicitly warns that code from older videos may not work with the newest ManimGL.
Users on the newest Python toolchain who cannot troubleshoot packaging: an open report shows uvx with Python 3.14 failing because pkg_resources is unavailable.
Laptop users relying heavily on the interactive embed loop: an open bug report says it can consume a full CPU core and increase heat and battery use.

Setup reality

Our Debian sandbox installed 33 packages in 16 seconds, using 36 MB, and the build completed in 2 seconds. Tests failed after 1 second during collection: pytest ran no tests and reported two setup errors because both test modules could not import numpy. The Python dependency audit found no known vulnerabilities.

A usable workstation also needs FFmpeg and OpenGL. Linux requires Pango development headers, while equation rendering needs a LaTeX distribution. No account or hosted service is required. The package name is manimgl, which the README warns not to mix with the separate manim Community Edition package.

The first scene opens an interactive window, so this is a graphics workstation setup rather than a plain headless library install. ARM Macs add Cairo, Windows needs separate FFmpeg and MiKTeX preparation, and project output, assets, sounds, style, and quality are controlled through YAML configuration.

The original Manim, not the default Manim

The first fact to get straight about 3b1b/manim is its identity. This is ManimGL, the descendant of Grant Sanderson's personal animation engine for 3Blue1Brown. It is separate from Manim Community, even though both projects share history, concepts, and much of the name. The install package here is manimgl; installing manim follows a different project. Mixing their tutorials, commands, or APIs can waste hours.

The repository explains the choice clearly. Manim Community was forked in 2020 with goals of greater stability, better testing, faster responses to contributions, and an easier start. ManimGL remains the closer match for Sanderson's own production and interactive style of working. Pick this edition because you need its API or workflow, not because it has the original repository name.

What happened when we ran it

We cloned commit 9d57bcf into a fresh Debian container with 3 CPUs and 8 GB of RAM. Installation succeeded in 16 seconds, putting 33 packages and 36 MB on disk. The detected build then succeeded in 2 seconds. A Python dependency audit found no known vulnerabilities.

The test step failed in 1 second before a test could run. Pytest collected test_coordinate_systems.py and test_space_ops.py, and both stopped on ModuleNotFoundError: No module named 'numpy'. The final count was 0 passed, 0 failed, and 2 collection or setup errors. The log establishes the missing import; it does not show why the test environment lacked it.

The checkout was 2.1 MB, with 178 files and about 27,698 lines of source. The lab found two CI workflows, no Dockerfile, and a tests directory. The quick install and build are encouraging, but the collection failure means our run did not exercise scene math or rendering behavior.

Why code works well for math animation

A ManimGL scene is a Python class with a construct method. You create objects, position them, and pass animations to self.play. Included examples cover a coordinate grid transformed by a matrix, a complex plane mapped through a function, equations rearranged by matching component strings, and labels updated on every frame. Those effects become brittle in a general video editor. In code, each transformation stays tied to the mathematical operation.

The object model exposes useful mechanics. A grid can animate a method call, colors can flow across subobjects, and a function that maps three-dimensional points can deform an object. Tex and TexText turn typeset expressions into drawable pieces. Matching transforms associate terms across equations, so viewers see where each symbol moves instead of watching one formula fade into another.

Change a matrix, equation, color rule, or timing value, then render again. Related lessons can share helpers and configuration. The separate 3b1b/videos repository contains real production source, though this README warns that older video code may no longer match current ManimGL. Treat it as a workshop full of techniques rather than a stable example suite.

Installation has a long tail

pip install manimgl looks easy, and it can be on an already prepared workstation. The prerequisites are FFmpeg and OpenGL, with Pango and its development headers required on Linux. LaTeX is optional if you only use plain text and shapes. For the equation-heavy work that draws many people to Manim, it is effectively part of setup.

The macOS instructions illustrate the cost. Homebrew can install FFmpeg and MacTeX, but the README says the full MacTeX bundle is about 6 GB. BasicTeX is smaller, then requires adding packages needed by your scenes. ARM Macs also have a Cairo step. Windows gets a separate sequence for FFmpeg, MiKTeX, cloning, and editable installation.

After the example window opens, there is another learning curve. CLI switches control writing, opening, skipping to a final frame, jumping to a numbered animation, and fullscreen playback. A custom_config.yml determines output paths, asset locations, sounds, style, and quality. A serious project should pin Python and package versions, document system packages, and render a known scene on a controlled build machine.

Rough edges and current health

The latest numbered release is v1.7.2 from December 2024, while the repository was pushed on August 18, 2026. The release date alone does not indicate abandonment because source and discussion remain current. It does mean users must choose between the released package and active source, then pin that choice.

Open reports show practical compatibility costs. A Python 3.14 uvx run fails on a missing pkg_resources import. Another report says the interactive embed event loop can peg one CPU core. These may spare a pinned workstation, but they make casual upgrades risky before a deadline. Documentation covers platform setup, commands, configuration, lineage, and example scenes, yet the README still describes it as in progress.

GitHub showed 488 open issues and pull requests combined on August 24. That is a sizable queue, though current work is easy to see: pull requests for frame pacing, Windows sound handling, glyph selection, documentation, and scene paths were updated in August 2026. Bug reports were receiving current discussion too.

Who should choose it

ManimGL fits mathematical objects, programmable transformations, interactive iteration, and the exact creative environment used for 3Blue1Brown work. For a newcomer who simply wants to make a Manim lesson, Manim Community is the safer first choice. Motion Canvas suits TypeScript teams, while Remotion is better for React-based video templates. Choose this repository when ManimGL itself is the requirement, and budget time for native dependencies plus a pinned environment.

Alternatives

ProjectWhat it isPick it when
Manim Community gh↗The community-led Manim edition focused on stability, tests, documentation, and newcomer support.pick this instead when you are new to Manim or value a broader community ecosystem over matching 3Blue1Brown's exact workflow.
Motion CanvasA TypeScript animation framework for programmatic motion graphics with live editing.pick this instead when your team prefers web technologies and the visuals extend beyond mathematical notation.
Remotion gh↗A React framework for rendering videos from components, data, and browser graphics.pick this instead when you are building template-driven videos in React rather than equation-heavy mathematical scenes.

What people are saying

  1. [github-trending] 3b1b/manim

Sources

  1. ManimGL repository and README
  2. ManimGL example scenes
  3. ManimGL v1.7.2 release
  4. Python 3.14 uvx installation report
  5. Interactive embed CPU report
  6. Current ManimGL issues and pull requests

More dev tools reviews

zeron · cs2-dumper · hackingtool · react-native-continued-task · selfdb · DLSS5oneclick · the whole board →