Manim Community Edition 0.19 + manim-slides 5.6. Mirror of the conventions
used in ..\..\mate\proiect\.
python -m venv .venv
.venv\Scripts\activate
pip install -e .
Install the Manim Sideview extension. Open any src/slides/s##_*.py and save:
the file renders to media/ and previews in the side panel.
Preferred (same workflow as mate/proiect):
python -m src.slides # HQ render + export ../web/static/generated/write-primitive-exploits-2026.html
python -m src.slides --preview # LQ render + export write-primitive-exploits-2026-dev.html
python -m src.slides 01 08 14 # render only specific keys
python -m src.slides --present # interactive presenter (manim-slides present)
python -m src.slides --force # force re-render unchanged scenes
python -m src.slides --no-export # render only, skip HTML
Alternative batch script (no incremental detection, no HTML export):
build.bat REM medium quality
build.bat hq REM high quality
build.bat hq concat REM HQ + ffmpeg concat into one MP4
build.bat present REM generate reveal.js HTML manually
The deck is wired to two hidden routes (not linked from any nav):
/slides- HQ bundle (built bypython -m src.slides)/slides-dev- LQ bundle (built bypython -m src.slides --preview)
Both serve web/static/generated/write-primitive-exploits-2026*.html (a single self-contained
reveal.js bundle produced by manim-slides convert --one-file). The route
returns a flash + redirect to / if the bundle has not been built yet.
Build flow:
cd manim
python -m src.slides --preview # iterate fast at /slides-dev
python -m src.slides # final HQ render at /slides
19 scenes, ~10:00 total:
- ACT 1 (1:00) - Hook: s01, s02, s03
- ACT 2 (1:30) - Memory vulns primer: s04, s05, s06
- ACT 3 (2:30) - Stack lab centerpiece: s07, s08, s09
- ACT 4 (2:30) - 2025 chain: s10, s11, s12, s13
- ACT 5 (2:00) - 2026 narrative + solutions: s14, s15, s16
- Closing (0:30) - References + Thanks: s17, s18, s19