OmniTutor
▸ drama modals · per-subject engagement during cold start
When latency is unavoidable, we engage through it. The owl appears, says something subject-aware, and a per-domain animation sets context — while Haiku is already drafting the first beat behind the scenes. Five drama styles, one per subject family. Never blank. Never spinner.
▸ The axiom
No click should ever produce a blank screen or a spinner. Every moment of latency is filled with subject-aware story, owl voice, and visual context. The student is being taught from second zero.
0 spinners shown ≤ 1.5s to first visual ≤ 3s to tutor speaking 0 blank screens

The latency budget

What happens in the 3 seconds between click and the first beat rendering. The drama modal is not a polish item; it's load-bearing.

T+0 Click registered · drama modal opens instantly · owl appears in the corner · subject animation starts · Haiku call fired in parallel.
T+0.4s Owl speaks · subject-aware copy types into the speech bubble. Student is already engaged with content (the equation cascade · the curve · the parchment).
T+1.5s Haiku response back · plan + Beat 1 stub. Owl transitions: "and to start, look here…" Sonnet/Opus stream begins for beats 2–7.
T+3s Beat 1 renders · drama modal dissolves into the lesson. Tutor's TTS begins narrating with mouth lip-sync. Student feels: "we already started."
T+8–15s Beats 2–7 stream in behind the scenes while student is on Beat 1. By the time they're ready to advance, the next beat is already there. No waiting between beats, ever.