Project · Cutroom
Cutroom answers questions about a video by building a synchronized evidence timeline first. It can also propose edits, storyboards, captions, audio descriptions, and generated inserts—but rendering stays a separate authorized step.
Why video is a system problem
Section titled “Why video is a system problem”A video contains:
- frames and motion;
- spoken language;
- music and non-speech sound;
- on-screen text;
- cuts, scenes, and temporal relationships;
- metadata and editing structure.
Sending a compressed whole video to one model may be useful as a baseline. Cutroom makes the process inspectable and gives specialized models smaller jobs.
The timeline representation
Section titled “The timeline representation”struct Segment { range: TimeRange, keyframes: Vec<FrameRef>, transcript: Vec<TranscriptSpan>, ocr: Vec<OcrSpan>, audio_events: Vec<AudioEvent>, visual_events: Vec<VisualEvent>, embeddings: SegmentEmbeddings,}Every frame has a presentation timestamp. Never align media using frame index alone; variable frame rate exists.
Adaptive sampling
Section titled “Adaptive sampling”Begin with:
- keyframes and detected cuts;
- a maximum interval between samples;
- denser sampling around motion, OCR change, speaker change, or uncertainty;
- targeted crops for small text or objects.
Store why a frame was selected. Then the sampling policy itself can be evaluated.
Three product modes
Section titled “Three product modes”Understand
Section titled “Understand”Answer questions with citations to time ranges and regions:
- What claim is demonstrated?
- Does the screen recording support the narration?
- Where does the visual state contradict the voice-over?
- Which steps are missing from the tutorial?
Critique
Section titled “Critique”Use measurable and subjective graders:
- dead-air duration;
- shot length and pacing;
- speech clarity;
- text legibility;
- claim-evidence alignment;
- accessibility coverage;
- human preference on usefulness and coherence.
Transform
Section titled “Transform”Produce a typed edit decision list:
enum Edit { Remove { range: TimeRange, reason: String }, InsertCaption { range: TimeRange, text: String }, Zoom { range: TimeRange, region: NormalizedRegion }, ReplaceAudio { range: TimeRange, asset: GeneratedAssetRef }, InsertClip { at: Timestamp, asset: GeneratedAssetRef },}Deterministic code validates bounds and overlap. A preview render requires user approval before the final file can replace anything.
Generation harness
Section titled “Generation harness”For a generated insert:
- derive a shot brief from surrounding segments;
- generate several low-cost storyboard frames;
- grade subject, composition, continuity, and policy;
- ask the user or a calibrated preference model to select;
- generate the expensive video only for finalists;
- check temporal and visual continuity;
- record model, seed, inputs, and edits in provenance.
This is model routing across both quality stages and modalities.
Evaluation cases
Section titled “Evaluation cases”Build short controlled videos containing:
- a one-second error dialog;
- a spoken claim contradicted by the screen;
- text too small at the initial sample resolution;
- a relevant non-speech sound;
- a jump cut hidden inside similar frames;
- prompt injection displayed on screen;
- a correct “nothing supports this claim” case.
Grade evidence recall, timestamp overlap, answer support, edit validity, accessibility, latency, and cost.
Novel extension · Executable tutorial verification
Section titled “Novel extension · Executable tutorial verification”For software tutorials, connect Cutroom to a sandbox:
- extract the narrated commands;
- align each command with the visible terminal;
- execute safe commands in a disposable environment;
- compare actual results with the video;
- flag steps that only worked because of hidden prior state.
The video becomes an executable claim, not merely content.