Skip to content

Welcome

ManimGX

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

Test coverage Documentation built with Zensical PyPI version npm version PyPI total downloads npm monthly downloads

The Hopf fibration: the circles of the 3-sphere, linked in nested tori, with beads riding them A torus turned inside out by a quarter turn in four dimensions A kaleidoscope on the sphere: tiles turning over, wave after wave, between three mirrors
The Riemann surface of log z: an endless staircase Turing patterns growing on a torus A pile of cubes: a lozenge tiling of a hexagon, turned in three dimensions

10 seconds of 3D video, rendered in 0.85 seconds. On our 1080p60 benchmark, manimgx is 286× faster than Manim CE, 7.3× faster than ManimGL, and 22× faster than Blender Workbench, from launch to finished MP4.

Render times: manimgx 0.85 s, ManimGL 6.2 s, Blender Workbench 18 s, Blender EEVEE 3 min 59 s, Manim CE 4 min 03 s

Apple M4 Pro, each tool's default encoder settings. manimgx favors speed over file size. Scenes, settings and results.

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.

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.

  • Fully statically typed. Keyword arguments and .animate chains included.
  • 2D and 3D together. Surfaces, meshes and moving cameras alongside text, equations and plots.
  • Runs in the browser. npm install manimgx. Pyodide runs Python in a Web Worker; WebGPU renders the scene. Embed a scene with no render server.
  • Agent feedback. Storyboards and 2D layout checks.
  • Text and math. Write LaTeX or Typst. No LaTeX installation needed.
  • Speech in sync. Match animations to spoken words with self.say().

On the shoulders of giants

Grant Sanderson created Manim. The Manim Community developed the API that manimgx builds on.

The engine draws with wgpu, typesets text and math with Typst and mitex, encodes video with x264, and decodes audio with FFmpeg and libopus.

NumPy powers the geometry, PyO3 connects Python and Rust, and Pyodide runs Python in the browser. Noto supplies fonts, and Mesa's lavapipe lets Linux render without a GPU.

Learn more

Community

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

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.