manimgx README

The project's README from github.com/academa-labs/manimgx. As one markdown file: README.md.

ManimGX

Blazingly fast 3D animation engine for agents, compatible with Manim CE's API.
Powered by Rust and wgpu. Install with a prompt or pip. Run in the browser.

Documentation · Quickstart · Examples · API Reference

Test coverage PyPI version npm version PyPI total downloads npm monthly downloads

The quadratic formula: completing a square by moving colored rectangles and equation terms Fourier series: a chain of rotating arrows draws the outline of π A matrix moves the plane: a grid, basis arrows and a unit square transform together
A tangent slides along a curve as its slope traces the derivative Complex functions bend a grid into parabolas, circles and rays The Lorenz attractor: nearby trajectories separate as they trace a butterfly in three dimensions
Three spinning tops precess and nod as their axes trace curves on glass spheres The Hopf fibration: colorful linked circles form nested tori as beads travel along them A rainbow helicoid bends into a catenoid while preserving its intrinsic curvature

36.2 seconds of video, rendered in 3.08 seconds. Across five scenes at 1080p60 on an Apple M4 Pro, ManimGX is 90.6× faster than ManimCE, 11.5× faster than ManimGL, and 18.7× faster than Blender Workbench, from launch to finished MP4. How it was measured: the scenes, the settings and every run.

Total render times: ManimGX 3.08 s, ManimGL 35.28 s, Blender Workbench 57.61 s, ManimCE 278.83 s, Blender EEVEE 601.40 s

All engines use the fastest encoding preset available. Lower is better.

Compare the same scene. Linked rings at 2.5 seconds, rendered by each engine.

ManimGX ManimCE ManimGL Blender Workbench Blender EEVEE
Eight linked rings rendered by ManimGX at 2.5 seconds Eight linked rings rendered by ManimCE at 2.5 seconds Eight linked rings rendered by ManimGL at 2.5 seconds Eight linked rings rendered by Blender Workbench at 2.5 seconds Eight linked rings rendered by Blender EEVEE at 2.5 seconds

Get started

With a prompt. Paste into Claude Code, Codex, or Cursor. Your agent handles setup:

Follow https://manimgx.academa.ai/llms.txt.
Install ManimGX, make a 3D animation of the solar system, and open it.

With pip. Install on macOS, Linux or Windows with Python 3.13+:

pip install manimgx

Fonts, typesetting and video encoding are included. For editor setup and a guided first animation, follow the Quickstart.

From Python to MP4

Save this as scene.py:

import manimgx as m


class Hello3D(m.ThreeDScene):
    def construct(self) -> None:
        self.set_camera_orientation(phi=65 * m.DEGREES, theta=-45 * m.DEGREES)
        self.begin_ambient_camera_rotation(rate=0.5)
        cube = m.Cube(side_length=3, fill_opacity=0.3, stroke_width=2)
        self.play(m.Create(cube), run_time=2)
        self.wait(4)

Render it:

manimgx render scene.py

You get Hello3D.mp4, a 1080p60 video:

A blue cube is drawn as the camera circles it

Why ManimGX?

An API for 3D video in the age of agents. Your agent writes Python using Manim CE's API. ManimGX's Rust + wgpu engine renders the MP4, blazingly fast.

Documentation

manimgx.academa.ai has the guides, rendered examples with source code, and API reference:

For agents, llms.txt provides setup instructions and links to the documentation as Markdown.

On the shoulders of giants

Grant Sanderson created Manim. ManimGX targets the API of Manim Community Edition, the widely used community-maintained fork.

The Rust renderer uses wgpu for native GPU rendering and WebGPU in the browser. Its 3D lighting is adapted from Google's Filament: physically based materials, image-based lighting, ambient occlusion, bloom and AgX tone mapping. Typst typesets text and math, with mitex translating LaTeX input to Typst. x264 encodes native video exports as H.264; FFmpeg decodes imported audio, using libopus for Opus.

Pyodide runs Python scenes in a browser worker. Linux wheels bundle Mesa's lavapipe for Vulkan rendering on the CPU when no suitable GPU is available.

Community

ManimGX is an open-source project by Academa, created by Abdullah Geduk and Sina Atalay. We welcome contributions from the community.

Questions, bug reports and feature requests start with an issue. To contribute, read Contributing and the Developer Guide.

Changelog · Citing ManimGX

Everyone participating follows the Code of Conduct. Report vulnerabilities privately through the security policy.

License

ManimGX's own code is MIT-licensed. Native wheels include x264 and are GPL-3.0-or-later as a whole.

Bundled components retain their licenses: see the third-party notices, Linux renderer notices, and the Noto and Noto CJK font licenses.

This software uses code of FFmpeg licensed under LGPL-2.1-or-later. Complete source, including FFmpeg, is in manimgx-X.Y.Z-source.tar.xz on each GitHub release.

manimgx (academa-labs/manimgx)

3d
Searching Database…

1.8K ·GitHub
What is this?ManimGX is an animation engine built for coding agents: it renders Manim's Python API into math and 3D videos using a Rust + wgpu GPU core, aiming to be dramatically faster than existing Manim engines.
Is this a Python library or a standalone renderer?It's a Python library whose API matches Manim Community Edition — you write Python scenes and a Rust-based engine renders them to MP4; there's also an npm package that runs the same engine in the browser via WebGPU.
How do I get it running?Install with 'pip install manimgx' on Python 3.13+ (macOS, Linux or Windows), save a scene.py file, and render it to produce a 1080p60 MP4. You can also paste a setup prompt into Claude Code, Codex, or Cursor and let the agent configure everything.
Do I need LaTeX or other tools installed first?No — fonts, Typst-based typesetting, and video encoding all ship bundled with the package, so you don't need a separate LaTeX installation.
Will my existing Manim CE scenes just work?ManimGX targets the same API as Manim Community Edition, but behavior can differ in places, so existing scenes may need adjustment — there's a dedicated migration guide for this.
Can it run in a browser instead of locally?Yes — the npm package 'manimgx' runs Python scenes in a Web Worker via Pyodide and renders with WebGPU, letting you embed a scene with no render server at all.
Is this really MIT licensed?The ManimGX source code itself is MIT, but because native wheels bundle x264, the compiled wheel as a whole is GPL-3.0-or-later; it also incorporates LGPL-licensed FFmpeg code.
Does rendering require a dedicated GPU?It uses your GPU natively via wgpu (and WebGPU in the browser), but on Linux it automatically falls back to CPU-based Vulkan rendering through Mesa's lavapipe if no suitable GPU is present.
How much faster is ManimGX than ManimCE or ManimGL?In a benchmark of five scenes at 1080p60 on an Apple M4 Pro, ManimGX was 90.6x faster than ManimCE, 11.5x faster than ManimGL, and 18.7x faster than Blender Workbench, measured launch-to-finished-MP4.
What does manimgx inspect do?It's an agent-feedback command that produces storyboards and 2D layout checks at play endings or chosen times, so an agent can verify a scene without watching the full render.
Can animations include math and synced speech?Yes — text and equations can be written in LaTeX or Typst with no LaTeX install required, and self.say() lets you time animations to match spoken words.
Size
53.7 MB
Stars
1.8K
Age
13d
Commits · 90 Days