SCENEGOD/scenegod
type-two 5baebb410a [m11-B] camera moves become keyframes, snapped to the beat
applyDirect handles op:'move': one group() = transform keys at t0 and t0+dur
from the op's from/to, fov param keys at BOTH times (the only thing a zoom
moves, and an unkeyed fov gets dragged by its neighbours), ease on the leading
key of each pair. Repeating a move over the same span REPLACES the window
rather than interleaving, and reports how many keys it displaced. No automatic
cut - a move usually continues a shot - but the toast discloses when no cut
selects the moved camera, and cut:true is honoured if asked.

Snap config moved onto the model so a model-level op lands on the beat exactly
like a mouse drag: with a grid and snap=bar, t0 AND t0+dur land on downbeats.
Double-clicking the Cameras row now cuts to the camera you are looking through.

Verified live on music-video: playhead off-grid at 4.2s -> keys at 3.2907 and
8.9146, both exact bar lines, fov keyed at both, cuts unchanged, mid-move pose
interpolating, one undo deep-equal. 5 suites green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-28 20:19:55 +10:00
..
web [m11-B] camera moves become keyframes, snapped to the beat 2026-07-28 20:19:55 +10:00
server.py [m9-C] beat detection + audio trim at mux 2026-07-26 00:13:40 +10:00