3b1b

manim: Create Programmatic Math Animations

Manim is a Python animation engine for building precise, code-driven scenes for explanatory math videos. It suits creators who want fine-grained control over visual storytelling and are comfortable managing its rendering and system dependencies.

Stars
94.5k
Forks
7.8k
Stars, last 10 days
+517

Our take

Health score

57/100

How it is scored
Activity
53
Community
64
Issues
37
Pull requests
72

+517 stars in the last 10 days

  • More contributors than 77% of the projects we track
  • Slower to close issues than 94% of the projects we track

Overview

Manim is a Python engine for creating precise animations through code, designed for explanatory math videos. Rather than assembling visuals by hand, creators define scenes and animations programmatically, making it possible to coordinate mathematical objects, text, and motion.

This is the original 3Blue1Brown-oriented version, also known as ManimGL. It is distinct from the Manim Community edition: choose this repository when its approach and compatibility with 3Blue1Brown video code fit your project.

Key Features

  • Build animation scenes and objects through Python code.
  • Preview scenes in a playback window and render them to files.
  • Control playback and output with command-line flags, including skipping to an animation or saving a final frame.
  • Configure output locations, media paths, style, and video quality with custom_config.yml.
  • Use LaTeX for mathematical text rendering when desired.
  • Explore example scenes and documentation linked from the repository README.

Use Cases

  • Math educators can illustrate concepts with custom animated diagrams and formulas.
  • Video creators can build repeatable, precise visuals for explanatory math content.
  • Python developers can generate animations directly from code when manual editing is too limiting.
  • Creators adapting existing 3Blue1Brown video code can use this version, while checking compatibility with the current release.

Getting Started

The package for this repository is manimgl, not manim:

pip install manimgl
manimgl example_scenes.py OpeningManimExample

See the README for platform-specific setup and usage details.

Alternatives

  • 3b1b/videos: This repository contains specific 3Blue1Brown video code built primarily with Manim, rather than a general-purpose animation engine.
  • ManimML: ManimML offers reusable components for machine-learning visuals, while Manim is the general-purpose engine for creating custom animations.
ProjectLanguageLicenseStarsStatus
manimPythonMIT94.5kNot checked yet
videosPythonOther11.3kActive
ManimMLPythonMIT3.5kInactive

Considerations

  • ManimGL and Manim Community are separate projects with different installation instructions and package names. Do not mix their setup guides.
  • Requires Python 3.10 or higher, FFmpeg, and OpenGL. LaTeX is optional, and Linux also requires Pango and its development headers.
  • This is a code-first animation tool, so it is best suited to users comfortable writing Python rather than seeking a point-and-click editor.
  • The README notes that code from older videos may not work with the latest version. Documentation is described as in progress.

Found this useful?

Share it with someone who would like manim.

Comparisons