mrkeyoor.com_
Mon 10 Aug 15:22 UTC
Dev Toolsevaluationupdated 10 Aug 2026

manim

ManimGL is the Python animation engine Grant Sanderson uses to build precise mathematical explanations for 3Blue1Brown videos. You describe scenes, equations, shapes, transformations, and camera movement in code, which solves the problem of making repeatable visuals that are too exact or tedious to animate by hand.

Verdict

ManimGL is the right choice when you want the engine and interactive habits closest to current 3Blue1Brown production. It is not the Manim edition we would recommend to most beginners, and the project says so plainly. Start with Manim Community unless a ManimGL-specific example, API, or workflow is the reason you came.

Setup2/5Short pip command, substantial native and LaTeX dependencies
Docs3/5Useful examples and guides, but documentation remains in progress
Community4/5Huge audience and active code changes despite a large queue
Maturity3/5Proven output, but beta packaging and moving master raise risk

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 by reading example scenes and real 3Blue1Brown source files.

Who it’s NOT for

  • Most first-time Manim users: this repository's own 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 graphics support are required, Linux needs Pango development headers, and formula rendering adds a LaTeX installation that can be several gigabytes on macOS.
  • 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

The package command is short, but the system setup is not. pip install manimgl uses a package name that is easy to confuse with Manim Community, and a working machine also needs FFmpeg, graphics support, plus Pango headers on Linux. LaTeX is optional only if you do not need typeset mathematics; the macOS guide notes that full MacTeX is about 6 GB, with BasicTeX as a smaller path that needs extra packages. After installation, expect to learn scene classes, CLI flags, asset paths, fonts, and a YAML configuration rather than design in a visual timeline.

The original Manim, not the default Manim

The most important fact about 3b1b/manim is its identity. This is ManimGL, the descendant of Grant Sanderson's personal animation engine for 3Blue1Brown. It is not the separately maintained Manim Community edition, 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 tutorials, commands, or APIs between them is a reliable way to lose an afternoon.

The repository makes the choice unusually explicit. 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 an interactive, GPU-oriented style of working. That makes it a specialist recommendation. Pick it because you need this branch, not because it has the original and most famous repository name.

Why code is a good medium 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. The included examples show a coordinate grid transformed by a matrix, a complex plane mapped through a function, equations rearranged by matching their component strings, and labels updated on every frame. Those are exactly the effects that become brittle in a general video editor. In code, the transformation remains tied to the underlying mathematical operation.

The object model is expressive without hiding the mechanism. A grid can animate a method call, colors can flow across subobjects, and a function from three-dimensional points to new points can deform an object. Tex and TexText turn typeset expressions into drawable pieces. Matching transforms can associate terms across two equations so viewers see where each symbol moves rather than watching one formula fade into another.

Repeatability is the larger payoff. Change a matrix, equation, color rule, or timing value, then render again. A family of related lessons can share helper classes and configuration. The separate 3b1b/videos repository provides real production source as a deep reference, although this README warns that older video code may no longer match current ManimGL. Treat it as a workshop full of techniques, not a stable example suite.

Installation has a long tail

pip install manimgl looks easy, and for an already prepared workstation it can be. The actual prerequisites are FFmpeg and graphics support, with Pango and its development headers required on Linux. LaTeX is optional in the narrow sense that plain text and shapes can work without it. For the equation-heavy reason most people choose Manim, it is effectively part of the setup.

The macOS instructions illustrate the tradeoff. Homebrew can install FFmpeg and MacTeX, but the README calls the full MacTeX bundle about 6 GB. BasicTeX is smaller, then requires adding the packages needed by your scenes. ARM Macs also have a Cairo installation step. Windows gets a separate sequence for FFmpeg, MiKTeX, cloning, and editable installation. None of this is unreasonable for a graphics tool, but it is not the frictionless Python package suggested by a single pip line.

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. Fonts and LaTeX distributions can change behavior across machines. A serious project should pin Python and package versions, document system packages, and render a known scene in continuous integration or on a controlled build machine.

Rough edges worth choosing consciously

Version boundaries create the first risk. The latest numbered release is v1.7.2 from December 2024, while the repository was pushed on August 6, 2026. Recent merged work includes major renderer changes, including a move toward wgpu, so current master and the published package are meaningfully different targets. The old release date is not evidence of abandonment. It is evidence that you must decide whether you want the released package or active source and then pin that choice.

Open reports show practical compatibility costs. A Python 3.14 uvx run fails on a missing pkg_resources import. A Windows report describes LaTeX compilation and empty SVG output problems. Another report says the interactive embed event loop can peg one CPU core. These may not affect a pinned, known-good workstation, but they make casual upgrades risky before a deadline.

Documentation is useful but unfinished by its own description. The README covers platform setup, essential commands, configuration, project lineage, and links to example scenes. Chinese community documentation is also available. The strongest learning material remains examples plus source, which suits experienced Python developers better than teachers hoping for a guided visual authoring tool.

Health and the recommendation

The repository's GitHub open count is 494, including issues and pull requests. That is a substantial queue, yet recent activity is real: several rendering pull requests were merged in late July and early August 2026, and open issues continued receiving updates through August 10. Development is concentrated rather than dormant. The setup metadata still labels the package beta, a fair description for software that produces professional work but expects users to tolerate moving internals.

ManimGL is exceptional when its exact strengths match the job: mathematical objects, programmable transformations, interactive iteration, and compatibility with Sanderson's current creative environment. For a newcomer who simply wants to make a Manim lesson, Manim Community is the safer first choice. For a creator studying 3Blue1Brown techniques or depending on ManimGL APIs, this repository is worth the extra setup and stricter environment discipline.

Alternatives

ProjectWhat it isPick it when
Manim CommunityThe community-led Manim edition with a stronger focus 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 a live editing workflow.pick this instead when your team prefers web technologies and your visuals extend beyond mathematical notation.
RemotionA 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. Windows LaTeX and SVG report
  7. wgpu renderer pull request