Text Flash Cuts — our demo

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

Demo: Behind You (身後, 46.2 s) · text-flash-cuts.mp4 · source in demo/

A trailer for a fictional suspense series. Everything in it is invented: the title, the two characters, every line and the "series" itself; no existing anime, character, line or card text is used. Cold open: a red card, "別回頭。" ("Don't look back."). Four chapters follow, and in each one the girl who said it comes one step closer to the boy: a letter (written), a phone call (a voice, while she walks up behind him in the rain), a wall of windows (her face in every pane), the stairs (her back at the top). On the thirteenth step she is the one who looks back: "輪到你了。" ("Your turn.").

Story & structure

Shape: a four-chapter trailer whose single line is distance closing. Hook (0–0.7 s): a one-point tunnel bursts and three single-glyph cards cut in at six frames each, spelling the first line before it is shown whole. Setup (0.7–4.8 s): the whole line on a red rail beside a symmetric staircase with a tiny back-turned figure at the top; then her back in colour at the right edge, her head starting to turn, cut away before we see her face. Chapters (4.8–35.2 s), each opened by its own chapter card and each bringing a new space, a new way for her to be near and a new move: 信 (a locker in a wall of lockers, the letter, "誰寫的?"), 雨 (a one-point street, a phone, a split-screen call in which her figure jumps closer once per beat, a hand on his shoulder, the empty street with her umbrella on the ground), 窗 (a window wall, then nine panes of her face that all tilt their heads at once), 階 (the climb, a count of 十, 十一, 十二 in ever-shorter cuts, her back at the top, "再上一級。"). Ending (35.2–46.2 s): "十三", 1.2 s of silence with two clock ticks, the head tilt, her line, her eye with his reflection, the corner of her mouth, the title.

Why it fits the style: the medium has no lip-sync and no narrator, so the dialogue lives on two coloured rails (his black on the left, hers red on the right) that hold while the picture beside them keeps cutting. The flash cards only ever fragment words that are held in full somewhere else. Native moves spent: flash cards, speaker rails, chapter cards (four layouts), symbolic architecture (stairs, lockers, street, window wall, tunnels), the stepping approach, fragment inserts (eyes, a hand, a letter, a mouth), multi-panel faces with a group head tilt, count-up acceleration, red-black inversion, extreme offset and absolute symmetry, and the signature head tilt as the ending.

Shots

30 fps; cuts are on a 150 BPM grid (12 frames a beat). Times in seconds.

# Time Shot Camera Move / note
1 0.00–0.10 one-point tunnel, red on black, a white slit opening rush forward hook, frame 0
2 0.10–0.70 cards 別 (red) → 回 (black, red glyph) → 頭 (white), 6 frames each slam + jitter flash cards
3 0.70–3.30 giant stairs, symmetric; tiny back-turned figure in the white door; red rail at left: 別回頭。/ Don't look back. push 1.0 → 1.3 2-frame inversion on the cut
4 3.30–4.40 her back in colour at the right edge, red band dropping, half the frame empty; the head starts to tilt slow push extreme offset; the tilt is withheld
5 4.40–4.80 red slit opening on black — two clock ticks
6 4.80–5.40 chapter card 信 / 第一話 / EPISODE 1 · THE LETTER (white) slam
7 5.40–6.80 wall of 44 lockers; one red door springs open: a white envelope push into the red door (×1.85) grid → one
8 6.80–7.00 his eye jitter insert
9 7.00–10.00 his hands holding the letter: 第十三級臺階。/ The thirteenth step. slow push, hand tremble, a red light sweeps the page 2-frame inversion at 8.33
10 10.00–10.20 card 十三 slam
11 10.20–12.80 black rail at left: 誰寫的?/ Who wrote this?; right: him looking round → a white one-point corridor with his silhouette → his eyes three cuts beside a held rail speaker rail
12 12.80–13.40 chapter card 雨 (black) slam rain enters 0.2 s early
13 13.40–15.00 one-point street at night, lamps by depth, slanted rain; a red umbrella at the vanishing point push absolute symmetry
14 15.00–15.40 phone on red: 未知來電 / UNKNOWN CALLER, shaking jitter the buzz starts 0.2 s early
15 15.40–18.40 split: him in profile on the phone, the street behind him; her figure jumps closer every beat (7 steps); red rail at right: 我在你身後。/ I'm right behind you. breathing, rain stepping approach
16 18.40–18.60 the same frame, rail gone, she has vanished hold hard silence
17 18.60–19.00 her hand on his shoulder, on red slam 2-frame inversion
18 19.00–20.00 the empty street, her red umbrella on the ground, turning push
19 20.00–20.80 身 → inverted street → 後 → red tunnel, 6 frames each —
20 20.80–21.40 chapter card 窗 (red) slam
21 21.40–23.00 window wall, panes going dark one by one; one red pane with her silhouette; his small silhouette in front lateral track
22 23.00–26.00 3×3 panes of her face (full, eye, mouth, upside down, silhouette…) on 16ths; at 24.5 all nine heads tilt; red rail: 你沒有回頭。/ You never looked back. locked multi-panel faces, group tilt
23 26.00–26.20 his eye, red-black inverted —
24 26.20–27.20 red window tunnel rush
25 27.20–27.80 chapter card 階 (white, red glyph) slam
26 27.80–30.60 stairs, his silhouette climbing in the foreground, her figure at the top; black rail: 你到底是誰?/ Who are you?; a step counter the camera jumps one step per beat beat-locked push
27 30.60–32.20 十 → stairs → 十一 → stairs → 十二 → stairs (inverted) → tunnel → … (9 → 6 → 4 → 3 frames) each stairs shot closer count-up acceleration
28 32.20–34.80 low angle: her back at the top, a white door pulsing on the beat, a red light climbing the step noses; red rail: 再上一級。/ One more step. slow tilt up
29 34.80–35.20 card 十三 (white, red glyph) slam timpani, then silence
30 35.20–39.20 her silhouette, back-turned; red band drops, black stair profile rises. 36.40: the head tilt; colour on settle + inversion; red rail: 輪到你了。/ Your turn. push after the snap signature shot
31 39.20–40.00 her red eye; the pupil jolts; his silhouette reflected in the iris push
32 40.00–40.80 the corner of her mouth; a red block slides in push
33 40.80–41.20 red slit — heartbeat
34 41.20–46.20 end card —

