Manim is the community-maintained Python framework for creating mathematical animations, programmatically rendering precise 3Blue1Brown-style explainer videos, widely used for math teaching and educational video production.
- v0.22.1
- Published at
- 17h ago
- 41,941
- Stars
- 5,717
- Download
- Synced at
- 25m ago
Latest release
v0.22.1Oct 27, 2026, 08:46 PMREADME
Project Overview
Manim is an open-source animation engine that creates math animations from code — the explainer videos on the 3Blue1Brown channel are made with it. This repository is the community edition (ManimCE), forked from Grant Sanderson's original repo, with more active maintenance, richer features, and better documentation. You define a Scene class in Python describing actions like creating, transforming, and fading shapes, then render to video with one command; a %%manim magic command previews directly in Jupyter, and an official Docker image removes all setup friction.
| Item | Value |
|---|---|
| Language | Python |
| Platform | Linux, macOS, Windows (Docker image available) |
| Output | MP4 video (GIF supported) |
| License | MIT |
Animations from code: the same engine behind 3Blue1Brown.
Key Features
- Programmatic animation: every shape and motion is described in code — reproducible and version-controllable
- Rich animation primitives: Create, Transform, FadeOut, and more work out of the box, with custom animations supported
- Math typesetting: LaTeX integration renders formulas, matrices, and derivations
- CLI render control:
-qlfor fast low-quality previews,-pto auto-play,-sfor the final frame only,-nto jump to the nth animation - Jupyter integration: the
%%manimmagic command gives instant feedback in notebooks - Docker image: the official image bundles all dependencies for zero-config local use
Target Audience
- Math and educational video creators
- Teachers and course content producers
- Developers visualizing algorithms and geometry
- Animators who need precise, controllable motion
Quick Start
- Install dependencies per the official docs (LaTeX, ffmpeg), or use the official Docker image
- Write a scene and render:
from manim import *
class SquareToCircle(Scene):
def construct(self):
square = Square()
circle = Circle().set_fill(PINK, opacity=0.5)
self.play(Create(square))
self.play(Transform(square, circle))
self.play(FadeOut(square))- Run
manim -p -ql example.py SquareToCircle; the video plays automatically when rendering finishes - Try online with no install at try.manim.community
Core Advantages
- Precision and reproducibility: code-driven animation gives exact control over every detail and easy re-rendering
- Actively maintained edition: ManimCE iterates continuously with solid docs and examples
- Low barrier to try: the online Jupyter environment and Docker image get newcomers to a first animation in minutes
System Requirements
| Item | Requirement |
|---|---|
| Language | Python |
| OS | Linux, macOS, Windows |
| External deps | LaTeX, ffmpeg |
| Alternative | Official Docker image includes everything |
Notes
- Do not mix editions: the community edition and 3b1b/manim have different install steps; pick one and follow its docs only
- Major refactor in progress: new feature contributions are paused during the refactor; prefer stable releases for use