Epic 2.5.1: basis for framing layer

This commit is contained in:
Dejvino
2026-08-06 10:29:32 +02:00
parent 189328587d
commit 19bfff8651
9 changed files with 346 additions and 3 deletions
+17
View File
@@ -168,6 +168,23 @@ This is deliberately last: it is the largest change, it interacts with resolutio
independence (§1 of PLAN.md) and with the feedback buffer, and the four items above will have
changed what it needs to do.
**Status after the first pass: shipped, deliberately simple.**
A shot now carries a size and a recentre, applied inside `sigCamera` in scene coordinates —
rendered close rather than magnified, which is what keeps it resolution-independent and free at
4K. `look/framing.js` owns the vocabulary: three shot sizes with measured headroom (a close-up
past ~2.2 is a blurry wide, a wide past ~0.55 is a speck), and a per-track style (`locked` /
`gentle` / `edited`) that decides how far sizes travel and how often a cut also changes the shot.
The arc driver plans one framing per cue, walking the cuts in order so the whole video gets a
consistent hand and a seek finds the same framing as playback. The gates hold it honest: cuts
actually change size, sizes stay in headroom, and two drivers over one look agree on every shot.
What this pass does not do, and the reason it is "simple": the framing is constant within a shot.
A zoom that moves during a shot is a separate device and would fight the drift LFO and the slow
axis, both of which already own continuous motion. Scenes built outside the shader contract (the
single 3D layer) are not framed yet. Both are the obvious next steps and neither is required for
a working project.
---
## 4. Validation