manim
Animation engine for explanatory math videos.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.11 or later; system dependencies for graphics rendering (cairo, ffmpeg, latex) must be installed separately per OS-specific documentation.
- 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 · maintenance · safety
MIT (permissive) — Licensed under MIT with dual copyright (3blue1brown LLC and Manim Community Developers), a permissive license allowing commercial and private use with attribution.
last release 2026-08-10 (4 days) · last repo commit 2026-08-11 · 40,173 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 218,839 downloads/mo, #9,334 on PyPI
Alternatives
Verify before relying
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- 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.
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 on it.
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
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.
Requires Python 3.11 or later; system dependencies for graphics rendering (cairo, ffmpeg, latex) must be installed separately per OS-specific documentation.
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
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 packagesaudioop-ltsavbeautifulsoup4clickcloupdecoratorisosurfacesmanimpangomapbox-earcutmoderngl-windowmodernglnetworkxnumpypillowpycairopydubpygmentsrichscipyscreeninfoskia-pathopssrtsvgelementstqdmtyping-extensionswatchdog |
| 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 |
| Classifiers | Development Status :: 4 - BetaNatural Language :: EnglishProgramming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Multimedia :: GraphicsTopic :: Multimedia :: VideoTopic :: Scientific/Engineering |
Evidence: manim-0.21.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “math animation engine”
- manimManim is an animation engine that creates precise, programmatic…
- pyquaternionProvides quaternion representation, manipulation, and rotation…
- terminaltexteffectsRenders animated visual effects for text displayed in the terminal,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also ManimPango · salabim · asciimatics · sphinxcontrib-jsmath · vtk · pytweening · math-verify · sphinxcontrib-video · pyquaternion · mkdocs-video