explaingit

3b1b/manim

86,931PythonAudience · developerComplexity · 3/5MaintainedLicenseSetup · moderate

TLDR

Python animation engine for creating math and explanatory videos programmatically. Write code to describe animations, and Manim renders them as video files.

Mindmap

mindmap
  root((Manim))
    What it does
      Programmatic animations
      Math visualizations
      Video rendering
    How to use
      Write Python scenes
      Run manimgl command
      Configure with YAML
    Use cases
      Tutorial videos
      Lecture content
      Science explainers
    Tech stack
      Python 3.7+
      FFmpeg
      OpenGL
      LaTeX optional
    Audience
      Educators
      Content creators
      Math communicators

Things people build with this

USE CASE 1

Create animated math tutorials and lecture videos by writing Python code instead of manually drawing frames.

USE CASE 2

Build explanatory science or engineering videos where objects transform and move according to mathematical rules.

USE CASE 3

Produce reproducible educational content where animations can be tweaked and re-rendered by changing code parameters.

USE CASE 4

Generate visual proofs and conceptual explainers for blogs, courses, or YouTube channels.

Tech stack

PythonFFmpegOpenGLLaTeX

Getting it running

Difficulty · moderate Time to first run · 30min

Requires FFmpeg, LaTeX, and Python dependencies; initial render can be slow.

MIT License, use freely for any purpose, including commercial, as long as you include the original copyright notice.

In plain English

Manim is an animation engine for creating precise, programmatic animations, originally designed for explanatory math videos. The author of the YouTube channel 3Blue1Brown built it to animate the mathematical illustrations in those videos. Instead of drawing each frame by hand or scrubbing a timeline in a video editor, you describe the animation in Python code, for example, "draw this circle, then transform it into a square, then label it", and Manim renders the result as a video file or shows it in a window. The way it works is that you write Python scripts that define scenes and the animations within each scene, then run a command like manimgl on the script. Manim plays the scene in a window or writes it out to a file. Command-line flags let you write the scene to a file, jump to the final frame, skip ahead to a specific animation, or run fullscreen. Configuration lives in a custom_config.yml file where you set output paths, asset locations, and quality defaults. You would use Manim when you want to produce mathematical or explanatory animations programmatically, for tutorials, lecture videos, conceptual explainers, or science communication, and you want each animation to be reproducible from code rather than recreated by hand. The README points out there are two versions: this repository (called ManimGL, installed as the manimgl pip package) is the original one used by 3Blue1Brown, and a separate Manim Community Edition is a fork started in 2020 with a focus on stability and testing. Manim runs on Python 3.7 or higher and requires FFmpeg, OpenGL, and optionally LaTeX. Installation paths are described for pip, Windows, macOS, and Anaconda.

Copy-paste prompts

Prompt 1
Show me how to create a simple scene in Manim that draws a circle, transforms it into a square, and adds a label.
Prompt 2
How do I install Manim and set up a basic Python script to render an animation to an MP4 file?
Prompt 3
Write a Manim scene that animates a function graph and shows how it changes when I modify a parameter.
Prompt 4
What command-line flags can I use with manimgl to preview only the final frame or skip to a specific animation?
Prompt 5
How do I configure Manim's output quality, file paths, and LaTeX rendering in the custom_config.yml file?
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.