Manim, rewritten in Rust and wgpu, now 90x faster

Manim, rewritten in Rust and wgpu, now 90x faster

TL;DR: We are open sourcing ManimGX, a blazingly fast Rust + wgpu animation engine with a Manim compatible Python API. Install with pip install manimgx.

Hi everyone, after ~7-8 months of work, we are finally launching ManimGX, our from scratch Manim reimplementation in Rust + wgpu.

The GitHub repository: https://github.com/academa-labs/manimgx

For anyone unfamiliar with Manim, it's the Python animation tool originally created by Grant Sanderson for his 3Blue1Brown videos. ManimGX is a from scratch implementation targeting ManimCE's API, with a Rust renderer built on wgpu. The typography is handled with Typst and video encoding via an in-process x264 implementation, without needing FFmpeg.

The motivation is simple: waiting for renders makes polishing an animation a slow process. We wanted to make that loop faster while keeping the familiar ManimCE Python API.

You can get started with:

pip install manimgx

or simply ask your AI agent:

Follow https://manimgx.academa.ai/llms.txt and install ManimGX.

You only need Python 3.13+. All of the fonts, typesetting, and video encoding are included. So there is no separate LaTeX or FFmpeg installation required.

A few other things ManimGX supports:

  • It runs in the browser through Pyodide and WebGPU. There is an npm package if you want to embed animations in your website without a render server.
  • manimgx preview gives you a live preview whenever you save your scene.
  • The API is fully statically typed, including keyword arguments and .animate chains.
  • There is a built-in voiceover sync.
  • manimgx inspect creates storyboards, timelines, and layout feedback for coding agents so they can iterate on what they made instead of only reading the code and manually inspecting screenshots. This aims to speed up the writing and polishing loop.

Most ManimCE code runs after changing the import from manim to manimgx, with differences documented in the migration guide. The documentation includes a gallery of examples with their Python source: https://manimgx.academa.ai

Credit to Grant Sanderson, the Manim Community contributors, whose work this builds on. Happy to answer questions in the comments, and we'd love to hear how it works with your scenes.

manimgx.academa.ai
u/VioLeRR — 3 days ago
▲ 29 r/madeinrust+1 crossposts

Manim, rewritten in Rust + wgpu, now 90x faster

TL;DR: We are open sourcing ManimGX, a blazingly fast Rust + wgpu animation engine with a Manim compatible API. Install with pip install manimgx.

Hi everyone, after ~7-8 months of work, we are finally launching ManimGX, our from scratch Manim reimplementation in Rust + wgpu.

The GitHub repository: https://github.com/academa-labs/manimgx

For anyone unfamiliar with Manim, it's the Python animation tool originally created by Grant Sanderson for his 3Blue1Brown videos. ManimGX is a from scratch implementation targeting ManimCE's API, with a Rust renderer built on wgpu. You can install it with pip install manimgx.

The motivation is the same as before: waiting for renders makes polishing an animation a slow process. We wanted to make that loop faster while keeping the familiar Python API.

A few details about the implementation that might interest people here:

  • Rust + wgpu for rendering, with PyO3 + maturin for Python bindings and packaging.
  • The same renderer runs in the browser through WebAssembly and WebGPU, with Python running through Pyodide.
  • Typst for text and math, with mitex translating LaTeX input.
  • Geometry passes from Python to Rust as packed arrays and is reused across frames.
  • Native video export uses x264 directly, without an FFmpeg subprocess.

It only requires Python 3.13+. Fonts, typesetting, and video encoding are included, so there is no separate FFmpeg or LaTeX installation either.

Most ManimCE code runs after changing the import from manim to manimgx, with differences documented in the migration guide. The documentation includes a gallery of examples with their Python source: https://manimgx.academa.ai

Credit to Grant Sanderson, the Manim Community contributors, whose work this builds on. Happy to answer questions about the implementation. We'd especially appreciate feedback from people working with Rust graphics or WebAssembly, and from anyone trying it with their existing Manim scenes.

u/VioLeRR — 5 days ago
▲ 41 r/rust

Manim, rewritten in Rust + WGPU, runs on browser with live preview, free to use.

Hi everyone, I am a PhD student, working on turbulence modeling, and deal with Fortran in my everyday life... Besides the studies, we are also working on an edTech startup with my friend, who is also a phd student. We both have experience in teaching, and are interested in how to make teaching better.

For that, we know that animations are the golden tools of education, and manim is the go-to tool for it, especially for math. If you're not familiar, it is the tool used by 3Blue1Brown in his animations. It is powerful, but it is totally CPU-bound (Cairo plus subprocess ffmpeg), written in Python, and a bit slow. Polishing a video is a known pain point. ManimGL is an alternative, but it has its own problems.

So, we rewrote Manim from scratch in Rust on top of wgpu, with a full GPU pipeline. We call it ManimX. It is now fast, and safe..

  • We kept the ManimCE Python API 1:1 for scene-authoring, bridged to the Rust core via PyO3 + Maturin.
  • The whole thing compiles to WASM and runs in the browser via WebGPU.
  • Wgpu for the pipeline, Lyon for tessellation, and Typst for LaTeX rendering.

We optimized it and matched the capabilities of ManimCE over the last few months, so it's not built in one weekend. But it was definitely worth it, and it is pretty fast so we can actually enable live preview so that iterating over smallest changes won't trigger a whole render from scratch.

The full Manim editor on the website, including video downloads, in any resolution is free.

On top of that, we also have an optional AI assistant that writes the Manim code for you. It can render the video and inspect the result in the background, so it iterates on what it actually sees instead of generating code blindly. Because of this, it takes a little longer on each scene, but the output is solid. The AI assistant is a paid feature, and that payment only covers its cost for us.

For the repo, it is currently private as we are aiming to use the core engine for many other ideas in the following months and years, and we'll be investing on this. But I'd be more than happy to discuss any details on the internals.

Happy to answer all questions in the comments, and we'd appreciate any feedback.

studio.academa.ai
u/VioLeRR — 4 months ago

A free, browser-based tool for making 3Blue1Brown-style animations for your students

TL;DR: studio.academa.ai, a browser editor for making 3Blue1Brown-style math animations, with live preview. Free, no signup.

Hi everyone, I am a PhD student and previously a teaching assistant in my university, who also works as a private tutor.

You've probably seen the animated explainers from 3Blue1Brown and similar channels. I used to create some for my students as well. The tool for it is Manim, which is powerful but a hassle to install, and not as fast to work with, especially testing quick changes in your animations.

So we rebuilt the tool from scratch and it is pretty fast. We call it manimx, and it runs entirely on browser, no installs required. You edit the animation and the video preview updates as you go. It's made for quickly building a clear visual for whatever concept your students are struggling with, and refining yourself until you're satisfied.

There's also an optional AI assistant if you'd like to utilize to quickly prepare your videos, which can also watch the videos, and iterate with you. That's the only paid part, since it's costly to run, but making your own animations is free.

Happy to answer anything, and if there's a concept you'd love to see animated, drop it in the comments and I'll show you what it looks like.

u/VioLeRR — 4 months ago