manim
Animation engine for explanatory math videos.
What it is and what it does
Manim is a Python animation engine designed for creating explanatory math videos by defining scenes as code. You write Python classes that inherit from Scene, add geometric objects (circles, squares, graphs), apply transformations and animations, then render to video via command-line. It's the engine behind 3Blue1Brown's educational videos and is maintained by an active community.
The package combines graphics rendering (moderngl, cairo), audio processing (av, pydub), and scientific computing (numpy, scipy, networkx) to produce smooth animations of mathematical concepts. It ships with a CLI for rendering scenes and an IPython magic for Jupyter notebooks. Typical workflow: write a scene class, call `manim` from the terminal with flags like `-p` (preview) or `-ql` (low quality for speed), and get a video file.
Use it for:
- Create educational videos explaining mathematical concepts, proofs, or algorithms through animated diagrams.
- Generate animated visualizations of data structures, graph algorithms, or network topology for teaching.
- Produce presentation slides or supplementary videos for STEM courses with dynamic geometric transformations.
- Build animated infographics or explainer videos for technical content with precise control over timing and motion.
- Prototype mathematical visualizations for research papers or technical documentation.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Manim is an animation engine that creates precise, programmatic animations for explanatory math videos, rendering geometric shapes, transformations, and mathematical concepts as video output.
Yes, if you need to create programmatic math animations for education or technical content. The active maintenance, zero known vulnerabilities, permissive MIT license, and strong community support make it a solid choice. Install friction is low despite many dependencies. Not suitable if you need real-time interactive graphics or 3D rendering beyond what the engine provides—it's optimized for offline video production, not live visualization.
Install
manim on PyPI
pip
pip install manimuv
uv add manimpoetry
poetry add manimInstalling manim
Before you install
Installation has low friction as a pure Python wheel, though it carries 26 runtime dependencies including graphics libraries (moderngl, pycairo, pillow), audio processing (av, pydub), and scientific computing (numpy, scipy). The project is actively maintained with recent commits and no known vulnerabilities.
License in practice
Licensed under MIT with dual copyright (3blue1brown LLC and Manim Community Developers), a permissive license allowing commercial and private use with attribution.
Quickstart
pip install manim
from manim import *
class SquareToCircle(Scene):
def construct(self):
square = Square()
circle = Circle()
self.play(Create(square))
self.play(Transform(square, circle))
manim -p -ql example.py SquareToCircle
Requires Python 3.11 or later; system dependencies for graphics rendering (cairo, ffmpeg, latex) must be installed separately per OS-specific documentation.
Verify before relying
- Whether all 26 runtime dependencies are required for basic use or if subsets suffice for specific animation types.
- Performance characteristics and typical render times for different scene complexity levels.
- Memory requirements for rendering high-resolution or long-duration animations.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 26 — audioop-lts, av, beautifulsoup4, click, cloup, decorator, isosurfaces, manimpango, mapbox-earcut, moderngl-window, moderngl, networkx, numpy, pillow, pycairo, pydub, pygments, rich, scipy, screeninfo, skia-pathops, srt, svgelements, tqdm, typing-extensions, watchdog |
| Maintenance | actively maintained — 4 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 218,839/month — #9,334 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: manim-0.21.0-py3-none-any.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
ManimPangoManimPango is a C binding for Pango using…
permissive · top 15,000 on PyPI
salabimSalabim is a Python library for discrete event…
permissive · top 15,000 on PyPI
asciimaticsAsciimatics provides cross-platform terminal UI…
permissive · top 15,000 on PyPI
sphinxcontrib-jsmathA Sphinx extension that renders mathematical…
permissive · top 1,000 on PyPI
vtkVTK is a 3D graphics, image processing, and…
permissive · top 5,000 on PyPI
pytweeningPyTweening provides a collection of easing…
permissive · top 5,000 on PyPI
math-verifyEvaluates mathematical expressions from LLM…
permissive · top 5,000 on PyPI
sphinxcontrib-videoA Sphinx extension that embeds HTML5 videos…
permissive · top 15,000 on PyPI
pyquaternionProvides quaternion representation,…
permissive · top 5,000 on PyPI
mkdocs-videoA MkDocs plugin that embeds videos in…
permissive · top 15,000 on PyPI