Constructivist Montage — our demo
One example among many. Don't reuse its story, arc, shots, props or timings.
Demo: 410 Days (410 天, 60.0 s) · kino-montage.mp4 · subtitles kino-montage.srt · source in demo/
The Empire State Building went from first steel (17 March 1930) to opening day (1 May 1931) in 410 days. Its own 1931 brochure has a column headed "The Men Who Did the Job" that lists owners, directors and contractors. The film asks that heading as a question and answers it with the construction film and Lewis Hine's photographs: 2,500 men a day, up to about 4,000.
It is an unofficial film made entirely from public archives and real documents: a 1930–31 construction film by the steel fabricator (American Bridge Company / U.S. Steel, Empires of Steel), three Lewis Hine photographs (U.S. National Archives; The Metropolitan Museum of Art, CC0), and the 1931 brochure What Everybody Wants to Know About Empire State (Columbia University Libraries). It is not affiliated with or endorsed by the building or any company named in it. Every fact is sourced in demo/FACTS.md, every asset in demo/CREDITS and demo/SOURCES.md.
Story & structure
Shape: a document asks, the footage answers; the turn sits in the middle.
- Setup (0–11.5 s): title on a red girder over a man riding a hoisted beam into the sky; the brochure's map, the site circled in red; the circle opens onto the excavation; first steel, 17 March 1930.
- Development, the machine (11.5–28 s): nine derricks (a grid that fills cell by cell), the frame in split strips, a 44-ton column frozen and annotated, four and a half floors a week (the brochure's sentence marked in red), 80 hours from the mill to a rivet (a rising staircase of windows).
- Turn, the men (28–35.5 s): the heading "THE MEN WHO DID THE JOB", circled; a red question mark; the orchestra stops and only a real rivet-gun recording drives an accelerating cut of workers while a counter climbs; the answer printed over a multiple exposure: 2,500 a day, up to about 4,000.
- Ending, the result (35.5–60 s): the brochure's own height drawing is turned and stood up as a chart (held, then the verdict "tallest in the world"); the camera pushes into the winner; the photomontage tower climbs from floor 86 to 102 with workers cut out and stacked on every floor, a figure on top; half a bar of silence; 410 days, 102 floors, opened nearly a month early; end card.
Why it fits the style: the material is all evidence and the argument is made by editing: a document's heading collides with the footage it leaves out (A + B → idea), the counts are driven by cuts, and the signature shot builds the structure out of the people who built it.
Shots
Times in seconds (120 BPM: beat 0.5, bar 2.0).
| # | Time | Format | Picture | Native move / note |
|---|---|---|---|---|
| 1 | 0.00–5.00 | title package | red girder slams on 0; a window cut to the girder's edge: rider on the beam (0.25), boom (2.0), climber (3.0), derrick top (4.0); "410" stamped digit by digit, "天" red, "410 DAYS"; "帝國大廈 · 紐約 1930–1931" on the girder | strong action in the first 0.25 s; title held 4 s |
| 2 | 4.75–8.25 | map + lower third | red wipe; the brochure map pushes toward the site; red marker circle (5.5); lower third "第五大道 33–34 街" | document as map |
| 3 | 8.25–8.75 | iris | the red circle becomes an aperture onto the site from above | transition inside the medium |
| 4 | 8.75–11.50 | vertical title, date on a girder | grillage guided onto its footing in a tall window; "第一根鋼" stacked; "1930.3.17" on a red band; day counter "第 0 天" | type as structure |
| 5 | 11.50–14.50 | grid | 3 × 3 windows light every sixteenth in a spiral, the centre counts to 9 and lights red; "九臺吊車 NINE DERRICKS" | counting by cuts |
| 6 | 14.50–16.00 | split strips | three strips of two panels on the −18° axis, one panel changes per beat | machine rhythm |
| 7 | 16.00–18.50 | freeze + annotation | flash, freeze on a column section going up, red ellipse, leader, "44 噸 / 44 TONS EACH"; jump-in at 17.25; the film keeps running in a red-framed inset | freeze-frame format |
| 8 | 18.25–23.25 | document close-up | red wipe; the statistics page, red marker over "Four and one-half stories of steel were erected every week"; red block "每週 4½ 層"; a tall slot of the facade rushing past | the document is marked, not quoted |
| 9 | 23.25–28.00 | process staircase | truck with steel → floor beam on the derrick → men bolting a column, red arrows; counter 0 → 80 小時; the brochure's own sentence strip, marked | whistle J-cut at 23.0 |
| 10 | 28.00–29.50 | the question | ink ground; "THE MEN WHO DID THE JOB" (heading only), red ellipse; a red "?" slams at 29.0 | music stops (near-silence) |
| 11 | 29.50–31.50 | acceleration + count | 0.5 → 0.25 → 0.125 s cuts of workers (film and Hine), tilted windows, red / ink grounds alternating; four-digit counter with its unit "人 MEN" jumping | rivet-gun recording alone, J-cut at 29.05 |
| 12 | 31.50–35.50 | multiple exposure | steel field from above, high workers in screen, two Hine cut-outs in multiply; "每天 2,500 人" / "最多一天約 4,000 人" |
the answer |
| 13 | 35.25–43.25 | chart from the document | red wipe; the page turns a quarter; the four outlines lift off and stand on one line to scale (36.25 / 36.625 / 37.0 / 37.375), dimension lines and numbers; held 37.4–40.0; verdict "世界最高" (40.0); push into the red Empire State outline | comparison held ≥ 2.5 s before the verdict |
| 14 | 43.25–48.25 | photomontage tower (signature) | ten floors in a run (43.3–44.2) while the counter climbs 0 → 86; the count rests on 86 while "1930.9.15 鋼架 86 層" and "第 182 天" are up (44.25–47.2) and the camera climbs slowly; six more floors (47.2–47.6), 86 → 102; mooring-mast steel with flag as the crown (47.65); Hine's Icarus on top (48.0) | people build the structure; number and caption never disagree |
| 15 | 48.25–48.75 | silence beat | ink, one red rivet | true silence |
| 16 | 48.75–56.00 | result composition | the finished tower in a slanted window (camera tilts up it), Icarus in a tilted frame, red wedge; "410 天", "102 層", "1931.5.1 開放 · 比計劃提前近一個月"; "410" restamped on red at 53.6 | heaviest hit at 48.75 |
| 17 | 56.00–60.00 | end card | see below | held 4 s |
Narration (Kokoro am_michael, eleven short lines) and bilingual subtitles: 5.15, 8.9, 12.75, 16.4, 19.4, 23.6, 28.2, 32.0, 37.6, 49.0, 53.6 s (VO in index.html; cues exported from the same table).
Score structure
- 120 BPM, D minor, turning to D major at the chart's winner and staying there for the result. Instruments (VSCO 2 CE, VCSL; CC0): spiccato cellos, staccato bassoon, staccato tuba and trombone, horns, trumpets, contrabass, violins, violas, snare, gran cassa, timpani, xylophone, suspended cymbal, clash, gong, tubular bells.
- Arc: strike (gran cassa, timpani, tuba, trombone) → trombone D–F–A under the stamped digits → the machine ostinato (D D F D A D E F in eighths) → half band under the map → timpani roll into the iris → full machine under the grid (one xylophone note per lit cell, rising) → trumpet motif over the strips → one held chord on the freeze, timpani on the jump-in → horn stabs on the brochure, ostinato an octave up → up a fourth for the 80 hours with motif and a timpani roll → everything stops at 28 except one boom → the rivet gun alone → strings swell under the answer → pizzicato ticks under the chart, one brass chord per building (Dm, F, A, D major) held under the comparison → tutti D-major stab on the verdict → the machine rebuilds → the tower: one rising xylophone / violin note per floor, trombone chords stepping up each bar, snare roll → brass fanfare on the crown → half a bar of silence → D-major tutti with gong and gran cassa → strings under the last lines → a low D and tubular bell under the end card.
- Foley (procedural,
audio/mix.py): slams (thump + steel clank), stamps, whooshes for wipes and the iris, marker scrubs, paper rustles, pitched clanks for cells, strips and floors, a freeze click. Real recordings: the rivet gun (CC BY 4.0), a steam whistle (CC0), a construction site ambience (public domain). - Mix: music ducked 70 % under the voice (about 10 dB under it), foley 35 %, ambience about 20 dB under the voice and out for the silence; mastered to −14 LUFS with peaks at −1.8 dBFS before
mux.sh.
Palette & props
Red #D52B1E, ink #141210, paper #EDE4D0; axis −18°, wipe band 72°. Type: Noto Sans SC 900 / 700, Oswald 500–700, Space Mono for tags (all OFL, in demo/fonts/). Props are only documents (the brochure's map, statistics page, scale drawing, heading, chronology strip), film windows, Hine cut-outs and red / ink geometry.
End card
Paper ground; "410 天" / "410 DAYS"; a red rule; "構成主義蒙太奇 / CONSTRUCTIVIST MONTAGE"; "LemoLab × Claude Opus 5.5"; five credit lines (the film, the photographs, the document, the CC BY rivet recording with author, title and licence, and "Unofficial film from public archives · fonts OFL · samples CC0"); a still of the rider and the returning red girder. Held 4 s. The "LemoLab × Claude Opus 5.5" sign-off belongs to this library demo only; a user's film carries no LemoLab credit and no copy of this card.
Build notes
demo/
index.html the page: scenes S1–S12, VO table, subtitles, EV (sound cues), TEXTS (readcheck)
tools/prep.py print grade; clips → 24 fps JPEG sequences; stills; brochure pages and outline keying; cut-outs
tools/fonts.py fetch OFL fonts, subset Noto Sans SC tools/cues.mjs subtitle cues from the page, one-line check
tools/fetch_sources.sh download raw/ from SOURCES.jsonl tools/kit_env.sh python with onnxruntime + u2net model
tools/footage.py search / fetch / record archive material tools/cq.py Commons queries
tools/final_asr.py speech check on the final mix tools/rhythm_report.py flat windows, cuts, hit alignment
audio/lines.json narration (Kokoro) audio/mix.py score, foley, voice, ambience, master
FACTS.md · CREDITS · SOURCES.md / SOURCES.jsonl · stills/styleframe.jpg
sh demo/build.sh(library set up withsetup.sh deps voice music): downloads the sources (~95 MB) and fonts, makes a python with onnxruntime and the u2net_human_seg model if needed, prepares the footage (~2 min), voices and checks every line, runs the reading check, exports events and cues, renders 1,440 frames, mixes, writes the subtitles, masters to −14 LUFS (grain 4), writes the poster (51.0 s), the styleframe (2.5 s) and a 1280-wide small copy, then runs the rhythm report and the speech check on the final mix.- Footage windows never show the 704-pixel film source above 2.5×: full-frame shots of the film are avoided on purpose (windows, panels, an iris that opens onto a 1,760 px image on ink).
Pitfalls: place the title's bilingual line from the girder band's centre line, or it runs off the girder's left end; split the strips into two panels rather than stretch one clip across 2,300 px (3.3× the source); window the iris and the multiple exposure instead of filling the whole frame from the 704 px film; set the answer block in ink, not red on the red exposure ground; put the verdict in a block in the empty corner after the hold, not on a band across the chart, where it covers two of the compared numbers; hold the freeze 2.5 s with a jump-in and a live inset, not 3 s with almost no motion; put the 80-hours English line on a paper tab above the dark window, not under it; keep the tower's counter on 86 while the dated line saying 86 is up (number and caption never disagree); give the people counter a unit ("人 MEN"); don't hold the result 7 s nearly still: tilt up the tower and restamp "410" on the last line; fade a hit at sample 0 in over 25 ms, or it overshoots the AAC encode to +3 dBTP.