Clips into a longer videomotion comic
A scene becomes panels. Panels become a video. Inspired by the way printed comics were animated into motion comics: each panel is held, the camera slowly pushes in or pulls back (Ken Burns), then crossfades into the next. The renderer is a canvas in your browser; the recording is real WebM via the MediaRecorder API — no server-side video encoder, no cloud.
How the motion-comic pipeline works
1. Panels. The server breaks one scene prompt into N sequential panel prompts (using the local Qwen3 model if Ollama is up) and renders a still for each.
2. Ken Burns. For each panel the camera (a transformed canvas matrix) slowly zooms from one framing to another, with a small pan. Different panels get different zoom directions so the cut never feels repetitive.
3. Crossfade. Between panels the outgoing frame draws on top of the incoming one with descending alpha — typical motion-comic 300-500ms.
4. Record. The browser MediaRecorder consumes canvas.captureStream(30) and writes a real WebM (VP9 / VP8). At the end the blob is uploaded to /api/creation/video/upload and shows up in your Museum.
5. Sound. Optional — toggle voiceover and the panel prompts are read aloud via the browser SpeechSynthesis API, captured into the recorder via Web Audio routing (kept simple: speech is emitted live; for offline audio mix start a local TTS engine if you have one).