Silhouette Rhythm — our demo

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

Demo: Half a Beat 《慢半拍》 (49.0 s) · silhouette-rhythm.mp4 · source in demo/

A flock of flamingos moves on every beat, and one young bird is always half a beat late. No narration and no subtitles: the story is told by the poses, and the rhythm of the sound tells who is on the beat. The only words on screen are the end card.

Story & structure

Logline: in a flock that moves on every beat, the youngest is always late; when the flock takes off at sunset it is left behind, falls on its first try, and finds the beat in the ripples the others left on the water.

Arc: the rule (five heads flag on the beat in front of the sun; a small head jumps up a whole beat late, then half a beat late, and bumps its neighbour) → the character (the march; it takes two steps for every one, misses the about-turn and walks into an adult) → the stakes (the flock lines up and takes off one bird every half beat; it is still dancing with its eyes shut) → the failure (its run is off the beat, feet and wings; it trips, a comic freeze, a record stop) → the low point (alone in the glitter, no beat at all) → the turn (a ripple passes under it on the beat, then another; a line of rings leads to the sun and lights one per beat) → the second try (it counts in with the opening's head flags, now on the beat, and runs one step into each ring) → the climax (it leaves the water in front of the sun and everything freezes: its wings and the flock's wings at the same point of the stroke) → the ending (it catches up with the line flying low across the last of the sun and falls into step; the title's last word lands half a beat late).

Native moves spent: the beat in unison as the hook; the cascade for the take-off; the comic freeze on the fall; the beat written on the water as the turn; the freeze with the sky still moving (with an orbit) as the signature shot; the line across the sun as the ending; the black wipe and a whip pan as transitions.

Shots

120 BPM (beat 0.5 s, bar 2 s), 30 fps. Times in seconds.

# Time Shot Camera Native move / note
1 0.0–4.0 five long necks in front of a huge sun flag together on 0, 1, 2, 3 and bob between; the young bird is too short to be seen and jumps up to flag: 1.5 (a whole beat late, the wrong way), 2.25 and 3.25 (half a beat late; the last one bumps a neck); 3.5 all five heads look down at it; 3.75 a small sheepish flag telephoto from low, push 7.2 → 7.8 focal; the adults' bodies sit just under the frame edge the hook: everyone in step but one
2 4.0–10.0 ten adults march through shallow water on the beat, light shafts between the legs; the young bird at the back takes two steps per beat; 8.0 the flock turns as one, it doesn't, walks into the chest of the adult in front (8.25), bounces, turns at 8.5 and ends up leading match cut on the head flag → low lateral track at water level, blurred reeds in front; hard stop and reverse at 8.0 9.72 a near adult walks across the lens: black wipe
3a 10.0–12.0 the sun touches the horizon; the lead looks up, the rest snap into a single file facing right, three per beat; the young bird at the left end, head in the water, then dancing to itself off the beat side medium, slow push
3b 12.0–14.0 the lead runs: footfalls on eighths, a wingbeat on every beat, bigger each time; leaves the water at 13.42 in front of the sun medium tracking; crane up and tilt from 13.2
3c 14.0–16.5 eight more run in from the left and leave the water one every half beat at the centre of the frame; a rising diagonal forms in the sky; a dotted line of rings stays on the water side wide, slow lateral move; whip pan left from 16.3 with directional blur the cascade; the rings are planted here
3d 16.5–18.0 the young bird, still flagging with its eyes shut; it stops, looks right, looks left: nobody whip pan lands on a medium close shot (≈ 45 % of the height) the beat is gone
4 18.0–22.5 its run: feet and wings off the beat; trips at 21.2; head first into the water, freeze 21.5–22.25 (legs up, a crown of water hanging); splash at 22.38 medium close tracking, slight handheld comic freeze, record stop
5 22.5–27.0 a small black shape sitting in the sun's glitter, its own rings spreading; the line of rings fading away toward the sun; the flock a row of specks high wide, slow rise and pull back no beat at all
6a 27.0–29.0 its head comes up out of the water, drips, a shake; 28.0 and 28.5 a ripple passes under it exactly on the beat and flashes low close shot the beat written on the water
6b 29.0–32.0 the line of rings from its feet to the sun; light runs along it, one pair of rings per beat (29.0–31.5); it nods along eyeline cut → deep view along the line, slow push eight drum hits in a row with the rings
7a 32.0–34.0 standing in the first ring it flags its head four times, on the beat, the ring under it pulsing each time; crouches at 33.6 locked side medium the count-in
7b 34.0–36.0 the run: one step into each ring on the eighths, rings lighting under its feet, wings opening wider each beat; leaves the water at 35.86 low tracking, pushing in and dropping, the sun coming into frame
8 36.0–39.0 signature: the take-off frozen in front of the sun: droplets hanging from its toes, a crown of water, the flock above with every wing at the top of the stroke, its own too; the sky keeps sinking to violet cut straight into the freeze; orbit inside the frozen moment (lateral move with counter-yaw) the freeze with the sky still moving
9a 39.0–41.0 unfreeze: one wingbeat and it climbs out of frame past the sun pull back and tilt up
9b 41.0–49.0 the whole line flies low across the last of the sun, reflections right under it; the young bird comes in from the left at double-time wingbeats and takes the last place at 42.5, in step from then on; the end card lands on the water long lens, slow lateral move the line across the sun

Score structure

Palette & props

End card

On the dark water at the lower left, word by word on the beat, each with a small ring under it: HALF (42.5) A (43.0) BEAT (43.75, half a beat late), 慢半拍 (44.2), Silhouette Rhythm · 剪影律動 (44.6), LemoLab × Claude Opus 5.5 (45.0); held to 49.0 while the line keeps flying. Anton 136 px, Noto Sans SC Black 64 px, Barlow Condensed 40 / 32 px, cream #FFF3E4. 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/
  build.sh       one command: fonts (if missing) → events → score + foley → picture → master → readcheck → poster + style frame
  index.html     two canvases (WebGL sky/water/composite, 2D overlay for the whip blur and the end card), fonts
  film.js        render(t): camera, the cast and their schedules, runners, water light, every shot, freezes, motion blur, end card, EV (sound cues)
  shapes.js      parametric silhouettes: flamingo (stand/walk, young), flyer (flight/run/take-off), fluffEdge, palm, reeds, gull, boat
  sky.js         the fragment shader: sky ramps, clouds, sun, water, reflections, rays, rim, halo
  audio.py       score (sampled) + synthesised foley → out/mix.wav (49.000 s)
  make_fonts.py  subsets Anton, Barlow Condensed and Noto Sans SC to the end card's characters
  events.json    sound cues exported from window.EV
  CREDITS, fonts/OFL-*.txt, stills/styleframe.jpg