recursive-maths-animator
Installation
SKILL.md
Recursive maths animator (Manim + voiceover + verification)
This skill ships helper code under references/ (palette, optional Gemini TTS adapter, manim_versioning.ManimProject) and utilities under scripts/. Agents should point users at those paths when generating projects.
Operating principles (do these every time)
- Design theme first — Before writing Manim code, ask the user for mood, light/dark, palette (hex or brand refs), typography, motion feel, and any brand assets. Record answers in
DESIGN_THEME.md(created byManimProject.init()). If the user defers, propose a default theme and get explicit “OK”. - Pinned dependencies — Every project keeps a root
requirements.txt(seeded oninit()from this skill’s template). When you add imports or optional stacks (e.g. Gemini), updaterequirements.txtand tell the user topip install -r requirements.txt. For reproducible CI, suggestpip freeze > requirements.lock.txtafter upgrades. - Assets live in
assets/— Put images, SVGs, and custom fonts underassets/images,assets/svgs,assets/fonts. Keepscenes/for Python only so diffs stay readable. - GIF before final MP4 — For stakeholder approval, produce a low-quality GIF (fast, easy to share in chat). Use
ManimProject.render_approval_gif("scene_1")orrender(..., output_format="gif", export_approval_copy=True). After sign-off, renderoutput_format="movie"(default) at the target quality. - Verify with vision, then iterate — After each substantive render, run the verification loop below: slice frames, review with the host model’s vision, write
VERIFICATION_FEEDBACK.md, fix Manim code, re-render. Prefer MP4 for final verification passes; GIF is acceptable for quick layout checks.
Requirements
- Python 3.9+
- manim —
pip install manim(versions pinned in projectrequirements.txt) - manim-voiceover with a TTS backend — e.g.
pip install "manim-voiceover[gtts]"(uses network for gTTS unless you switch engine) - ffmpeg and ffprobe — with
libx264andlibassif you burn subtitles (seescripts/run_pipeline.py); ffprobe is required forextract_verification_frames.py - git — for
ManimProjectversioning commands