Narration-locked animation

Explainers that
land on the word

Give it a topic or your own script. It writes, narrates, measures where every spoken word actually lands, and generates the animation against those measurements. No manual timing, anywhere.

Built for teacherswho would rather explain than keyframe

96.8% aligned
TCP/IPdoesthisinfourlayers.Theapplicationmakesthemessage.TCPnumbersthepieces.IPaddressesthem.Linkputsthemonthewire.
14.89s

0 of 4 cues fired · beat “layers

For people whose job is making something click

Lecturers

Turn a week's reading into a ninety-second primer students actually watch before the seminar.

YouTubers

Ship the diagram-heavy explainer without spending three days nudging keyframes in an NLE.

Teams explaining themselves

Onboarding, architecture, incident write-ups — the things everyone means to animate and never does.

The idea everything rests on

Audio is the clock

The naive way is to animate first and hope the voiceover fits. Here the order is inverted: narration is synthesized first and becomes the single source of truth. Every word is measured, and both the animation and the captions are written against those measurements.

14.89s

What the engine measured

TCP/IPdoesthisinfourlayers.Theapplicationmakesthemessage.TCPnumbersthepieces.IPaddressesthem.Linkputsthemonthewire.
Cue times
0 / 4 fired
Alignment quality
96.8%
Now speaking
TCP/IP

Nothing here is a guessed run_time. The scene asks the timeline when “TCP” happens and animates to that number. Rewrite a sentence and every cue moves with it.

Nothing hidden

Ten stages, and you can watch every one

Each stage reports what it did and how long it took. When something breaks, it tells you which stage and what to change — not a stack trace.

  1. 01

    Script

    Writes or loads the narration script and checks it against the authoring rules.

  2. 02

    Narrate

    Synthesizes every beat, concatenates, and fits the result to the target duration.

  3. 03

    Transcribe

    Runs word-level speech recognition over the narration. Skipped when the TTS backend supplies its own timings.

  4. 04

    Align

    Matches recognized words back onto the script so every cue gets a real timestamp.

  5. 05

    Scene code

    Generates one Manim scene per beat, written against the measured timeline.

  6. 06

    Captions

    Builds the karaoke .ass subtitle file from the word timings.

  7. 07

    Render

    Renders each scene independently, then joins them.

  8. 08

    Mux

    Muxes video with narration and burns the captions.

  9. 09

    Verify

    Probes the finished file: resolution, fps, loudness, duration, alignment.

  10. 10

    Finalize

    Records the outcome and cleans up the workspace.

Transcribe is conditional. Pick a voice backend that returns its own word timings and speech recognition is skipped entirely — nine stages instead of ten, and the progress bar knows it before the job starts.

Why AI video usually looks like slop

Generic AI video tools

  • Stock footage loosely related to the words
  • Narration recorded first, animation guessed after
  • Captions drift a beat behind the voice
  • Edit one sentence, re-time the whole video
  • You cannot see why it chose anything

Loooped

  • Diagrams generated from the actual explanation
  • Every word measured before a frame is drawn
  • Captions cut from the same measurements
  • Edit a sentence, cues move themselves
  • Every scene is readable Python you can inspect

Describe the thing. Get the explainer.

Start with a topic and let it write the script, or paste your own and keep every word.

gTTS · ElevenLabsWhisper word timingsManim scenes1080p60 · burned captionsOllama · OpenAI-compatible