Manim-powered algorithm visualizations for the no-magic project.
Every no-magic script gets an animated explainer — showing the algorithm's core mechanics in motion, not just in code.
no-magic-viz/
├── scenes/ ← Manim source files
│ ├── base.py ← Shared base class, color palette
│ ├── scene_microattention.py
│ ├── scene_microgpt.py
│ └── ...
├── previews/ ← GIF previews for README embedding (tracked)
├── renders/ ← Full MP4s (local only, not committed)
├── assets/ ← Branded video frames
├── scripts/
│ ├── render.sh ← Batch render script (bash)
│ └── render_all.py ← Batch render script (Python)
└── pyproject.toml
uv syncAll rendering happens locally before push. CI only runs lint and syntax checks.
# All scenes (MP4 + GIF)
bash scripts/render.sh
# Single scene
bash scripts/render.sh microattention
# GIF previews only (fast)
bash scripts/render.sh --preview-only
# Full MP4s only (1080p60)
bash scripts/render.sh --full-only
# Python alternative
uv run python scripts/render_all.py
uv run python scripts/render_all.py microgpt --preview-only- Create
scenes/scene_<algorithm>.py - Inherit from
NoMagicSceneinscenes/base.py - Set
title_textandsubtitle_textclass attributes - Implement the
animate()method - Render locally:
bash scripts/render.sh <algorithm> - Commit the GIF preview to
previews/
| Color | Hex | Usage |
|---|---|---|
| Background | #1a1a2e |
Dark navy (GitHub dark mode) |
| Primary | #e94560 |
Red/coral — highlights, emphasis |
| Blue | #0f3460 |
Deep blue — secondary elements |
| Green | #16c79a |
Active/flowing states |
| Text | #eaeaea |
Light gray labels |
| Grid | #2a2a4a |
Subtle guides and gridlines |
| Yellow | #f5c542 |
Tertiary accent |
| Orange | #e97d32 |
Tertiary accent |
| Purple | #9b59b6 |
Tertiary accent |
MIT