Skip to content

Offer Camera on generated pictures, and set the project's default move - #15

Merged
davior merged 1 commit into
mainfrom
claude/kind-dijkstra-ree5fp
Oct 23, 2026
Merged

davior merged 1 commit into
mainfrom
claude/kind-dijkstra-ree5fp

Conversation

@davior

@davior davior commented Oct 23, 2026

Copy link
Copy Markdown
Owner

Why

Some scenes that show a picture had no Ken Burns move. There were two causes:

  1. No Camera control on generated pictures. SceneSettings used its own pictureOf lookup to decide whether a scene's picture is a still. That lookup recognised gam and search refs but not generate, so a generated image never got the Camera dropdown. The thumbnail strip already uses footageOf, which does handle generate.
  2. "Project default" meant no move. A scene left on Project default follows style.motion, which defaults to effect: "none", and nothing in the editor could set it.

What

  • SceneSettings now resolves its picture with footageOf (spec/clip.ts), so generated, searched and library pictures are all treated the same.
  • New ProjectDefaults card at the top of the Scenes tab, labelled "For every scene". It has a Camera dropdown with every preset plus "Alternate zooms and pans" (no path, which the spec refuses project-wide) and an optional amount (0.02–0.5, placeholder 0.12).
  • Setting the default back to Still with no amount removes style.motion instead of writing the default into the spec.
  • Each scene's default option now says which move it follows, e.g. "Project default (Zoom in)".
  • New helpers in spec/scene.ts: PROJECT_MOTIONS, motionLabel, setProjectMotion.

No backend change: the renderer already applies style.motion to every still, generated or not.

Tests

  • SceneSettings.test.tsx: a generated picture gets the Camera control, and its option names the project default.
  • ProjectDefaults.test.tsx: sets, adjusts and clears style.motion, and does not offer a path.
  • npm test (158 passed), npm run build, npm run lint and Prettier are clean.

Generated by Claude Code

The scene card worked out whether its picture was a still with its own
lookup, which knew GAM and search refs but not generated ones, so a
generated picture never got a Camera control. It now uses footageOf, as
the thumbnail already did.

A scene's "Project default" camera meant style.motion, which defaults to
no move and which nothing in the editor could set. The Scenes tab now
has a "For every scene" Camera (any preset, or alternate) with its
amount, and each scene's default option names the move it follows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014PPyHwCtvqQbpW2Hvrb63Z
@davior
davior marked this pull request as ready for review October 23, 2026 10:26
@davior
davior merged commit 5aaeaff into main Oct 23, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants