Live Countdown Split-screen — our demo

One example among many. Don't reuse its story, arc, shots, props or timings.

Demo: Counting Itself Down (自己倒數, 59.5 s) · countdown.mp4 · source in demo/

The last minute of the Artemis II launch (1 April 2026, Launch Complex 39B), in real time from T−32.5 to T+27.0 with no cut in time. Everything on screen is NASA's own launch-day material: the live broadcast and its audio, the Firing Room, a camera on the rocket, a camera on Orion, a drone, two ground cameras, a crew photo and the mission fact sheet. This is an unofficial film; NASA did not make or endorse it.

Story & structure

The story is three hand-overs of control, all heard in the native audio. At T−33 the ground launch sequencer gives the count to the rocket ("GLS, go for ALS" — "Great call-out. The rocket is on its own"); the rocket counts itself down; at T+21 "Houston, now controlling the flight of Integrity". A control strip in the clock header (地面 GLS → 火箭 ALS → 休斯敦 HOUSTON) carries the turns.

Shape: cells rise toward zero, merge, then open again for the consequences. Hook (0–0.5 s): the first spoken call flips the control strip on a single wide shot of the pad while the title package lands. Setup (2.5–13 s): the Firing Room opens beside the pad as a "same window" cell (the people who just handed over can only watch), the crew photo with name tags, then a thrust bar (SLS 15 % over Saturn V) on "the most powerful rocket NASA has ever launched". Development (13–22 s): the planned-vs-heard checklist and the fact sheet; the narrator's only line before zero; a punch-in on the pad on "sound suppression water is flowing"; the rocket's own camera replaces the paper. The count (22.4–32.5 s): a 3×3 grid with the clock in the centre; each spoken number opens one camera out of a "standby" slot; RS-25 start flags the engine camera and ticks "heard −6.0". Zero (32.5 s): nine cells merge into one real-time picture of the pad, the clock inverts. After zero: two hard-cut full screens (drone, Banana Creek), a breath, then three cells: the drone climbing, the camera on the rocket, and a flight-events panel whose second countdown runs to booster separation (T+2:09, expected); the loop's "good roll, pitch" ticks it. "Houston, now controlling…" fills the last control segment and the layout resolves to one cell under the title.

Why it fits the style: the real minute already has a countdown, three spoken hand-overs and a zero; the edit only has to make the second visible. Native moves spent: many into one (signature), clock inversion, control strip, the grid filling on the count, sync badges (including one honest "same window" cell), the planned-vs-heard checklist, a second countdown, event flags, a punch-in on a call, a document by rows.

Layouts

Film time t, mission time M = t − 32.5.

# t M Native call / event Layout Note
1 0.0 −32.5 — 1 cell: broadcast, pad wide title package 0.45–6.8
2 0.40 −32.1 "GLS, go for ALS." control strip ground → rocket strong action at 0.4 s
3 2.50 −30.0 "Great call-out. The rocket is on its own." 2: broadcast + Firing Room "same window" badge
4 5.26 −27.2 "Four brave explorers…" 3: + crew photo names pop 0.16 s apart
5 7.40 −25.1 "…the most powerful rocket…" 4: + thrust bars under the broadcast comparison held 4.4 s
6 13.10 −19.4 (gap) narrator: "About ten days: around the Moon, and back." 3: broadcast + checklist + fact sheet two rows, annotation band
7 16.47 −16.0 "Sound suppression water is flowing." punch-in on the pad base + event flag 2880-px extraction
8 19.60 −12.9 — fact sheet → rocket camera (wipe)
9 22.42 −10.1 "Ten," 3×3 grid: clock centre, checklist, transcript (2 slots), 3 standby slots
10 23.10 / 24.22 / 25.24 −9 / −8 / −7 "nine, eight, seven," Orion, drone, Firing Room pop in one tom each
11 26.46 −6.0 "RS-25 engines lit…" event flag on the engine camera; checklist "heard −6.0"
12 32.50 0 "…booster ignition." many into one (0.42 s) → OSB II real-time, flash, clock inverts music silent 32.25–32.5
13 36.36 +3.9 "The crew of Artemis II, now bound for the Moon." hard cut: drone full screen
14 39.50 +7.0 "Humanity's next great voyage begins." hard cut: Banana Creek full screen
15 41.7–42.0 +9.2 (breath) roar tail only; wind enters (J-cut)
16 42.00 +9.5 narrator: "Next on the clock: booster separation, at two minutes nine." 3: drone + rocket camera + flight events second countdown −1:59
17 46.40 / 49.78 +13.9 / +17.3 "Good roll, pitch." / "Roger, roll, pitch." flight events tick
18 51.30 +18.8 — drone → tracking telescope (wipe)
19 53.78 +21.3 "Houston, now controlling the flight of Integrity…" control strip rocket → Houston
20 54.0–59.5 +21.5 → +27 the line ends under the card 1: rocket camera full screen + end card 5.5 s

