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
- 150 BPM, 4/4, D minor (i–VI–iv–V per bar: Dm, B♭, Gm, A). Instruments (samples, CC0): harpsichord, contrabass and cello pizzicato, violins pizzicato and tremolo, bowed vibraphone, glockenspiel, woodblock, timpani, gran cassa, snare, trombone, tuba, horn, tubular bells, tam-tam, suspended cymbal. No piano, no string pad.
- Arc: card hits and a tunnel rush (0–0.7) → contrabass D + cello E♭ under the stairs, the woodblock clock on every beat (0.8–3.2) → two harpsichord notes under her back → chapter 1: tubular bell, then the harpsichord ostinato in 16ths with pizzicato bass and the clock → chapter 2: the ostinato drops out; tremolo violins at a whisper, bowed vibraphone, rain, a wet footstep per beat getting louder (15.8–18.2) → hard silence 18.40–18.60 → sting (high cluster, bass drum, cymbal scrape) on the hand → chapter 3: her glockenspiel lullaby (A–D–F–E–D–A), the ostinato in 8ths, one glockenspiel note per pane, low brass stab on the group tilt → chapter 4: ostinato back in 16ths, timpani rising one step per beat (F2 → E3), brass stabs on 十 / 十一 / 十二 (Dm, E♭, E), snare accelerating 30.6–32.2, a low brass pedal under "再上一級" → timpani and bass drum on 十三 → silence 35.05–36.37 (only two clock ticks, 35.4 and 36.0) → reversed swell → the tilt: neck crack + tam-tam + low brass D–A–D–F–E♭ (Dm♭9) + low strings → heartbeat and glockenspiel fragments under the eye and the mouth → end card: tubular bell D, timpani, tam-tam, glockenspiel D–F–A–D.
- Hits per card, pitched up as tension rises (×1 → 1.12 → 1.26 … → 2.1).
- J-cuts: rain before the 雨 card; the phone buzz before the phone; the clock ticks before the tilt. L-cuts: the tam-tam into the eye; the rain under the umbrella.
- Mix: limited before
mux.sh, −14 LUFS integrated. No voice: the cards are the dialogue.
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
- Red
#d4162b, black#0a0a0c, paper white#f2efe8, grey#8d8a84(English only);#d8d4cc,#26262a,#1b1b1finside geometry. - Her: black high-collar long coat, a blunt black bob, a small red rectangular clip, red eyes. Him: black high-collar school uniform, messy black hair, grey eyes. Their rails: hers red with black type (right), his black with white type (left).
- Props, all code: a locker wall with numbered doors, a phone, a fallen umbrella, window walls, stairs with red handrails, lamps.
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
sh demo/build.sh(library set up withsetup.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.shto change). On a fresh clonebuild.shfetches the two sample libraries itself (sh tools/fetch.sh instruments vsco2ceand… vcsl) and fetches the font subsets from Google Fonts; the 11 images indemo/gen/are not in git, so a clone cannot rebuild this film as it is (build.shstops and says so):sh demo/tools/gen_all.shdraws a new set throughcore/image/gen_image.py(it needs the Codex CLI), and the rig is then re-measured.- 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. - 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.
- 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.