Reading: every held line is checked by readcheck.mjs (the shortest margin is "你到底是誰?", 2.68 s for 2.68 s needed). Flash cards and chapter cards are not reported to the check by design; each word they flash is also held in full.

Score structure

Beat / action table (seconds):

Time Action Sound
0.00 tunnel burst whoosh
0.10 / 0.30 / 0.50 別 / 回 / 頭 hits ×1, ×1.12, ×1.26
0.70 stairs + first rail boom
4.40 / 4.60 slit clock ticks
4.80, 12.80, 20.80, 27.20 chapter cards hit + low thump
6.20 locker opens metal clank
7.00 the letter paper
15.40 + 0.4k she steps closer (k = 1…7) wet footstep, louder each time
18.40 she has vanished silence 0.2 s
18.60 hand on the shoulder sting + bass drum
23.00 + 0.1i panes appear (i = 0…8) glockenspiel
24.50 nine heads tilt clack + low brass
27.80 + 0.4k camera climbs a step timpani
30.60 / 31.10 / 31.43 十 / 十一 / 十二 brass stabs
34.80 十三 timpani + bass drum, then silence
36.40 the head tilt (colour at 36.53) crack + tam-tam + Dm♭9
39.20, 40.80 eye, slit heartbeat
41.20 end card tubular bell

Palette & props

Title card

Black, left-aligned, held 5.0 s: "身後" (Noto Serif SC 900, 300 px) with a small red clip mark, "BEHIND YOU", the line "有些問題,回頭才有答案。" / "Some answers wait behind you.", a thin rule, "文字閃切 Text Flash Cuts", "LemoLab × Claude Opus 5.5", "Samples: Versilian Studios (CC0)". A red bar descends on the right with her small white silhouette beneath it. 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          page: fonts, render(t) / TEXTS(t) / EV
  main.js             the film: SH timeline (frames), FLIPS, EV, every shot function, rail(), the head-tilt rig
  mix.py              score (sampler) + procedural sound, reads events.json
  tools/prep.py       keys the chroma-green images, pulls generated reds to #d4162b
  tools/key.py        keys and crops char_lookback (rig coordinates are in that crop)
  tools/fonts.sh      font subsets built from every non-ASCII character in main.js
  tools/gen_all.sh    draws the images from prompts/prompts.json through core/image/gen_image.py (not called by build.sh)
  gen/                the 11 images (Codex image generation; local, not in git)      prompts/   prompts and --ref chain
  1. sh demo/build.sh (library set up with setup.sh deps music): fonts → assets → events → reading check → render (1,386 frames, 30 fps) → mix → mux (−14 LUFS, grain 0) → poster and styleframe (38.3 s). Workers default to 2 (WORKERS=4 sh demo/build.sh to change). On a fresh clone build.sh fetches the two sample libraries itself (sh tools/fetch.sh instruments vsco2ce and … vcsl) and fetches the font subsets from Google Fonts; the 11 images in demo/gen/ are not in git, so a clone cannot rebuild this film as it is (build.sh stops and says so): sh demo/tools/gen_all.sh draws a new set through core/image/gen_image.py (it needs the Codex CLI), and the rig is then re-measured.
  2. Rig coordinates: PIVOT, HEADPOLY, COLLAR (char_lookback, cropped coordinates), HB (her back view), HF (face points for the nine panes). Re-measure them if an image is regenerated.
  3. Pitfalls tied to this demo: a held line needs the shot under it to last its reading time (her line on the call shot needs 3.0 s, not 2.5 s); keep the chapter on the beat grid by taking the difference from a neighbouring architecture shot. A figure in a long street must be large enough to read as a person (here about twice the first size). A low angle on a figure at the top crops at the calves, never the head. A window wall keeps its grid while panes go dark: dark panes stay inside white mullions and go out slowly.
  4. Images: the 11 pictures are Codex image generation made for this story (CREDITS). A film on another topic generates its own characters and inserts from its own model sheets (STYLE.md §9); the demo's images are never reused.