Every frame is drawn live by plain JavaScript on a <canvas> — no video file, no images. Space = play/pause, ←/→ = step a frame. Sound is synthesized separately by render.py when you export the MP4.
render.py