Skip to content

Add the One board film and make it the site teaser - #184

Draft
marcosqlbi wants to merge 1 commit into
mainfrom
feature/one-board-film
Draft

marcosqlbi wants to merge 1 commit into
mainfrom
feature/one-board-film

Conversation

@marcosqlbi

Copy link
Copy Markdown
Collaborator

Why

The landing page teaser was a 42-second hand edit of one board session. Film 2, "One board", replaces it: a 50-second continuous camera move across a single board on which seven captures sit as windows, with each caption written on the board below its window, ending on the whole board and the end card. It names no date and no Microsoft deadline, so the same file can stay on the site and in the Store listing after the campaign. Three 12-second portrait shorts are cut from it for Reels, TikTok, and Shorts.

The site change and the film are one change, because the new site files are renders of this composition.

What changed

  • tools/films/src/film2/: the board layout per shape (board.ts), the camera moves and capture timings for the film and the three shorts (cuts.ts), the seven captures (captures.ts), and the composition (Film2.tsx). The camera never zooms past 1, so no capture is shown larger than it was recorded; ink-diagram.mp4 (3840 × 2160) sits at half size.
  • Film 1's end card moves to components/EndCard.tsx and the eased progress helper to brand.ts, so both films share them. Film 1's end card renders as before.
  • scripts/render.mjs gains film2 <rendition>: each composition is rendered once at its own size, the music bed is mixed with ffmpeg at −20 dB mean, and site writes the two teaser files and the poster. scripts/stills.mjs film2 renders a still every 5 seconds. One npm script per rendition, plus render:film2-all.
  • site/teaser-av1.mp4, site/teaser-h264.mp4, site/teaser-poster.jpg: the new film, silent, with the end card fading to paper over the last 500 ms so the loop restarts on the white board. site/index.html: title and caption say fifty seconds, and the codecs= strings match the new files (av01.0.08M.08, avc1.640033).
  • docs/teaser/shot-script.md describes this film as the shipped cut, with its shot list and commands; the recording-setup section is unchanged. tools/films/README.md adds film 2's renditions and captures.

Sizes

File Size
site/teaser-av1.mp4 3.50 MB (was 3.48 MB)
site/teaser-h264.mp4 3.58 MB (was 2.84 MB)
site/teaser-poster.jpg 124 KB (was 167 KB)

The site encodes use CRF 46 (AV1) and CRF 31 with -preset veryslow (H.264) instead of 38 and 22, because the camera never stops and every frame differs from the last. At the old values the files were 6.0 MB and 11.0 MB. Text in the captures and the captions stays readable at the new values.

Verification

  • Stills every 5 seconds of each composition, and frame sheets of every encoded file: no placeholder, no empty edge of the board at a station, captions inside each shape's safe area, and the font check reports Segoe UI Variable Display in use.
  • ffprobe: the film renditions are 50.000 s (1500 frames), the shorts 12.000 s (360 frames), H.264 High yuv420p at 30 fps with AAC 128 kbps; the social files measure −20.0 dB mean.
  • The last frames of the site file fade to paper and frame 0 is the white board, so the loop is a clean cut.
  • The site served locally: the <video> autoplays muted, loops (seeking to 49.6 s wraps to the start), the poster loads, and both sources decode at 1920 × 1080.

For the maintainer

  • The captions are the agreed copy, but three captures show less than their captions say: shapes-connectors.mp4 has no sticky note, frames-export.mp4 exports the board's areas without drawing frames, and open-pptx-zip.mp4 drops only a .pptx, not a Microsoft Whiteboard .zip. Re-recording those three, or changing the copy, would close the gap. dax-f6.mp4 drags Sales.dax from Explorer rather than pasting from the clipboard.
  • The music bed was generated 60 seconds long because the 50-second generation faded out from 35 seconds; the film uses its first 50 seconds.
  • The social files and the Store trailer are in tools/films/out on the machine that rendered them and are not committed.

🤖 Generated with Claude Code

Film 2, "One board", is a 50-second camera move across a single board on which
seven captures sit as windows with their captions written below them. It names
no date and no Microsoft deadline, so it replaces the 42-second teaser on the
landing page and serves as the Store trailer without going out of date.

It is a second composition in tools/films and reuses film 1's brand, layout,
CaptureView, WindowFrame, and render and stills scripts. The end card and the
eased progress helper move to shared modules so both films use them. The
render script gains a film2 mode that renders each composition once at its own
size, mixes the music bed with ffmpeg at -20 dB mean, and writes the site files.

The site renditions use higher CRFs than the 42-second cut (46 for AV1, 31 for
H.264) because the camera never stops; at those values each file is about
3.5 MB, the size of the files they replace.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@marcosqlbi
marcosqlbi marked this pull request as draft October 10, 2026 18:53

This branch has not been deployed

No deployments
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.

1 participant