A Robot Failure Becomes a Product Proof
A robotics launch film turns a simulated field failure into a step-by-step workflow and quantified validation result.
By @alliance for ZynoptesSource onlineOriginal post ↗
Copies get_blueprint("REF-5318") for Claude. Connect Claude
Why it works
The first 63 frames show a physically clear failure from two angles before the field-cost explanation. A continuous simulation handoff at frame 272 and a whip at 305 turn the promise into a test; later, the large proof cards in shots 20 and 23 and fresh validation in shot 28 make the result easy to scan. The edit follows spoken clauses: only 5 of 30 cuts sit near measured beats.
Blueprint
15 plates that take the film apart, from its format to a recipe you can run. Claude reads the same plates over MCP.
Plate 01
The format in one breath
A physical failure opens a founder led explanation of its field cost. The film then shows a real input, a controlled test, a fix, and fresh validation before turning proof into a buyer outcome.
Why it works
- The failure is legible before the first cut at frame 26.
- The product proof starts with the simulation handoff at frames 272–305, then moves to real interface evidence in shots 13–16.
- Oversized evidence cards in shots 20 and 23 make the later results readable even with sound off.
Plate 02
Format card
| Platform · aspect · length | X · 16:9 · 93.70 s · source 1280×720 · 23.976 fps |
| Pace | 31 measured shots · median 2.21 s · mostly hard cuts |
| Script | Narration-led · 228 measured words across 71% of runtime · roughly 146 wpm overall |
| Voice | Two practical technical presenter archetypes, conversational, medium register |
| On screen | Simulated failure, live presenters, authentic screen capture, sparse number and icon cards |
| Type | Six measured cap-height levels, 50–205 px; editorial sans, restrained fades and slides |
| Sound | Low tonal bed, weak 107.67 BPM pulse; phrase-led cuts; X/LinkedIn target −14 LUFS |
| Structure | Nine beats; validation in shots 25–28; call to action in shot 31 |
Tools you'll need: a camera shoot · screen recordings of the product · Blender for 3D · ElevenLabs or a recorded voice · Remotion for motion graphics · Claude alone: partly
Frame sheets
Frame by frame
Stills taken at measured moments, each labelled with its time. Claude gets the same sheets over MCP.
Plate 03
The hook, frame by frame (first 3 seconds)
| Time | Picture | On-screen text | Words and sound | What it does |
|---|---|---|---|---|
| 0.00–1.08 | Tight low angle on a machine slipping past a physical edge | Short question starts word by word | Question begins immediately; bed underneath | Presents a visible problem |
| 1.08–2.63 | Wider view lets the fall finish | Question finishes | Voice resolves the question | Confirms consequence |
| 2.63–3.00 | Cut to presenter | Cost phrase begins | New sentence begins | Turns spectacle into business stakes |
Hook formula (inferred): visible failure + direct question: See {{PRODUCT}} fail at {{SITE}}?
Why it holds (inferred): The audience sees the action before it knows the explanation. The camera change at frame 26 makes the fall spatially clear.
Plate 04
Structure (beat sheet)
| # | Time (s) | Shots | Beat | What happens | Technique |
|---|---|---|---|---|---|
| 1 | 0–3.71 | 1–3 | Hook | Failure, then real-world stakes | Tight-to-wide simulation, presenter |
| 2 | 3.71–10.64 | 4–5 | Field cost | Manual repair cycle and expense | Pixel icons, location image |
| 3 | 10.64–16.81 | 6–8 | Product promise | Controlled reproduction, failure caught, fix visible | Logo bridge, simulation, code overlay |
| 4 | 16.81–31.49 | 9–11 | Old method | Guessing and building tests by hand repeats the problem | White card, long presenter section, orange return |
| 5 | 31.49–36.95 | 12–13 | Human authority | Presenters establish who built the workflow | Lower thirds and screen transition |
| 6 | 36.95–50.47 | 14–18 | Workflow | Plain-language task becomes code, scene and test variables | Capture, 3D site, split cards |
| 7 | 50.47–71.15 | 19–27 | Scale and proof | Scenarios, runtime, failure diagnosis and fixes | Numerals, UI, test grid |
| 8 | 71.15–87.75 | 28–30 | Buyer payoff | Fresh tests pass; examples broaden; field visits fall | Continuous results card, icons, map |
| 9 | 87.75–93.70 | 31 | Call to action | Closing claim and destination | Pixel image, then logo card |
Retention map (inferred): re-hooks at shots 9, 20 and 23 · validation at shot 28 · call to action at shot 31 · hard stop with no end fade.
At a glance
- Shots: 31 shots · 30 transitions · 93.70 s = 2246 frames at 23.976 fps · shot length median 2.21 s (shortest 0.71, longest 10.55)
For agents: Shots
The measured data and build specs agents work from. Over MCP they get it all, with the full timeline as JSON.
Shots (measured)
31 shots · 30 transitions · 93.70 s = 2246 frames at 23.976 fps · shot length median 2.21 s (shortest 0.71, longest 10.55). Frames are at 23.976 fps, first and last inclusive: a shot "33–70 · 38 f" is a Remotion <Sequence from={33} durationInFrames={38}>; at another frame rate, use the seconds.
| # | in–out (s) | frames @23.976 (first–last · count) | dur (s) | transition in | changes inside | scales (inferred) |
|---|---|---|---|---|---|---|
| 1 | 0.00–1.08 | 0–25 · 26 f | 1.08 | start | – | fixed |
| 2 | 1.08–2.63 | 26–62 · 37 f | 1.54 | cut | – | fixed |
| 3 | 2.63–3.71 | 63–88 · 26 f | 1.08 | cut | – | optional |
| 4 | 3.71–7.01 | 89–167 · 79 f | 3.29 | cut | – | optional |
| 5 | 7.01–10.64 | 168–254 · 87 f | 3.63 | cut | f196 focus pull over 26 f | optional |
| 6 | 10.64–11.35 | 255–271 · 17 f | 0.71 | cut | – | optional |
| 7 | 11.35–12.72 | 272–304 · 33 f | 1.38 | no visible cut (continuous) | – | scales |
| 8 | 12.72–16.81 | 305–402 · 98 f | 4.09 | whip horizontal · 4 f | f357 unknown | scales |
| 9 | 16.81–19.02 | 403–455 · 53 f | 2.21 | cut | – | optional |
| 10 | 19.02–29.57 | 456–708 · 253 f | 10.55 | zoom out · 2 f | – | optional |
| 11 | 29.57–31.49 | 709–754 · 46 f | 1.92 | cut | – | optional |
| 12 | 31.49–32.53 | 755–779 · 25 f | 1.04 | cut | – | optional |
| 13 | 32.53–36.95 | 780–885 · 106 f | 4.42 | fade from white · 8 f | – | optional |
| 14 | 36.95–38.58 | 886–924 · 39 f | 1.63 | cut | – | optional |
| 15 | 38.58–43.96 | 925–1053 · 129 f | 5.38 | cut | – | scales |
| 16 | 43.96–45.75 | 1054–1096 · 43 f | 1.79 | cut | – | optional |
| 17 | 45.75–46.92 | 1097–1124 · 28 f | 1.17 | cut | – | optional |
| 18 | 46.92–50.47 | 1125–1209 · 85 f | 3.54 | cut | – | optional |
| 19 | 50.47–51.68 | 1210–1238 · 29 f | 1.21 | cut | – | optional |
| 20 | 51.68–54.22 | 1239–1299 · 61 f | 2.54 | cut | – | scales |
| 21 | 54.22–58.06 | 1300–1391 · 92 f | 3.84 | cut | – | optional |
| 22 | 58.06–60.44 | 1392–1448 · 57 f | 2.38 | cut | – | optional |
| 23 | 60.44–62.15 | 1449–1489 · 41 f | 1.71 | cut | – | scales |
| 24 | 62.15–66.40 | 1490–1591 · 102 f | 4.25 | cut | – | optional |
| 25 | 66.40–67.94 | 1592–1628 · 37 f | 1.54 | cut | – | optional |
| 26 | 67.94–69.53 | 1629–1666 · 38 f | 1.58 | cut | – | optional |
| 27 | 69.53–71.15 | 1667–1705 · 39 f | 1.63 | cut | – | optional |
| 28 | 71.15–79.45 | 1706–1904 · 199 f | 8.30 | no visible cut (continuous) | – | scales |
| 29 | 79.45–83.92 | 1905–2011 · 107 f | 4.46 | cut | – | optional |
| 30 | 83.92–87.75 | 2012–2103 · 92 f | 3.84 | cut | – | scales |
| 31 | 87.75–93.64 | 2104–2244 · 141 f | 5.88 | cut | f2157 cut | fixed |
scales: fixed = keep this shot's length when the film gets longer or shorter · scales = stretch or shrink it with the length · optional = drop it for the 15 s cut.
Measurement notes: S21 start moved from v1 54.150 s (f1298) to 54.221 s (f1300): the frame difference peaks there (27.7x the local median) · 1 hidden cuts / dips / reframes found inside v1 shots (luma-normalised frame difference): S31 cut at 89.965 s (f2157); listed in shots[].internal_changes · S13: 90 text items read; the 40 largest are kept · S15: 115 text items read; the 40 largest are kept · key low confidence (0.00): D major vs G minor · cue sheet keeps 94 of 206 sound events (all near cuts, then the strongest)
Frame sheets (measured): shots, one labelled frame per shot (labels S<n> m:ss.s; + = just after a change inside the shot), 2 pages · the full-length timeline, the whole film at fixed steps (labels S<n> m:ss.s f<frame>), 4 pages · close-up strips, 14 frames around each cut and change: f26 cut, f168 cut, f196 focus pull, f272 unknown, f305 whip, f357 unknown, f403 cut, f456 zoom, f709 cut, f780 fade from white, f1706 unknown, f2157 cut (sheet "transitions", 4 pages; labels S<n> m:ss.sss f<frame>): call get_frames('2118366494723620968'), or see them on the film page (Pro, or free films).
Plate 05
Shot grammar
Mix (inferred): Physical simulation and footage anchor the argument; live presenters explain; UI and flat cards carry proof.
Rhythm: The measured median is 2.21 s. Shot 10 is the long explanatory hold; shots 20–28 compress into short result cards and one continuous card.
Rules this editor follows (inferred):
- Cut on clause boundaries. The beat grid is secondary to spoken emphasis.
- Keep a moving subject inside a stable composition before revealing the outcome.
- Alternate real presenter, simulated action and captured interface so each claim gets a distinct kind of evidence.
At a glance
- Biggest moves: shot 7: tilt down, content −86.7% of height over 1.38 s, ease-out · shot 15: complex over 5.38 s, irregular · shot 13: complex over 4.42 s, irregular.
- Transitions: 30 transitions: 25 cuts · 2 boundaries with no visible cut (continuous) (7–12 f) · 1 whip (4 f) · 1 zoom (2 f) · 1 fade from white (8 f)
For agents: Camera and motion · Transitions
The measured data and build specs agents work from. Over MCP they get it all, with the full timeline as JSON.
Camera and motion (measured)
Per shot, measured on the frames. "Camera move" names the camera's move; the numbers are the image's motion: pan in % of frame width (x) or height (y) per second, +x = content moves right (so a pan left), +y = content moves down; zoom per second > 1 = content grows (push in). "Over the shot" is the total, with px at 1920×1080. Speed is the move through the shot, about one character per 0.5 s (▁ still → █ its peak), then the peak in % of width per second. Cadence: "ones" = a new picture every frame, "twos" = each picture held two frames. Blur is relative to this film (0 = its sharpest shots, 1 = its blurriest); motion = share of the frame changing, 0–1. "?" = confidence under 0.5: a hint, check the sheets. The labels describe how the image moves, not where a 3D camera went: an object flying toward a still camera can read as a push in.
In 5 of 31 shots the camera holds still and something inside the frame moves: see Element motion right under this table.
| # | camera move | pan x · y (%/s) | zoom (/s) | over the shot | ease | speed · peak | cadence | blur | motion | conf |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | roll (shake 5.7%/s) | +2.3 · −5.6 | ×0.997 | x +2.5% (+47 px) · y −6.1% (−65 px) · roll +14.8° | ease-in | ▂▂▃▇ · 38%/s | ones | 0.87 | 0.38 | 0.59 |
| 2 | static | +0.0 · +0.0 | ×1.000 | none | hold | ▄▇▇▃ · 0%/s | ~20 fps | 0.40 | 0.05 | 0.93 |
| 3 | pull out | −0.1 · +1.7 | ×0.737 | y +1.9% (+20 px) · ×0.72 scale | ease-in | ▇▂▂▆ · 37%/s | ones | 1.00 | 0.38 | 0.95 |
| 4 | static · element moves ↓ | +0.0 · +0.0 | ×1.000 | none | hold | ▁▁▁▁▁▁▁ | ones | 0.62 | 0.07 | 0.50 |
| 5 | pull out (shake 2.3%/s) | −1.0 · −1.6 | ×0.938 | x −3.6% (−69 px) · y −5.8% (−63 px) · ×0.79 scale · roll +2.4° | ease-out | ▄▁▂▁▁▁▁ · 47%/s | ones | 0.71 | 0.17 | 0.85 |
| ↳ 7.01–8.26 s: pull out | −0.2 · −2.2 | ×0.815 | y −2.7% (−29 px) · ×0.77 scale · roll +0.5° | ease-out | ||||||
| ↳ 8.26–8.93 s: pan right | −5.2 · −4.4 | ×0.998 | x −3.5% (−66 px) · y −2.9% (−31 px) · roll +0.7° | ease-out | ||||||
| ↳ 8.93–9.34 s: complex | +0.3 · −0.5 | ×1.059 | ×1.02 scale · roll +1.2° | ease-in | ||||||
| ↳ 9.43–10.59 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| 6 | static · element moves ↓ | +0.0 · +0.0 | ×1.000 | none | hold | ▁▁▁▁ | still | 0.54 | 0.04 | 0.74 |
| 7 | tilt down (shake 25.3%/s) | −0.1 · −63.0 | ×0.953 | y −86.7% (−936 px) · ×0.94 scale · roll +0.5° | ease-out | ▇▁▁▁ · 217%/s | ones | 0.57 | 0.49 | 0.52 |
| ↳ 11.43–12.01 s: tilt down | −1.4 · −145.8 | ×0.939 | x −0.8% (−16 px) · y −85.1% (−919 px) · ×0.96 scale | ease-out | ||||||
| ↳ 12.01–12.68 s: complex | +1.1 · −2.4 | ×0.956 | x +0.7% (+14 px) · y −1.6% (−17 px) · ×0.97 scale | ease-out | ||||||
| 8 | pan right (shake 8.1%/s) | −11.7 · −0.9 | ×1.034 | x −47.6% (−915 px) · y −3.8% (−41 px) · ×1.15 scale · roll +4.1° | ease-in-out | ▁▁▆▂▁▁▁▁ · 107%/s | ones | 0.35 | 0.27 | 0.69 |
| ↳ 12.72–13.14 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 13.14–14.81 s: pan right | −28.3 · −0.8 | ×1.009 | x −47.2% (−907 px) · y −1.4% (−15 px) · ×1.01 scale · roll +0.5° | ease-in-out | ||||||
| ↳ 14.89–16.14 s: roll | −0.3 · −1.8 | ×0.999 | y −2.3% (−25 px) · roll +3.4° | irregular | ||||||
| ↳ 16.14–16.73 s: push in | +0.0 · −0.3 | ×1.234 | ×1.13 scale | ease-in | ||||||
| 9 | complex | −0.1 · −1.6 | ×0.975 | y −3.6% (−39 px) · ×0.95 scale | ease-in | ▄▁▁▄ · 48%/s | ones | 0.72 | 0.04 | 0.77 |
| ↳ 16.89–17.64 s: push in | −0.1 · −4.8 | ×1.242 | y −3.6% (−39 px) · ×1.18 scale | ease-out | ||||||
| ↳ 17.64–18.31 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 18.31–18.98 s: pull out | −0.1 · −0.1 | ×0.722 | ×0.80 scale | ease-in | ||||||
| 10 | handheld (shake 2.5%/s) | −0.5 · −0.2 | ×0.988 | x −4.8% (−92 px) · y −2.4% (−26 px) · ×0.88 scale | irregular | ▄▁▁▁▅▁▁▁▁▁▁▄▂▁▂▁ · 55%/s | ones | 0.55 | 0.16 | 0.91 |
| 11 | pan right (shake 3.4%/s) ² | −7.6 · +0.0 | ×0.963 | x −14.6% (−281 px) · ×0.93 scale | ease-out | ▅▁▁▂ · 55%/s | ones | 0.53 | 0.27 | 0.70 |
| ↳ 29.57–30.41 s: pan right | −17.6 · −0.1 | ×0.996 | x −14.7% (−281 px) | ease-out | ||||||
| ↳ 30.41–30.66 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 30.66–30.99 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 30.99–31.41 s: pull out | +0.1 · +0.2 | ×0.847 | ×0.93 scale | ease-in | ||||||
| 12 | pull out | +0.0 · −8.0 | ×0.717 | y −8.3% (−90 px) · ×0.71 scale · roll +0.9° | ease-in | ▇▂▂▆ · 38%/s | ones | 0.94 | 0.44 | 0.92 |
| 13 | complex (shake 7.9%/s) | −5.3 · −9.3 | ×0.965 | x −23.4% (−449 px) · y −41.0% (−443 px) · ×0.85 scale · roll +0.7° | irregular | ▁▁▂▅▂▁▅▁▁ · 87%/s | ones | 0.52 | 0.17 | 0.75 |
| ↳ 32.53–34.95 s: complex | −9.5 · −8.7 | ×0.761 | x −22.9% (−440 px) · y −20.9% (−226 px) · ×0.52 scale · roll +0.8° | ease-in-out | ||||||
| ↳ 34.95–35.20 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 35.20–36.54 s: push in | −0.4 · −15.1 | ×1.531 | y −20.1% (−217 px) · ×1.77 scale | ease-in-out | ||||||
| ↳ 36.54–36.87 s: pull out | +0.0 · −0.1 | ×0.827 | ×0.94 scale | ease-in | ||||||
| 14 | pull out | +0.0 · −4.5 | ×0.816 | y −7.2% (−78 px) · ×0.72 scale | ease-out | ▅▁▁▅ · 34%/s | ones | 0.69 | 0.24 | 0.90 |
| 15 | complex (shake 6.8%/s) | +4.1 · −4.4 | ×0.896 | x +22.2% (+426 px) · y −23.6% (−255 px) · ×0.56 scale | irregular | ▃▁▁▁▁▅▅▁▂▅▃ · 55%/s | ones | 0.09 | 0.13 | 0.74 |
| ↳ 38.83–39.58 s: pull out | +0.0 · −0.1 | ×0.868 | ×0.90 scale | ease-out | ||||||
| ↳ 39.58–40.58 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 40.58–41.67 s: pan left | +19.1 · −2.7 | ×0.997 | x +20.8% (+399 px) · y −3.0% (−32 px) | ease-in | ||||||
| ↳ 41.67–42.17 s: tilt down | +3.4 · −40.8 | ×0.994 | x +1.7% (+33 px) · y −20.4% (−221 px) | ease-out | ||||||
| ↳ 42.17–42.42 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 42.42–43.92 s: pull out | −0.2 · +0.0 | ×0.729 | ×0.62 scale | irregular | ||||||
| 16 | pull out (shake 3.3%/s) | −0.7 · −0.5 | ×0.960 | x −1.3% (−25 px) · y −0.9% (−10 px) · ×0.93 scale · roll −0.7° | ease-in | ▁▄▁▄ · 28%/s | ~17 fps | 0.22 | 0.10 | 0.86 |
| ↳ 44.04–44.46 s: pull out | +0.0 · +0.1 | ×0.911 | ×0.96 scale | ease-in | ||||||
| ↳ 44.46–44.88 s: push in | −3.1 · −2.3 | ×1.243 | x −1.3% (−25 px) · y −1.0% (−10 px) · ×1.09 scale · roll −0.8° | ease-out | ||||||
| ↳ 44.96–45.71 s: pull out | +0.0 · +0.1 | ×0.847 | ×0.88 scale | ease-in | ||||||
| 17 | pull out (shake 4.0%/s) | +0.0 · −8.7 | ×0.787 | y −10.2% (−110 px) · ×0.76 scale | ease-out | ▆▁▁▃ · 65%/s | ones | 0.28 | 0.22 | 0.81 |
| ↳ 45.80–46.46 s: pull out | +0.1 · −1.0 | ×0.664 | y −0.6% (−7 px) · ×0.76 scale | ease-out | ||||||
| ↳ 46.46–46.88 s: tilt down | +0.0 · −22.8 | ×0.985 | y −9.5% (−103 px) | ease-in | ||||||
| 18 | complex (shake 7.7%/s) ² | +5.6 · −5.3 | ×0.971 | x +19.8% (+381 px) · y −18.9% (−205 px) · ×0.90 scale · roll −2.2° | ease-in | ▂▁▁▁▁▁▄ · 96%/s | ones | 0.33 | 0.11 | 0.63 |
| ↳ 46.92–47.51 s: tilt down | +0.0 · −20.4 | ×1.000 | y −11.9% (−129 px) · roll −0.5° | ease-out | ||||||
| ↳ 47.51–48.34 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 48.34–48.84 s: complex | +0.0 · −3.4 | ×1.004 | y −1.7% (−19 px) · roll −1.6° | irregular | ||||||
| ↳ 48.84–49.09 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 49.09–49.51 s: complex | +0.7 · −6.5 | ×0.960 | y −2.7% (−29 px) · ×0.98 scale | irregular | ||||||
| ↳ 49.51–49.84 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| 19 | complex (shake 5.2%/s) | +8.7 · −4.5 | ×0.756 | x +10.5% (+202 px) · y −5.4% (−58 px) · ×0.71 scale | ease-out | ▆▁▁▃ · 66%/s | ones | 0.64 | 0.33 | 0.77 |
| 20 | static? · element moves ↓ | +0.0 · +0.0 | ×1.000 | none | hold | ▁▁▁▁▁ | ones | 0.74 | 0.21 | 0.38 |
| 21 | complex (shake 7.8%/s) | +3.1 · −2.3 | ×0.901 | x +11.8% (+226 px) · y −9.0% (−97 px) · ×0.67 scale · roll +1.0° | ease-out | ▅▂▃▁▁▁▁▃ · 74%/s | ones | 0.65 | 0.29 | 0.57 |
| ↳ 54.22–54.89 s: pull out | +1.4 · −11.7 | ×0.554 | x +0.9% (+17 px) · y −7.8% (−85 px) · ×0.67 scale | ease-out | ||||||
| ↳ 54.89–56.64 s: pan left | +12.1 · −0.6 | ×0.991 | x +21.1% (+406 px) · y −1.0% (−11 px) · ×0.98 scale · roll +1.5° | ease-out | ||||||
| ↳ 56.64–56.97 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 56.97–57.39 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 57.39–57.98 s: pan right | −17.6 · −0.3 | ×1.016 | x −10.2% (−197 px) | ease-in | ||||||
| 22 | complex (shake 5.9%/s) | −3.9 · −5.0 | ×0.995 | x −9.3% (−180 px) · y −12.0% (−129 px) · ×0.99 scale | ease-out | ▄▁▁▁▃ · 45%/s | ones | 1.00 | 0.12 | 0.73 |
| ↳ 58.06–58.56 s: pan right | −18.8 · +0.2 | ×0.978 | x −9.4% (−181 px) · ×0.99 scale | ease-out | ||||||
| ↳ 58.56–58.89 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 58.89–59.14 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 59.14–59.56 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 59.56–59.81 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 59.81–60.39 s: tilt down | +0.1 · −20.7 | ×1.000 | y −12.1% (−131 px) | ease-in | ||||||
| 23 | tilt down (shake 11.7%/s) | +0.0 · −19.9 | ×0.930 | y −34.0% (−368 px) · ×0.88 scale | irregular | ▇▅▅▄ · 29%/s | ones | 0.99 | 0.26 | 0.91 |
| ↳ 60.52–61.69 s: tilt down | +0.0 · −28.8 | ×0.992 | y −33.6% (−363 px) | irregular | ||||||
| ↳ 61.69–62.10 s: pull out | +0.0 · −1.1 | ×0.760 | ×0.89 scale | ease-in | ||||||
| 24 | pull out (shake 4.5%/s) | +0.5 · −4.0 | ×0.898 | x +2.0% (+39 px) · y −16.9% (−182 px) · ×0.63 scale · roll −1.1° | ease-out | ▅▁▁▁▂▂▁▁▁ · 73%/s | ones | 0.76 | 0.10 | 0.77 |
| ↳ 62.15–63.15 s: pull out | +2.1 · +4.0 | ×0.676 | x +2.1% (+40 px) · y +4.1% (+44 px) · ×0.68 scale | ease-out | ||||||
| ↳ 63.15–63.65 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 63.65–65.06 s: tilt down | −0.1 · −14.8 | ×0.998 | y −21.0% (−227 px) · roll −1.1° | ease-in-out | ||||||
| ↳ 65.06–65.98 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 65.98–66.32 s: pull out | +0.0 · +0.2 | ×0.827 | ×0.94 scale | ease-in | ||||||
| 25 | static? · element moves ↓ | +0.0 · +0.0 | ×1.000 | none | hold | ▁▁▁▁ | ones | 0.03 | 0.27 | 0.37 |
| 26 | complex (shake 2.5%/s) | +0.2 · −3.5 | ×0.969 | y −5.6% (−60 px) · ×0.95 scale · roll +0.9° | ease-in | ▃▂▁▆ · 16%/s | ones | 0.67 | 0.09 | 0.77 |
| ↳ 67.94–68.61 s: tilt down | +0.5 · −8.4 | ×1.021 | y −5.6% (−60 px) · ×1.01 scale · roll +0.9° | ease-in-out | ||||||
| ↳ 68.61–69.11 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 69.11–69.44 s: pull out | +0.0 · +0.1 | ×0.827 | ×0.94 scale | ease-in | ||||||
| 27 | pull out | −0.1 · −0.1 | ×0.695 | ×0.55 scale | ease-out | ▅▁▁▃ · 71%/s | ones | 0.72 | 0.43 | 1.00 |
| 28 | static · element moves ↓ | +0.0 · +0.0 | ×1.000 | none | hold | ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ | ones | 0.38 | 0.07 | 0.51 |
| 29 | complex (shake 5.8%/s) ² | +6.3 · +1.6 | ×0.933 | x +28.1% (+540 px) · y +7.0% (+76 px) · ×0.73 scale | ease-out | ▄▁▁▁▄▃▁▁▂ · 71%/s | ones | 0.27 | 0.24 | 0.55 |
| ↳ 79.45–80.37 s: pull out | +0.2 · −0.1 | ×0.656 | ×0.68 scale | ease-out | ||||||
| ↳ 80.37–81.37 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 81.37–83.46 s: pan left | +13.5 · +3.0 | ×1.079 | x +28.2% (+542 px) · y +6.3% (+69 px) · ×1.17 scale | ease-out | ||||||
| ↳ 83.46–83.88 s: pull out | −0.6 · +1.8 | ×0.820 | y +0.7% (+8 px) · ×0.92 scale | ease-in | ||||||
| 30 | complex (shake 4.6%/s) | +0.0 · −8.7 | ×0.879 | y −33.4% (−361 px) · ×0.61 scale | ease-out | ▅▁▁▄▁▁▁▂ · 75%/s | ~20 fps | 0.00 | 0.04 | 0.80 |
| ↳ 83.92–84.92 s: pull out | +0.0 · −0.5 | ×0.672 | y −0.5% (−6 px) · ×0.67 scale | ease-out | ||||||
| ↳ 84.92–86.17 s: tilt down | +0.0 · −26.2 | ×0.997 | y −32.8% (−354 px) | ease-in-out | ||||||
| ↳ 86.17–87.09 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 87.09–87.67 s: pull out | +0.0 · −0.2 | ×0.852 | ×0.91 scale | ease-in |
² Shots 11, 18, 29: a second layer moves differently (elements over a background); the numbers follow the dominant layer.
Element motion (measured): in these shots the frame holds still and something inside it moves: a card, a UI panel, a product, a word. Region = where it moves (x · y · w · h % of the frame); numbers as above, for the moving region; "moving" = share of the shot in motion; ↳ = the move changes direction.
| # | region x·y·w·h % | element move | x · y (%/s) | zoom (/s) | total while moving | ease | speed · peak | moving | conf |
|---|---|---|---|---|---|---|---|---|---|
| 4 | 46 · 43 · 15 · 30 → 18 · 39 · 67 · 31 | complex | −9.4 · +0.3 | ×0.899 | x −30.6% (−588 px) · y +1.0% (+10 px) · ×0.71 scale · roll −6.9° in 3.3 s | irregular | ▄▂▆▅▆▂▅ · 31%/s | 0.99 | 0.73 |
| ↳ 3.71–4.05 s: scale down | −2.5 · +1.6 | ×0.755 | x −0.8% (−16 px) · y +0.5% (+6 px) · ×0.91 scale · roll −2.2° | ease-in | |||||
| ↳ 4.05–4.63 s: complex | −2.6 · +0.5 | ×0.967 | x −1.5% (−29 px) · ×0.98 scale · roll −3.0° | ease-out | |||||
| ↳ 4.63–6.30 s: slide left | −16.8 · +0.1 | ×0.953 | x −28.0% (−538 px) · ×0.92 scale · roll −1.6° | irregular | |||||
| ↳ 6.30–6.96 s: scale down | −0.4 · +0.1 | ×0.797 | ×0.86 scale | ease-in | |||||
| 6 | 32 · 44 · 24 · 28 → 33 · 45 · 33 · 47 | scale down | −0.5 · −0.4 | ×0.814 | ×0.87 scale · roll +0.8° in 0.7 s | ease-out | █▆▁▁ · 33%/s | 0.94 | 0.74 |
| ↳ 10.64–11.30 s: scale down | −0.5 · −0.4 | ×0.814 | ×0.87 scale · roll +0.8° | ease-out | |||||
| 20 | 7 · 40 · 14 · 21 → 55 · 21 · 34 · 56 | complex | −8.6 · +0.1 | ×0.851 | x −15.8% (−304 px) · ×0.74 scale in 1.8 s | ease-out | ▄▁▄▁▁ · 68%/s | 0.72 | 0.72 |
| ↳ 51.76–52.68 s: scale down | −0.3 · +0.1 | ×0.763 | ×0.78 scale | ease-out | |||||
| ↳ 52.76–53.34 s: slide left | −26.6 · +0.0 | ×0.992 | x −15.5% (−298 px) | ease-out | |||||
| ↳ 53.34–53.76 s: static | +0.0 · +0.0 | ×1.000 | none | hold | |||||
| ↳ 53.76–54.10 s: scale down | −0.1 · +0.1 | ×0.881 | ×0.96 scale | ease-in | |||||
| 25 | 9 · 16 · 26 · 56 → 6 · 10 · 35 · 59 | scale down? | −2.5 · −5.9 | ×0.786 | x −3.7% (−72 px) · y −8.8% (−95 px) · ×0.70 scale · roll −2.2° in 1.5 s | ease-out | ▆▂▁▂ · 70%/s | 0.97 | 0.49 |
| ↳ 66.40–66.90 s: scale down | −3.8 · −1.9 | ×0.509 | x −1.9% (−36 px) · y −0.9% (−10 px) · ×0.71 scale · roll −2.3° | ease-out | |||||
| ↳ 66.90–67.57 s: complex | −2.2 · +1.2 | ×0.966 | x −1.4% (−28 px) · y +0.8% (+9 px) · ×0.98 scale | ease-out | |||||
| ↳ 67.57–67.90 s: slide up | −1.2 · −26.1 | ×1.000 | y −8.7% (−94 px) | ease-in | |||||
| 28 | 17 · 32 · 54 · 37 → 19 · 40 · 62 · 36 | complex | −5.4 · −2.8 | ×0.923 | x −31.1% (−597 px) · y −16.1% (−174 px) · ×0.63 scale · roll −4.8° in 5.8 s | linear | ▅▁▁▁▁▁▃▂▃▂▂▁▃▁▁▂ · 57%/s | 0.69 | 0.70 |
| ↳ 71.24–72.16 s: scale down | +0.9 · +0.0 | ×0.711 | x +0.8% (+16 px) · ×0.73 scale | ease-out | |||||
| ↳ 72.16–73.82 s: static | +0.0 · +0.0 | ×1.000 | none | hold | |||||
| ↳ 73.82–74.99 s: slide up | −0.3 · −13.2 | ×1.038 | y −15.4% (−166 px) · ×1.04 scale · roll −1.0° | irregular | |||||
| ↳ 74.99–75.24 s: complex | −3.3 · −2.2 | ×1.052 | x −0.8% (−16 px) · y −0.6% (−6 px) · ×1.01 scale · roll −1.8° | linear | |||||
| ↳ 75.24–78.16 s: slide left | −10.5 · −0.1 | ×0.976 | x −30.8% (−591 px) · ×0.93 scale · roll −2.1° | irregular | |||||
| ↳ 78.16–78.91 s: static | +0.0 · +0.0 | ×1.000 | none | hold |
Focus (measured): shot 1: sharp inside 0 · 0 · 100 · 100, no defocus (deep focus) · shot 2: sharp inside 0 · 29 · 100 · 43, no defocus (deep focus) · shot 3: sharp inside 33 · 71 · 50 · 29, about 6 px blur outside at 1080p · shot 4: sharp inside 17 · 29 · 83 · 71, no defocus (deep focus) · shot 5: sharp inside 0 · 14 · 100 · 86, no defocus (deep focus) · shot 6: sharp inside 17 · 29 · 58 · 43, no defocus (deep focus) · shot 7: sharp inside 0 · 0 · 100 · 100, no defocus (deep focus) · shot 8 12.72–14.89 s: sharp inside 0 · 0 · 100 · 100, no defocus (deep focus) · shot 8 14.89–16.81 s: sharp inside 0 · 0 · 100 · 100, no defocus (deep focus) · shot 9: sharp inside 0 · 0 · 100 · 100, no defocus (deep focus) · shot 10: sharp inside 0 · 0 · 100 · 100, no defocus (deep focus) · shot 11: sharp inside 0 · 0 · 100 · 86, no defocus (deep focus). Box = x · y · w · h % of the frame. In 2D, blur the layers outside the box by that many px; in 3D, set the focus distance on the box and open the aperture until the background blur matches.
… 1 more shots in the timeline JSON.
Biggest moves: shot 7: tilt down, content −86.7% of height over 1.38 s, ease-out · shot 15: complex over 5.38 s, irregular · shot 13: complex over 4.42 s, irregular. Locked-off shots: 4 of 31; 2 more could not be tracked (shown as "static?" or "not measured": check the sheets). Animation cadence: a new picture every frame (on ones): 23.3 unique frames per second of 23.976 while things move (held-frame share 0.03, 1356 moving frames). Match it, or the motion will feel smoother or choppier than the reference.
Transitions (measured)
30 transitions: 25 cuts · 2 boundaries with no visible cut (continuous) (7–12 f) · 1 whip (4 f) · 1 zoom (2 f) · 1 fade from white (8 f). Frames are at 23.976 fps; a transition of n frames lasts n ÷ 23.976 s. Hard cuts are reliable; the blur types (whip versus zoom) are the weakest labels, so read their confidence and check the sheets.
Hard cuts (0 frames), at frames 26, 63, 89, 168, 255, 403, 709, 755, 886, 925, 1054, 1097, 1125, 1210, 1239, 1300, 1392, 1449, 1490, 1592, 1629, 1667, 1905, 2012, 2104 (@23.976).
| into # | at (s) | frame @23.976 | type | length | conf |
|---|---|---|---|---|---|
| 7 | 11.35 | 272 | no visible cut (continuous) | 7 f · 0.29 s | 0.30 |
| 8 | 12.72 | 305 | whip horizontal | 4 f · 0.17 s | 0.85 |
| 10 | 19.02 | 456 | zoom out | 2 f · 0.08 s | 0.70 |
| 13 | 32.53 | 780 | fade from white | 8 f · 0.33 s | 1.00 |
| 28 | 71.15 | 1706 | no visible cut (continuous) | 12 f · 0.50 s | 0.30 |
Changes inside shots (the picture changes without a cut: a reframe, a hand-off behind black, a mask):
| shot | at (s) | frame @23.976 | change |
|---|---|---|---|
| 5 | 8.18 | 196 | focus pull over 26 f: comes into focus (edge sharpness x2.0) |
| 8 | 14.89 | 357 | unknown: brightness step 0.156 -> 0.243 luma (light change?) |
| 31 | 89.97 | 2157 | cut: hard cut that v1 did not split on |
What each shot shows (inferred from the sheets)
| # | Type | Framing | What's on screen | Text / overlay |
|---|---|---|---|---|
| 1–2 | Simulation | Low close then wide | Machine clears the site edge | Question |
| 3–5 | Presenter/graphic/site | Medium, icon card, low wide | Field repair cost | Phrase captions |
| 6–8 | Logo/simulation | Centre, top oblique, side | Test scene and code | Brand bridge and actual result |
| 9–11 | Graphics/presenter | Centre card, medium split, card | Manual burden | Question marks and repeated failure |
| 12–18 | Presenter/UI/simulation | Medium and full-frame panels | Input to variable setup | Names, authentic labels |
| 19–28 | Presenter/data/UI | Medium, large numerals, test grid | Scale, failure, fix, validation | Verified numbers |
| 29–31 | Presenter/graphics/card | Medium, map, centre logo | Buyer benefit and destination | Closing line, text URL |
Plate 06
Visual style guide
- Look (inferred): The reference moves between warm dusty simulation, dim warm interviews, nearly black UI, pale editorial cards, and saturated proof cards. Map those roles to
{{BRAND_BG}}and{{BRAND_ACCENTS}}. - Graphics and overlays (inferred): Flat pixel icons, dot grids and oversized numerals sit in clean fields; important words appear in short phrase groups.
- Transitions (inferred): Mostly cuts; preserve the measured whip, zoom and white fade only where they clarify a handoff.
- Branding and end card (inferred): Shot 31 changes picture at frame 2157 to a plain
{{LOGO}}and{{CTA_URL}}text card; it stays visible through the final frame without a fade.
Grade and shoot card (inferred)
Shoot two presenter clips, a real site context clip, and authentic {{PRODUCT}} screen recordings. Presenter: 35–50 mm full-frame lens at eye height, level camera, chest-up; f/2.8–4 for soft corridor depth. Key: 4500 K large soft source 45° off-axis; fill 1.5–2 stops under, practical warm background. Grade: moderate contrast, lifted shadows, restrained saturation, warm midtones; preserve dark garment detail. Capture 4K for the measured reframes and record isolated 48 kHz dialogue and room tone. For simulation, Blender Principled BSDF: painted shell roughness 0.45, metallic 0.15, IOR 1.45, coat 0.2; glass roughness 0.08, transmission 0.85; world strength 0.35, Cycles 64 samples, 35 mm camera at low panel height. The 2D equivalent is layered CSS extrusion of 18 px, blur 6 px outside shot 3's 33 · 71 · 50 · 29 focus box, 24 px warm glow at 0.18 opacity, and a 20% vignette reaching full strength at the frame edge.
:root { --brand-bg: {{BRAND_BG}}; --brand-accent: {{BRAND_ACCENTS}}; }
.proof-card { background: var(--brand-bg); color: white; border: 0; border-radius: 0; box-shadow: none; }
.ui-panel { background: color-mix(in srgb, var(--brand-bg) 88%, white); border: 1px solid rgba(255,255,255,.16); border-radius: 5px; }
.sim-glow { filter: drop-shadow(0 0 24px rgba(255,255,255,.18)); }
At a glance
- Type scale (cap px): 179–205 · 126 · 107 · 85–92 · 61–69 · 50–53 (6 levels) among the text above.
- Phone minimum: cap height ≥ 2% of frame width = 38 px at 1920×1080
- Whole film (time-weighted):
#12121236% ·#E9E8EC13% ·#352A219% ·#0B68CF9% ·#F052247% ·#7270716%. - Curve facts: average 0.33 · darkest 0.02 at 38.8 s · brightest 0.91 at 17.0 s · sudden changes at 3.75 s (darker by 0.18), 7.00 s (brighter by 0.26), 10.75 s (darker by 0.30), 17.00 s (brighter by 0.67), 19.00 s (darker by …
For agents: Type · Type spec · Palette by shot · Brightness curve · Layout boxes
The measured data and build specs agents work from. Over MCP they get it all, with the full timeline as JSON.
Type (measured)
Sizes are cap height (the height of a capital letter) in px at the 1080p deliverable, 1920×1080. Font size ≈ cap ÷ 0.71 for a typical sans (Inter 0.73, Geist 0.71, SF Pro 0.70, Instrument Sans 0.72): check your own font's cap-height ratio. Cap heights are estimated from text-recognition boxes (median error about 11% on real text; text under about 13 px at 1080p and non-Latin scripts are not read). Box = x · y · w · h as % of the frame, from the top-left.
| text | shot | on screen (s) | cap px | ≈ font px | cap % of height | box x·y·w·h % | position |
|---|---|---|---|---|---|---|---|
| "On a real site" | 3 | 3.0–3.5 | 92 | 130 | 8.5 | 12 · 27 · 32 · 11 | left, upper |
| "Your engineers" | 9 | 17.0–18.5 | 61 | 86 | 5.6 | 34 · 41 · 32 · 8 | centre, middle |
| "→ allocate" | 10 | 22.0–26.5 | 69 | 97 | 6.4 | 69 · 45 · 19 · 11 | right, middle |
| "and watch the robot" | 11 | 30.0–31.0 | 62 | 87 | 5.7 | 55 · 44 · 39 · 7 | right, middle |
| "Max Kern" | 14 | 37.5–38.5 | 107 | 151 | 9.9 | 9 · 62 · 29 · 12 | left, lower third |
| "413 → 416 (counting)" | 17 | 46.0–46.5 | 203 | 286 | 18.8 | 2 · 39 · 25 · 21 | left, middle (inside 5% of the edge) |
| "400" | 20 | 52.0–52.5 | 205 | 289 | 19.0 | 8 · 40 · 30 · 21 | left, middle |
| "Mornings waiting" | 21 | 55.5–56.5 | 61 | 86 | 5.6 | 9 · 8 · 36 · 8 | left, top |
| "Here 44 minutes" | 22 | 58.5–60.0 | 126 | 177 | 11.7 | 8 · 71 · 62 · 14 | centre, lower third |
| "44 minutes" | 23 | 60.5–62.0 | 179 | 252 | 16.6 | 7 · 22 · 69 · 22 | centre, upper |
| "400 worlds" | 23 | 61.0–62.0 | 187 | 263 | 17.3 | 7 · 42 · 71 · 22 | centre, middle |
| "16 machines" | 23 | 61.5–62.0 | 184 | 259 | 17.0 | 8 · 69 · 74 · 21 | centre, lower third |
| "Zynoptes traced it to" | 24 | 64.5–66.0 | 53 | 75 | 4.9 | 8 · 24 · 38 · 8 | left, upper |
| "FIXED CODE" | 26 | 68.5–69.0 | 87 | 123 | 8.1 | 33 · 24 · 35 · 9 | centre, upper |
| "You ship to more sites," | 30 | 86.0–87.5 | 50 | 70 | 4.6 | 6 · 41 · 36 · 8 | left, middle |
| "the world does." | 31 | 88.5–89.5 | 89 | 125 | 8.2 | 6 · 78 · 40 · 10 | left, bottom |
| "Break it before" | 31 | 88.5–89.5 | 85 | 120 | 7.9 | 6 · 67 · 38 · 9 | left, lower third |
| "zynoptes." | 31 | 90.0–93.5 | 66 | 93 | 6.1 | 44 · 41 · 25 · 9 | centre, middle |
Plus 127 smaller or briefer text items, cap 10–95 px, mostly labels inside interfaces: all in the timeline JSON.
Type scale (cap px): 179–205 · 126 · 107 · 85–92 · 61–69 · 50–53 (6 levels) among the text above.
Left out: 23 reads that are not clean words or were seen in a single frame ("fixes it,", "package.xml", "ZVNOPTES."…): blurred, moving or partly hidden text the recognizer misread. They stay in the timeline JSON, not in the type scale.
Phone minimum: cap height ≥ 2% of frame width = 38 px at 1920×1080. Why: in a phone feed the film fills the screen width, about 390 pt, and 2% of that is 7.8 pt, the cap height of 11 pt text, Apple's smallest recommended text size. Words the viewer must read go at or above it; smaller text can only be decoration. Below it in the reference: 100 of the smaller items. Size these up in your version, or treat them as decoration.
Type spec (inferred)
Assume cap height = 0.71 × font size. Use {{BRAND_FONT}}; Instrument Sans is a free fallback. Readable content is never below the 38 px cap phone minimum; smaller UI marks are texture only.
| Level | Cap px at 1080p | Font size | Weight · case · tracking | Colour pair | Motion |
|---|---|---|---|---|---|
| Hero numerals | 179–205 | 252–289 px | 400 · numerals · −0.04 em | {{BRAND_BG}} / light text or accent | Count or reveal over 12 f, ease-out cubic-bezier(.2,.7,.2,1) |
| Result phrase | 126 | 177 px | 400 · sentence · −0.03 em | dark / light | 8 f opacity rise |
| Presenter name | 107 | 151 px | 400 · title · −0.03 em | dark plate / light | 8 f slide up |
| Editorial claim | 85–92 | 120–130 px | 400 · sentence or upper · −0.025 em | light or dark / accent | 6–10 f word reveal |
| Section phrase | 61–69 | 86–97 px | 500 · sentence · −0.02 em | dark / light | 6 f opacity rise |
| Supporting claim | 50–53 | 70–75 px | 400 · sentence · −0.015 em | light / dark | 6 f opacity rise |
Palette by shot (measured)
Colours measured on the frames, with their share of the frame; luma 0 = black, 1 = white. These are the reference's brand colours: map them onto {{BRAND_BG}} and {{BRAND_ACCENTS}} by role (background, surface, accent), don't reuse them as the format. Neighbouring shots with the same palette share a row.
| # | luma mean · p95 | colours (share of frame) | highlights (bright pixels) |
|---|---|---|---|
| 1–2 | 0.37 · 0.97 | #241918 49% · #DAC9C9 17% · #F3E5D7 15% · #86695F 10% · #4A3229 10% | #FDF4E5 hue 86° ≈5710 K 38% · #FDF6E5 hue 93° ≈5720 K 36% · #FEF7EB ≈5860 K 26% |
| 3–8 | 0.21 · 0.86 | #141111 45% · #4B3B39 17% · #CCBBBB 16% · #907D75 13% · #7B4F3C 10% | #DBCCCB ≈5860 K 54% · #CCC2C9 ≈6430 K 26% · #E6D4C6 hue 68° ≈5360 K 20% |
| 9 | 0.90 · 0.92 | #E9E8ED 92% · #CFCBCF 3% · #9F9FA3 3% · #EBB3A6 1% · #ED8D73 1% | #EAE9EE ≈6680 K 94% |
| 10 | 0.20 · 0.55 | #121212 42% · #352A21 23% · #727071 15% · #6A4330 13% · #B18E5D 6% | #C8AE78 hue 87° ≈4050 K 69% · #B4B4B3 ≈6460 K 23% · #70CCA4 hue 162° tinted 8% |
| 11 | 0.43 · 1.00 | #EF5225 56% · #5A2B20 24% · #FBF7F6 9% · #873622 6% · #DF9984 5% | #FFFFFF ≈6500 K 100% |
| 12 | 0.23 · 0.58 | #13110E 33% · #332C24 25% · #767070 20% · #5D3926 15% · #AB8758 6% | #C7B07E hue 88° ≈4210 K 52% · #D7D6D8 ≈6540 K 32% · #B5B4B3 ≈6410 K 15% |
| 13 | 0.26 · 0.70 | #0C0C0C 69% · #E8E7EC 22% · #2B2B2B 5% · #717172 3% · #E95C34 1% | #E9E8ED ≈6680 K 74% · #58595A ≈6730 K 25% |
| 14–15 | 0.15 · 0.59 | #090909 72% · #1E1F21 18% · #2E3B30 8% · #3B3C3D 3% | #575A58 ≈6570 K 78% · #939596 ≈6690 K 21% |
| 16 | 0.38 · 0.58 | #646468 37% · #774D39 23% · #6A5949 23% · #493535 10% · #D1BCB9 7% | #E5D4BF hue 76° ≈5170 K 49% · #978D81 hue 78° ≈5360 K 31% · #6B6C6F ≈6850 K 20% |
| 17 | 0.12 · 0.64 | #0F0F0F 87% · #BFBFBF 5% · #8C8C8C 3% · #333333 3% · #5C5C5C 2% | #FFFFFF ≈6500 K 81% · #FEFEFE ≈6500 K 19% |
| 18 | 0.51 · 0.94 | #E3E4EB 46% · #0F100F 22% · #664130 17% · #35332D 13% · #E55A34 3% | #FFFFFF ≈6500 K 66% · #EAE9EE ≈6680 K 33% |
| 19 | 0.26 · 0.68 | #1C1815 39% · #4C3224 27% · #716A6A 22% · #AD8658 11% · #E6E5EB 2% | #C6AE7C hue 87° ≈4170 K 50% · #EAE9ED ≈6660 K 42% · #BFBDBB ≈6320 K 7% |
| 20 | 0.41 · 0.55 | #0B68CE 45% · #F0572A 37% · #2979D1 12% · #577BA4 3% · #C6846F 3% | #FBFDFC ≈6540 K 77% · #D5E9F4 hue 240° ≈7870 K 20% |
| 21 | 0.48 · 0.83 | #E7E6EA 31% · #5A5553 19% · #17130F 17% · #4F321D 16% · #818386 16% | #EAE9EE ≈6680 K 81% · #A5A6A9 ≈6700 K 12% · #B8B8B9 ≈6570 K 7% |
| 22–23 | 0.18 · 0.57 | #575250 27% · #181612 27% · #452D1C 19% · #7F8184 19% · #7A451C 8% | #A9AAAD ≈6690 K 42% · #E5E4E6 ≈6560 K 38% · #BFC0C2 ≈6610 K 20% |
| 24 | 0.45 · 0.49 | #F05224 79% · #E25931 10% · #F0724D 7% · #903E26 3% · #966352 2% | #F9F0E8 ≈5900 K 51% · #DBB6A7 hue 49° ≈4530 K 31% · #F07F5B hue 44° ≈2010 K 18% |
| 25 | 0.50 · 0.92 | #2E2E2D 44% · #E4E4E8 27% · #90B4DA 21% · #1B6AD5 5% · #989699 3% | #EEEDE7 ≈6250 K 61% · #E7F0F4 ≈7030 K 27% · #E3F3E8 hue 153° ≈6610 K 12% |
| 26 | 0.88 · 0.92 | #E8E7EC 90% · #939295 5% · #79A6DC 2% · #B5CAE6 2% | #EBEAEF ≈6690 K 83% · #EAEBED ≈6620 K 11% · #E7EBF5 ≈7140 K 6% |
| 27 | 0.32 · 0.55 | #566346 33% · #534B4C 24% · #856F6C 23% · #101110 17% · #0B66CB 2% | #AE978E hue 49° ≈4960 K 52% · #949B73 hue 115° tinted 41% · #C6C7C2 ≈6300 K 7% |
| 28 | 0.38 · 0.52 | #0B68CF 90% · #C8DCF0 2% · #3E86D5 2% · #81B0E2 2% · #426690 2% | #FCFDFD ≈6540 K 84% · #0C69CF hue 284° tinted 10% · #85A7C6 hue 261° ≈12600 K 6% |
… 3 more rows (shots 29–31) in the timeline JSON.
Whole film (time-weighted): #121212 36% · #E9E8EC 13% · #352A21 9% · #0B68CF 9% · #F05224 7% · #727071 6%.
Brightness curve (measured)
Mean luma per 1 s, one character each, grouped in tens; p95 = the bright highlights. Scale: ▁ = 0 (black) → █ = 1.0 (white); luma runs 0–1.
0s 10s 20s 30s 40s 50s 60s 70s 80s 90s
mean ▃▄▃▂▁▁▁▃▃▃ ▃▂▃▄▂▂▂██▂ ▂▂▂▂▂▂▂▂▂▃ ▄▃▅▃▂▂▁▂▂▁ ▁▁▁▁▄▃▂▅▅▅ ▃▃▄▄▃▄▅▅▃▃ ▂▁▃▄▄▄▄▅█▆ ▃▃▄▄▄▃▃▄▄▃ ▂▃▄▄███▆▂▂ ▁▁▁▁
p95 ██▇▄▁▁▅▇▇█ ▆▄▇▇▆▇▇██▅ ▅▅▄▄▅▄▅▅▅▆ █▇▆██▆▂▅▄▂ ▃▃▃▂▄▅▇███ ▇▅▅▅▅▇██▆▅ ▃▅▆▅▄▄▆██▆ ▅▅▆▆▅▃▃▄▅▅ ▅▆█████▇▄▄ ▁▁▁▁
Curve facts: average 0.33 · darkest 0.02 at 38.8 s · brightest 0.91 at 17.0 s · sudden changes at 3.75 s (darker by 0.18), 7.00 s (brighter by 0.26), 10.75 s (darker by 0.30), 17.00 s (brighter by 0.67), 19.00 s (darker by 0.67), 31.50 s (darker by 0.20), 32.50 s (brighter by 0.68), 33.25 s (darker by 0.23).
Layout boxes (inferred)
| Element | Shots | Box x · y · w · h (%) | Source · confidence | Notes |
|---|---|---|---|---|
| Opening cost phrase | 3 | 12 · 27 · 32 · 11 | measured text box · high | Keep off face |
| Guessing claim | 9 | 34 · 41 · 32 · 8 | measured text box · high | Centre card |
| Main variable word | 10 | 69 · 45 · 19 · 11 | measured text box · high | Split composition |
| Big count | 20 | 8 · 40 · 30 · 21 | measured text box · high | Left of dot grid |
| Three proof lines | 23 | 7 · 22 · 69 · 22; 7 · 42 · 71 · 22; 8 · 69 · 74 · 21 | measured text boxes · high | Stacked |
| Closing claim | 31 | 6 · 67 · 38 · 9; 6 · 78 · 40 · 10 | measured text boxes · high | Before internal cut |
| End-card wordmark | 31 | 44 · 41 · 25 · 9 | measured text box · high | Replace with {{LOGO}} |
| End-card URL | 31 | 39 · 54 · 25 · 5 | sheet tile at 1:32.0 · medium | Plain text {{CTA_URL}}; raise to phone minimum |
End card (inferred): {{BRAND_BG}} field, {{LOGO}} around the measured wordmark box, {{CTA_URL}} below at ≥38 px cap; card begins at the internal cut, frame 2157, and runs to the end.
Plate 07
Voice and delivery
Measured: The v1 transcript counts 240 words, 156 wpm overall and 204 wpm during speech; plate 8's aligned transcript counts 228 words covering 71%. These methods differ, so budget from the 228 aligned words. The delivery uses frequent short pauses and medium-register, animated pitch.
Voice direction (inferred): Two distinct technical presenter archetypes speak as people explaining their own work. Start with curiosity, move briskly through the field cost, leave air before the large proof numbers, and land the destination plainly. Record each voice cleanly; avoid imitation of the original speakers.
Plate 08
Sound design
- Music (inferred): A quiet tonal electronic bed supports dense speech. Keep its rhythm perceptible but never steer the cuts to it.
- Sound effects (inferred): A soft physical scrape in beat 1, a short whip at frame 305, restrained interface clicks around the workflow, and low impact accents at the proof cards. Leave cues marked “voice?” as voice, not effects.
- Silence and space (inferred): Thin the bed before beat 7's numbers and let the last voice line clear before the card settles.
At a glance
- Speech: words cover 71% of the film (228 words, v1 transcript): narration-led: the words carry it, cut on phrases and keep effects off the stressed words.
- Tempo: 107.67 BPM, confidence 0.64 (weak: half or double time is possible) · first downbeat 2.380 s (bar start confidence 0.19, uncertain) · beat 0.5573 s · bar of 4 = 2.229 s.
- Key: unclear: D major or G minor (confidence 0.00); pick your own.
- Loudness of the reference (measured): −14.6 LUFS integrated, true peak 0.3 dBTP, range 4.6 LU. That is how this film was mastered, not a target (its peak is above −1 dBTP: don't copy that).
For agents: Sound grid · Original music bed
The measured data and build specs agents work from. Over MCP they get it all, with the full timeline as JSON.
Sound grid (measured)
Speech: words cover 71% of the film (228 words, v1 transcript): narration-led: the words carry it, cut on phrases and keep effects off the stressed words.
Tempo: 107.67 BPM, confidence 0.64 (weak: half or double time is possible) · first downbeat 2.380 s (bar start confidence 0.19, uncertain) · beat 0.5573 s · bar of 4 = 2.229 s.
Beat grid in frames. Tracked beats, not a constant grid (the tempo drifts): use the listed times, not a formula.
| per beat | per bar | first downbeat (frame) | downbeats (frame), first 8 | |
|---|---|---|---|---|
| 23.976 fps (this film) | 13.36 f | 53.45 f | 57 | 57 · 111 · 159 · 210 · 263 · 318 · 371 · 423 … |
| 30 fps | 16.72 f | 66.88 f | 71 | 71 · 138 · 199 · 263 · 330 · 398 · 464 · 529 … |
| 60 fps | 33.44 f | 133.75 f | 143 | 143 · 277 · 398 · 527 · 659 · 797 · 928 · 1059 … |
Beats in seconds: 1.196 · 1.823 · 2.380 · 2.844 · 3.448 · 3.994 · 4.615 · 5.224 · 5.730 · 6.211 · 6.629 · 7.198 … (165 in all, audio.tempo.beats in the timeline JSON).
Cuts on the beat: 5 of 30 land within ±1.5 frames of a beat; chance alone would give about 6.7, so the edit does not follow the beat.
Key: unclear: D major or G minor (confidence 0.00); pick your own.
Sections (by energy of the whole mix, voice included):
| section | time (s) | shots | level (RMS) |
|---|---|---|---|
| steady | 0.0–11.0 | 1–6 | −13 dB |
| steady | 11.0–18.5 | 6–9 | −13 dB |
| steady | 18.5–27.0 | 9–10 | −14 dB |
| steady | 27.0–36.0 | 10–13 | −15 dB |
| steady | 36.0–57.0 | 13–21 | −15 dB |
| steady | 57.0–62.0 | 21–23 | −18 dB |
| steady | 62.0–72.0 | 23–28 | −16 dB |
| steady | 72.0–81.5 | 28–29 | −14 dB |
| outro | 81.5–93.7 | 29–31 | −16 dB |
Energy map (RMS per 1 s, ▁ = −48 dB → █ = −10 dB):
█▇▇███▆███ ▇█▇█▇▇▇███ ▇██▇▇█▇▇▆█ ▇▇▇█▇▇▆█▆█ ▇▇▅▇█▆▅█▇▇ ▇██▆▇▇▇▆▇█ ▅▅██▇▇▆▇▇▅ ▄▇█▇▇█▇▇▇▇ █▇▇▆█▇▇▆█▆ █▇▂▁
Cue sheet (94 cues: 21 at a cut, 31 on a beat; the 24 strongest shown). "On screen" names the picture event the cue hits within ±3 frames (a cut, a jump, a move starting, a line of text appearing, a brightness step), or says there is none:
| t (s) | frame @23.976 | shot | kind | strength | on screen (±3 f) | on beat |
|---|---|---|---|---|---|---|
| 2.44 | 58 | 2 | unknown | 0.93 | picture gets darker | ✓ |
| 12.72 | 305 | 8 | tonal | 0.98 | whip into shot 8 | ✓ |
| 14.65 | 351 | 8 | tonal · voice? | 0.96 | "Ask a question, plan…" appears | |
| 20.62 | 494 | 10 | tonal | 1.00 | no visible event | |
| 24.45 | 586 | 10 | tonal | 0.96 | no visible event | |
| 26.63 | 639 | 10 | tonal | 0.94 | no visible event | |
| 28.51 | 684 | 10 | impact · voice? | 1.00 | "Fix one bug" appears | |
| 29.75 | 713 | 11 | impact · voice? | 1.00 | picture gets brighter | ✓ |
| 30.70 | 736 | 11 | unknown · voice? | 1.00 | "break again." appears | |
| 31.51 | 755 | 12 | unknown | 1.00 | cut into shot 12 | ✓ |
| 32.60 | 782 | 13 | unknown | 1.00 | fade from white into shot 13 | ✓ |
| 42.42 | 1017 | 15 | click | 1.00 | camera pull out starts (shot 15) | ✓ |
| 42.56 | 1020 | 15 | unknown | 1.00 | ", "ownership": "owned"}" appears | |
| 42.84 | 1027 | 15 | tonal · voice? | 1.00 | "The crawler grooms its…" appears | |
| 46.93 | 1125 | 18 | unknown · voice? | 0.98 | cut into shot 18 | ✓ |
| 49.11 | 1177 | 18 | hit · voice? | 0.92 | camera complex starts (shot 18) | ✓ |
| 51.57 | 1236 | 19 | tonal | 0.96 | picture gets brighter | |
| 55.33 | 1327 | 21 | tonal | 0.96 | "Mornings waiting" appears | |
| 61.44 | 1473 | 23 | tonal | 0.99 | "16 machines" appears | |
| 61.72 | 1480 | 23 | tonal | 1.00 | camera pull out starts (shot 23) | ✓ |
| 67.99 | 1630 | 26 | tonal · voice? | 1.00 | "including the dew slide." appears | |
| 70.17 | 1682 | 27 | tonal | 0.97 | no visible event | |
| 83.06 | 1991 | 29 | tonal · voice? | 0.96 | "a customer site." appears | |
| 91.74 | 2200 | 31 | click · voice? | 1.00 | no visible event |
"voice?" = the cue sits on a spoken word (10 of 24): that is the narration, not an effect to copy.
Loudness of the reference (measured): −14.6 LUFS integrated, true peak 0.3 dBTP, range 4.6 LU. That is how this film was mastered, not a target (its peak is above −1 dBTP: don't copy that).
Loudness targets for your version (common practice per platform; the brief overrides them):
| where it plays | integrated | true peak max | note |
|---|---|---|---|
| YouTube | −14 LUFS | −1 dBTP | louder masters are turned down; quieter ones are not turned up |
| X, LinkedIn (this reference) | −14 LUFS | −1 dBTP | no published normalisation: the file plays as mastered |
| TikTok, Reels, Shorts | −14 to −10 LUFS | −1 dBTP | played on phone speakers; short-form is often mastered hotter |
| Website or app (autoplay) | −16 LUFS | −1 dBTP | often starts muted; keep the unmuted level comfortable |
| Broadcast (EBU R128) | −23 LUFS | −1 dBTP | only when the brief asks for it |
Original music bed (inferred)
Compose at 108 BPM in A minor; the measured 107.67 BPM is weak and the cut pattern does not follow it, so treat this as an undercurrent. Use soft sub bass, filtered analogue pulse, glassy two-note synth and sparse brushed noise. Shots 1–8: low pulse and scrape; 9–18: thin bass under explanation; 19–28: wider chord and restrained low hits; 29–31: remove rhythm and let a single chord decay. Cue the whip at frame 305, card accents at frames 713 and 755, a click at 1017, and the validation turn on beat 8's result reveal; duck any accent beneath stressed spoken words. Music-model prompt: “Original restrained minor-key electronic bed, 108 BPM, soft sub and glass notes, plenty of speech space, sparse proof accents, no trailer drums or borrowed melody.”
Plate 09
Packaging
- Title (inferred):
Show {{PRODUCT}} facing {{FAILURE}} before it reaches a customer. - Cover (inferred): Freeze the near-failure at the edge, one short question in
{{BRAND_FONT}}, brand roles from plate 15. - Post copy (inferred): One field risk, one verifiable test result, then
{{CTA_URL}}as plain text. - Audience signals: The captured post has about 185k views; replay and completion data are unavailable.
Plate 10
Script template
The narration leads. Write about 225–240 words for the full cut, with quick spoken runs near 200 wpm and deliberate pauses before proof numbers. Captions follow clauses and stay above the phone minimum.
[beat 1 · shots 1–3 · ~12 words] See {{PRODUCT}} encounter {{FAILURE}}? State the field consequence.
[beat 2 · shots 4–5 · ~21 words] Name the manual response and its cost.
[beat 3 · shots 6–8 · ~17 words] State what {{PRODUCT}} tests and what changed.
[beat 4 · shots 9–11 · ~38 words] Explain the old burden, then its repeat failure.
[beat 5 · shots 12–13 · ~13 words] First-person credibility in one compact sentence.
[beat 6 · shots 14–18 · ~33 words] Speak the real input, code handoff and variable conditions.
[beat 7 · shots 19–27 · ~57 words] State verified scale, failure diagnosis and fix; pause before each number.
[beat 8 · shots 28–30 · ~34 words] Give fresh validation and the buyer outcome.
[beat 9 · shot 31 · ~14 words] Close with a new claim, then {{CTA_URL}}.
Plate 11
Production plan
Two routes (inferred)
Minimum: Remotion with CSS 3D, code-built UI and cards, and music synthesized in code. Supply real presenter footage, recorded or TTS speech, product captures and verified results. This reaches the evidence rhythm and graphic look while simplifying the robot to layered 3D transforms; it gives up realistic contact, dust and physical light.
Full: Shoot 4K presenters and site footage; record 48 kHz WAV dialogue; capture real {{PRODUCT}} UI; build the failure simulation in Blender at 1920×1080, 23.976 fps; export ProRes or PNG sequence with alpha plus camera keyframes JSON; assemble captions, cards and shots in Remotion at the same size and rate; hand in an original 48 kHz WAV bed with click track and separate effects; export H.264 MP4. The Blender camera JSON and 1920×1080 PNG sequence pass to Remotion; the dialogue WAV and music WAV remain separate until final mix.
Asset honesty: Use real {{PRODUCT}} captures or your own UI rebuilt in code; mark missing proof as missing. Never generate product UI, fake screenshots, fake results, fake reviews or invented metrics. The failure simulation may be illustrative, but the fix and fresh validation must come from a real test.
Plate 12
Prompts
Script prompt
Write a narration-led launch script for {{PRODUCT}}. Follow plate 4's nine beats and shot groupings. Use a visible {{FAILURE}} at {{SITE}}, the actual buyer cost, a real input, verifiable test conditions, verified result and a plain-text {{CTA_URL}}. Budget about 230 words; use two distinct technical presenter archetypes, short clauses and pauses before large numbers. Output spoken line, caption and evidence source per beat. Never invent metrics or mimic the reference's words.
Caption spec (inferred): Phrase captions follow speech, not a bouncing word effect. Keep required words at least 38 px cap at 1920×1080, with a dark translucent backing over footage and no backing on clean cards. Reserve the large plate 6 levels for editorial claims.
Music prompt: Use plate 8's original-bed prompt and deliver isolated 48 kHz WAV stems.
Plate 13
Edit recipe
How it's built (inferred)
Signature failure move: In shots 1–2, keep the panel edge as a fixed spatial anchor and animate the machine as a rigid object with separate track, wheel and shadow layers. Shot 1 runs frames 0–25: the measured image rolls +14.8° while drifting +2.5% x and −6.1% y, accelerating with cubic-bezier(.55,.05,.8,.65). At frame 26 cut to the wider, static camera; finish the rigid-body fall in the object layer. Render animation on ones with 180° shutter, or 8 subframes at 23.976 fps to avoid strobing. Do not attach the shadow to the machine: let it detach from the panel and fall onto the ground.
Evidence handoffs: Shot 4's camera is static while the icon group travels −30.6% x and scales ×0.71; keyframe its measured segments from plate 5. Shot 5 moves from a wide site frame toward a close machine frame; at frame 196 pull focus over 26 f by crossfading two depth layers and doubling edge sharpness, with no new cut. At frame 272 continue the logo-to-simulation picture over 7 f without a visible cut, using a rising panel mask. Shot 7's −86.7% y tilt moves the panel field under the camera; at frame 305 apply the measured 4 f horizontal whip into shot 8. At frame 357 step the light grade from measured luma 0.156 to 0.243 while the split code/simulation view continues; the frame strip suggests a changed simulation image, but the measurement labels the event an unknown brightness step. At frame 456 use the measured 2 f zoom out into shot 10. At frame 780 reveal shot 13 from white over 8 f. At frame 1706 continue the validation graphic over 12 f with a mask/position handoff, not a cut. At frame 2157 make the internal hard cut from the closing claim to the end card; do not fade at the end.
Other motion: Follow plate 5's segmented camera keyframes for shots 8, 13, 15 and 28. In shot 28 the camera stays still while the icon group moves −31.1% x, −16.1% y and scales ×0.63 across its moving portion. The sheet shows a result card becoming a use-case row, so animate independent icons and captions rather than a whole-frame pan. Use cubic-bezier(.2,.7,.2,1) for measured ease-outs and cubic-bezier(.42,0,.58,1) for ease-in-out; where plate 5 says irregular, fit keyframes to the supplied camera JSON instead of imposing one curve. Use directional blur only on the 4 f whip; keep type sharp.
Build order
- Lock the narration and evidence sources to beats 1–9, with clause markers and verification for every number.
- Build beat 1's failure in Blender or the Minimum stack, then test the frame 26 spatial handoff.
- Shoot and record beats 2, 4, 5 and 8; capture real UI for beats 3, 6 and 7.
- Assemble all shots at the measured frames; apply plate 5's camera and transition data, then add cards and captions.
- Mix the original bed beneath speech, inspect the cue frames, master, and export.
Plate 14
QA checklist
- Shot boundaries match plate 4 within ±1 frame; frames 272 and 1706 remain continuous.
- Shot 1's +14.8° roll and shot 7's −86.7% vertical travel match plate 5.
- Focus changes for 26 f from frame 196; the frame 357 grade step remains inside shot 8.
- The end-card cut occurs at frame 2157; no fade to black follows.
- All required words meet the 38 px cap phone minimum; decorative UI text is not needed to understand the claim.
- Spoken lines remain intelligible over cues; do not add effects to events marked “voice?”.
- Export 1920×1080, 23.976 fps H.264; X/LinkedIn master near −14 LUFS and true peak ≤−1 dBTP.
- Every displayed result has a verifiable source; no reference identity, footage, copy or music remains.
Plate 15
Make it yours
Brand slots
| Slot | Replaces in the reference | Notes |
|---|---|---|
{{PRODUCT}} | Robotics test product | Real offer and UI |
{{BRAND_FONT}} | Reference sans | Supply licensed brand font |
{{BRAND_BG}} | Black, light and saturated card fields | Base colour role |
{{BRAND_ACCENTS}} | Orange and blue signal colours | Use your own contrast-safe accents |
{{LOGO}} | Reference wordmark | Vector with clear space |
{{CTA_URL}} | Reference demo destination | Render as text |
{{FAILURE}} | Robot slipping from panel | Visually demonstrable failure |
{{SITE}} | Solar farm | Actual customer environment |
What this film avoids: no feature-list montage, no stock testimonial, no decorative fake dashboard, no unsupported result, no QR code or app-store badge.
Brand-distance warning: A near-identical solar robot, orange/blue proof cards, dark hoodie presenters and the reference's closing slogan together read as the original. Change the physical failure and site first; then apply your own brand system and copy.
Adapt the aspect (inferred):
- 9:16: Re-lay out: stack presenter above proof, move captions into the middle safe region, keep key text ≥22 px cap at 1080 width, and reserve the top and bottom 15% for platform UI.
- 1:1: Re-lay out the split screens into sequential cards; centre the physical subject and keep text ≥22 px cap at 1080 width, with 10% top/bottom clear for platform chrome.
Adapt the length (inferred):
- 15 s: Keep beat 1's failure, a compressed beat 3, one verified result from beat 7, beat 8's buyer outcome and beat 9; drop optional explanation and secondary examples.
- 30 s: Keep all nine beats but reduce beat 4's manual burden and beat 6's conditions to one example each.
- 60 s: Keep the full workflow and one additional verified condition in beat 7; add evidence rather than lengthening the end-card or hook holds.
The creator's signature (don't copy): The original presenters, robot design, solar setting, UI, wordmark, palette, specific claims and music.
The transferable format (do copy): A visible failure, human explanation, authentic workflow proof, fresh validation and buyer outcome.
Source: https://x.com/alliance/status/2118366494723620968 · measured with dissect 1.1 and timeline v2 on 2026-11-06 · (measured) = observed · (inferred) = construction reading
For agents: Aspect conversions
The measured data and build specs agents work from. Over MCP they get it all, with the full timeline as JSON.
Aspect conversions (computed from the measured boxes)
Aspect conversions (computed from the measured boxes): a centre crop of the reference frame, checked against its text boxes and moving elements.
| to | deliver at | a centre crop keeps | measured boxes kept | boxes a crop loses | phone minimum | so |
|---|---|---|---|---|---|---|
| 9:16 | 1080×1920 | middle 31.6% of the width (cut 34.2% each side) | 46 of 150 | "See that robot sliding", "See that robot sliding…", "On a real site", "That's an expensive way" … | 22 px cap | re-lay out: a crop loses too much |
| 1:1 | 1080×1080 | middle 56.2% of the width (cut 21.9% each side) | 88 of 150 | "See that robot sliding", "See that robot sliding…", "On a real site", "• NVIDIA Isaac Sim…" … | 22 px cap | re-lay out: a crop loses too much |
Recipe
One prompt that makes a film like this with Claude. Use the method; make the footage, words and brand your own.
Make a 93.7 s 16:9 film for {{PRODUCT}} in the format of REF-2118366494723620968 (visible failure to verified proof). Brand: font {{BRAND_FONT}}, background {{BRAND_BG}}, accents {{BRAND_ACCENTS}}, logo {{LOGO}}, call to action {{CTA_URL}}. Set a demonstrable {{FAILURE}} at {{SITE}}. Load get_blueprint("2118366494723620968", format: "json") first; build to its shot frames, camera numbers, type boxes and cue grid. This is narration-led: write about 228 words, roughly 146 wpm overall with quick runs near 200 wpm. Shots 1–5 cover failure and cost, 6–13 promise and old method, 14–18 input, 19–28 verified proof, and 29–31 buyer outcome and CTA. Captions follow spoken clauses; effects clear stressed words. In shots 1–2, make a low close-to-wide fall: shot 1 rolls +14.8 degrees, then cut at frame 26. Preserve the four-frame whip at frame 305. Keep required type at least 38 px cap. Shoot real presenters and capture actual product screens; use Blender for the failure, then Remotion for cards and edit. Pass 1920×1080 PNG frames and camera JSON at 23.976 fps. The fallback is Remotion with CSS 3D. Make an original restrained 108 BPM minor-key bed; cuts follow speech, while accents follow JSON cues. Master for X near −14 LUFS, true peak ≤−1 dBTP. Export 1920×1080 H.264 MP4 at 23.976 fps. End on {{LOGO}} plus {{CTA_URL}} as text. Never invent product UI, screenshots or results, or copy the reference identity or music. No QR codes or store badges.Films like this
Tagged live actionscreen recording3d animationmotion graphicsproduct launchfailure-first hookfounder narrationrobotics