About manimgx
ManimGX is an agent skill for authoring and rendering Python animations from a user's explanation. It supports scene inspection before rendering and delivers the video alongside editable source code.
Key features
- 01Create Python animation scenes
- 02Inspect storyboard and timeline
- 03Check sampled 2D layout issues
- 04Render video at chosen dimensions and frame rate
- 05Deliver editable scene source
Use cases
- 01Turning an explanation into an animation
- 02Reviewing scene timing and layout
- 03Producing an editable educational video
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ academa-labs/ manimgx --skill manimgxAfter installing, type/manimgxin Claude Code to confirm it loaded.
Details
From the project READMEManimGX
Use ManimGX to turn the user's explanation into a scene, inspect its layout and timing, and deliver the rendered video with its editable Python source.
Use the project's existing Python environment. For a standalone installation,
uv tool install --python 3.14 manimgx provides the manimgx command. Python 3.13 or newer
is required. Text, mathematics, and video encoding are included in the package.
Import manimgx as m. Its authoring API follows Manim Community Edition; check ManimGX's
own reference for supported options and behavior.
The agent primer links the guides and examples as
Markdown. Read the relevant page when using an unfamiliar feature.
Author a scene
Put the animation in a Scene subclass's construct method. Time advances through
self.play(...) and self.wait(...); self.add(...) only adds objects. Compose placement
with VGroup, next_to, arrange, and to_edge so labels follow their subjects. Use Text
for prose and MathTex with raw strings for LaTeX mathematics.
For example, save this as scene.py:
import manimgx as m
class CircleArea(m.Scene):
def construct(self) -> None:
circle = m.Circle(radius=1, color=m.BLUE, fill_opacity=0.3)
formula = m.MathTex(r"A = \pi r^2").next_to(circle, m.RIGHT, buff=0.6)
m.VGroup(circle, formula).center()
self.play(m.Create(circle), m.Write(formula))
self.wait(1)
For changing values, animate a ValueTracker and derive dependent geometry from its
value. An updater should use elapsed time or current state, not the number of frames;
changing the export frame rate should preserve the motion. Use ThreeDScene for a 3D
camera.
Inspect and deliver
manimgx inspect scene.py CircleArea
manimgx render scene.py CircleArea -r 1280x720 --fps 30 -o draft.mp4
inspect writes a storyboard and reports the timeline and sampled 2D layout problems.
Look at the pictures and fix unintended overlap or clipping; use -t 0.5,end to inspect
particular moments. These are sampled checks, and 3D scenes receive storyboards without
2D layout checks. Review the draft's motion as well as its still frames.
Render the final video at the user's requested size and frame rate (-r WIDTHxHEIGHT
and --fps RATE). Without those options, export is 1920×1080 at 60 fps. Include the output
path and the scene source when delivering it.