Sync per camera (source second s): broadcast s = M + 46.8; rocket camera s = M + 34.8 (its burned-in timer); Orion s = M + 26.25 (first RS-25 light at T−6.36); drone s = M + 10.4; Banana Creek s = M + 19.0; OSB II s = 3.0 + 2.5·M (slow-motion ×2.5); Firing Room not synced. All in demo/tools/prep.sh.

Score structure

Palette & props

Title card

Opening package (lower left of the first cell, 0.45–6.8 s): 自己倒數 / COUNTING ITSELF DOWN, then 阿爾忒彌斯二號 · 2026 年 4 月 1 日 · 39B 發射臺 and the English line.

End card (54.0–59.5 s, left-aligned over the rocket camera, the clock and transcript still running): 自己倒數 (Noto Sans SC 700, 112 px) / COUNTING ITSELF DOWN; a thin orange rule; 實時倒計時分屏 LIVE COUNTDOWN SPLIT-SCREEN; LemoLab × Claude Opus 5.5; 素材:NASA · 公有領域 · 非官方作品 / FOOTAGE: NASA · PUBLIC DOMAIN · UNOFFICIAL. The "LemoLab × Claude Opus 5.5" sign-off belongs to this library's demo only; a user's film carries no LemoLab credit and no copy of this card.

Build notes

demo/
  index.html          the page: LAY layouts, camRegion, clock / transcript / checklist / doc / profile / thrust cells,
                      EV (mix events), TEXTS (readcheck), SUBFIT (one-line subtitles)
  tools/prep.sh       the sync table: every camera to frames/<cam>/<film frame>.jpg with one grade
  tools/grab.py       HTTP range excerpt of a NASA original + SOURCES.jsonl entry
  tools/footage.py    search / fetch / record licences (NASA, Commons, Internet Archive) → SOURCES.md
  tools/subs.mjs      cues → audio/cues.json (+ one line per language, ≥ 1.8 s)
  tools/fetch_fonts.py  Barlow, Barlow Condensed, IBM Plex Mono, Noto Sans SC subset (OFL)
  tools/final_asr.py  Whisper on the finished film
  audio/lines.json    narrator (Kokoro)      audio/mix.py   native audio, ticks, foley, score, ducking, pre-master
  FACTS.md · SOURCES.md · SOURCES.jsonl · CREDITS
  raw/ frames/ out/ fonts/ audio/vo/   downloaded or generated, not committed

sh demo/build.sh (library set up with setup.sh deps voice music): fetches the NASA excerpts (~400 MB), fonts, voice model and the vsco2ce / vcsl samples if missing → narrator + speech check → frames (prep.sh) → subtitles + one-line check → readcheck → events → render (1,785 frames, 30 fps) → mix → mux (−14 LUFS, grain 1) → small cut → poster / style frame (t 28.5) → Whisper on the film.

Demo-specific choices and pitfalls: the broadcast excerpt is a stream copy, so its zero (46.8 s) depends on the keyframe it starts on; re-measure after a re-fetch. The rocket camera's burned-in timer gives a frame-exact zero, but the same file's audio runs about 1 s early, so sync it on picture only. The Firing Room reel has no clock: it is labelled "same window" and kept away from the seconds where its content could contradict the clock. "GLS, go for ALS" is heard by Whisper as "go for your left"; it is identified from NASA's countdown list and the commentary that follows (FACTS.md §T). Split the count into two cues: shown as one, its whole Chinese line ("…RS-25 點火") appears four seconds early. Fill the 3×3 grid's empty slots with "standby" frames that each count opens, not black. Put the fact-sheet annotation in a dark band below the paper, not over the page's own type, and keep the paper window a fixed 600 source px wide (scaled to fit, paper white above and below) so every row's text is whole. Don't hold a static pad wide shot for ten seconds; break it with a punch-in on "sound suppression water" (from a 2,880-px extraction, no upscaling).