Animate Math the Way 3Blue1Brown Does, Without Reinventing the Toolchain
You've watched a 3Blue1Brown video and thought, "How does he make those animations look so clean?" The answer, for years, has been Manim—an animation engine built for exactly that purpose. The catch is that the original repo is a personal tool, not a general-purpose library. Manim Community Edition is the fork that tries to be both.
What It Does
Manim is a Python animation engine designed for explanatory math videos. You write Python code that constructs Scene objects, and Manim renders those scenes into video. The animations are programmatic and precise—the kind you need when you're trying to show a geometric transformation or a function morphing in real time, not just slap a tween on a shape.
The community edition (ManimCE) is a fork of 3b1b/manim, the original tool created and open-sourced by Grant Sanderson, the person behind 3Blue1Brown. Sanderson still maintains his own repository. This version is maintained and developed by the community, and the README makes a clear recommendation: if you want continued development, improved features, better documentation, and active community-driven maintenance, use this one. If you want to study how Grant makes his videos specifically, go to his repo. They're not interchangeable, and the README is blunt about that—installation instructions for one will cause problems with the other.
The core of the library is the Scene class. You define a construct method, create geometric objects like Circle and Square, apply transformations (flip, rotate, set_fill), and Manim handles the rendering. It's Python all the way down, which means you get the full language for logic, loops, and composition—not a GUI timeline.
Why It's Cool
-
It's honest about the fork. Plenty of community forks quietly pretend to be the "real" project. This one tells you exactly where it came from, credits the original author by name, and links you to his repo if that's what you actually want. That kind of clarity saves you from a confusing install session.
-
The documentation is a first-class concern. The README points you to a dedicated docs site, a separate installation guide per operating system, and a FAQ entry specifically about the version confusion. That FAQ link ("why are there different versions of manim") is a small but telling detail—they know the fork landscape is confusing and they've addressed it head-on.
-
You can try it before installing anything. There's an online Jupyter environment linked right in the README. For a tool with a reputation for finicky dependencies, being able to test a scene in a browser first is genuinely useful. There's also a Binder link with example scenes.
-
Docker is a supported path. The README includes a Docker image badge, which matters if you've ever spent an afternoon fighting TeX and FFmpeg dependencies on a fresh machine.
-
The API is compositional. The example scene—a square that flips, rotates, and morphs into a filled circle—is four or five lines. That's the pitch: geometric primitives and transformations that compose predictably, so you spend your time on the math, not the animation scaffolding.
How to Try It
-
Decide which version you want first. Read the FAQ on the different versions before you type a single install command. The README is explicit that mixing instructions between the two repos will break things.
-
If you just want to poke at it, skip local installation entirely and use the online Jupyter environment.
-
For a local install, follow the installation docs for your operating system. Manim has dependencies that need to be in place beforehand, so don't shortcut this step.
-
Once installed, write a scene. The README's example is a good starting point:
from manim import *
class SquareToCircle(Scene):
def construct(self):
circle = Circle()
square = Square()
square.flip(RIGHT)
square.rotate(-3 * TAU / 8)
circle.set_fill(PINK, opacity=0.5)
Render it, watch it, then start swapping in your own shapes and transformations.
- The repository lives at github.com/ManimCommunity/manim. The README links out to Discord, Reddit, and Twitter if you get stuck.
Final Thoughts
ManimCE is a tool with a specific audience: people who want to explain math visually and are comfortable writing Python to do it. If that's you, the community edition is the pragmatic choice—it's the one with active maintenance, organized docs, and a support community. If you're a 3Blue1Brown completist who wants to replicate his exact pipeline, the README will politely point you elsewhere. Either way, the project's transparency about its own origin is refreshing, and it makes the decision easier than most forks do.
Follow @githubprojects for more developer tools and open source projects.