Contents

ADR-0006: Episode IR = performance + coverage, with relative timing

  • Status: Accepted (2026-09-29)
  • Date: 2026-09-29

Context

The director turns a screenplay into scenes, shots, blocking, camera, transitions, timing and emotion per line. Two facts shape the format:

  • Timing is not knowable up front. A line lasts as long as its voice take, and takes change: TTS provider, delivery notes, a recorded replacement.
  • Re-direction must be cheap and local. "Make shot 12 a close-up and slow that line down" should change one shot and one line, with everything else following.

Decision

Each scene has two independent lists:

  • cues (performance). One continuous, ordered performance: lines, moves, looks, gestures, expressions, postures, props, SFX, FX, music and beats. Each cue's at is relative:
    • omitted: after the most recent cue not placed with another cue, plus the line gap;
    • after another cue (a negative gap overlaps it);
    • with another cue, with an offset, optionally anchored to a word of a line;
    • atSec for hand-tuning.
  • shots (coverage). Ordered cuts over the performance. Each cut point is anchored to a cue edge with an offset, and optionally snapped to silence. The camera is either a named set setup or a framing intent (size, subjects, height, over-the-shoulder, lens) that the framing solver resolves on the legal side of the axis.

The compiler resolves both into a frame-exact Timeline once takes exist. Only the compiler writes Timelines, and only the engine reads them.

Alternatives considered

  • Shot-first (each shot owns its lines and actions). Simple to write, but continuity breaks across cuts, re-cutting means re-performing, and J- and L-cuts need special cases.
  • Absolute timestamps in the IR. Every re-take or pace change would ripple through hand-edited numbers. They survive only as an escape hatch (atSec).
  • Adopting a published plan format wholesale (e.g. the PACE typed plan, 2026). Useful prior art for validation metrics, but it is 3D-scene-first and leaves transitions unimplemented. We borrow ideas, not the format.

Consequences

  • The timeline editor (M7) edits the IR, never the Timeline. Chat edits become IR diffs.
  • Captions, OTIO export, cut-on-silence and loudness ducking all fall out of one resolved timeline.
  • Validators can reason about coverage: which shots show the speaker, where the axis is established, and which shots in a row share a subject.