Inbox to shareable recording in 22 seconds
A cursor-led Loom workflow turns inbox overload into a recorded, shared, commented result through precise UI motion and one live-action bridge.
By @kirtanlb for LoomSource onlineOriginal post ↗
Copies get_blueprint("REF-3721") for Claude. Connect Claude
Why it works
The badge climbs in the opening second, then the interface turns pressure into one action by shot 2. The ×1.99 reframe at frame 646 makes the recording control decisive; the 4-frame whip into shot 5 transfers it to shareable proof. Shot 4's real desk grounds the graphic workflow.
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
(inferred) A small problem signal grows, becomes a direct action, then passes through a recorded result and social proof. The same cursor feels like the viewer's hand, while the picture does nearly all the explaining.
Why it works
- The badge escalates before the first second, then a single chip replaces the clutter at 2 s.
- The shot 2 lateral travel and shot 3 tool reveal make each action causally legible.
- A real desk insert at shot 4 bridges abstract UI and a human workspace; shot 7 shows the result.
Plate 02
Format card
| Platform · aspect · length | X · 16:9 · 21.8 s · 1280×720 source · 60 fps |
| Pace | 8 shots · 7 transitions · 2.76 s median |
| Script | Picture-led · no reliable narration; sparse readable UI and benefit line |
| Voice | None required |
| On screen | Animated UI, cursor, one desk insert, result UI, brand card |
| Type | Four measured levels: 61–73, 49, 27–43, 19 px cap; functional words raised to 38 px minimum |
| Sound | Restrained tonal electronic bed; 129.2 BPM candidate, but cuts do not follow it; event cues |
| Structure | 5 beats · result in shots 5–7 · brand card in shot 8 |
Tools you'll need: Remotion for motion graphics · screen recordings of the product · a camera shoot · 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–1 s | Familiar inbox glyph and rising badge | {{PAIN_SIGNAL}} count | Initial hit; no necessary speech | Makes pressure visible |
| 1–2 s | Badge peaks; glyph gives way | Short status chip | Light UI cue | Converts pressure into a solvable state |
| 2–3 s | Chip above quiet skeleton rows | Action state | Air under the bed | Starts the workflow |
Hook formula (inferred): familiar task icon → escalating {{PAIN_SIGNAL}} → one action state.
Why it holds (inferred): the glyph reads before any sentence; scale and count changes supply the question.
Plate 04
Structure (beat sheet)
| # | Time (s) | Shots | Beat | What happens | Technique |
|---|---|---|---|---|---|
| 1 | 0–3.5 | 1 | Pressure | Badge climbs, then resolves into an action chip and list | Element scale and swap |
| 2 | 3.5–8.75 | 1–2 | Selection | Cursor selects a target; the compose card moves laterally and sends | Focus pull, pan, click |
| 3 | 8.75–13.1 | 3 | Capture | Compact control expands to the recording action and live state | Reframe, internal cut |
| 4 | 13.1–18.32 | 4–6 | Proof transfer | Desk context, share card, link, then result interface | Push, whip, internal cut, pull out |
| 5 | 18.32–21.8 | 7–8 | Payoff | Commented result becomes a benefit line, then brand card | Reframe and hard card cut |
Retention map (inferred): re-hooks at the shot 3 control and shot 4 real workspace · payoff in shot 7 · brand close in shot 8 · hard stop.
At a glance
- Shots: 8 shots · 7 transitions · 21.80 s = 1308 frames at 60 fps · shot length median 2.76 s (shortest 0.73, longest 5.50)
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)
8 shots · 7 transitions · 21.80 s = 1308 frames at 60 fps · shot length median 2.76 s (shortest 0.73, longest 5.50). Frames are at 60 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 @60 (first–last · count) | dur (s) | transition in | changes inside | scales (inferred) |
|---|---|---|---|---|---|---|
| 1 | 0.00–5.50 | 0–329 · 330 f | 5.50 | start | f280 focus pull over 20 f | scales |
| 2 | 5.50–8.75 | 330–524 · 195 f | 3.25 | cut | – | scales |
| 3 | 8.75–13.10 | 525–785 · 261 f | 4.35 | cut | f646 reframe · f719 cut | scales |
| 4 | 13.10–14.70 | 786–881 · 96 f | 1.60 | cut | – | optional |
| 5 | 14.70–17.48 | 882–1048 · 167 f | 2.78 | whip horizontal · 4 f | f942 focus pull over 25 f · f969 cut | scales |
| 6 | 17.48–18.32 | 1049–1098 · 50 f | 0.83 | cut | – | optional |
| 7 | 18.32–21.05 | 1099–1262 · 164 f | 2.73 | cut | – | scales |
| 8 | 21.05–21.78 | 1263–1306 · 44 f | 0.73 | 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: 3 hidden cuts / dips / reframes found inside v1 shots (luma-normalised frame difference): S3 reframe at 10.767 s (f646), S3 cut at 11.983 s (f719), S5 cut at 16.150 s (f969); listed in shots[].internal_changes · cue sheet keeps 22 of 64 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) · the full-length timeline, the whole film at fixed steps (labels S<n> m:ss.s f<frame>), 2 pages · close-up strips, 14 frames around each cut and change: f280 focus pull, f330 cut, f525 cut, f646 reframe, f719 cut, f786 cut, f882 whip, f942 focus pull, f969 cut, f1049 cut, f1099 cut, f1263 cut (sheet "transitions", 4 pages; labels S<n> m:ss.sss f<frame>): call get_frames('2071890767996649939'), or see them on the film page (Pro, or free films).
Plate 05
Shot grammar
Mix (inferred): six UI or graphic shots, one live workspace shot, one brand card. Rhythm (inferred): the first shot has the longest internal build; the rapid proof handoff clusters in shots 4–6. Cuts are picture motivated, not beat locked.
Rules this editor follows (inferred):
- Keep the cursor near the operative control so each move has a clear destination.
- Enlarge the object being acted on; let its surroundings supply context.
- Use the desk insert once, as a short physical bridge.
At a glance
- Biggest moves: shot 7: complex over 2.73 s, ease-out · shot 2: pan right, content −51.2% of width over 3.25 s, ease-in-out · shot 4: push in ×1.53 over 1.60 s, ease-in.
- Transitions: 7 transitions: 6 cuts · 1 whip (4 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 3 of 8 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 | static? · element moves ↓ | +0.0 · +0.0 | ×1.000 | none | hold | ▁▁▁▁▁▁▁▁▁▁▁ | ones | 0.21 | 0.21 | 0.35 |
| 2 | pan right (shake 13.2%/s) | −15.7 · +0.0 | ×0.957 | x −51.1% (−982 px) · ×0.87 scale | ease-in-out | ▂▁▁▆▁▁ · 145%/s | ones | 0.02 | 0.35 | 0.97 |
| ↳ 5.50–6.08 s: pan left | +20.3 · +0.0 | ×1.000 | x +11.8% (+227 px) | ease-out | ||||||
| ↳ 6.08–6.42 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| ↳ 6.42–8.17 s: pan right | −35.6 · +0.0 | ×0.986 | x −62.3% (−1196 px) · ×0.98 scale | ease-in-out | ||||||
| ↳ 8.17–8.67 s: pull out | −1.4 · +0.0 | ×0.789 | x −0.7% (−13 px) · ×0.89 scale | ease-in | ||||||
| 3 | static? · element moves ↓ | +0.0 · +0.0 | ×1.000 | none | hold | ▁▁▁▁▁▁▁▁▁ | ones | 0.43 | 0.10 | 0.35 |
| 4 | push in | +0.1 · −2.2 | ×1.302 | y −3.5% (−37 px) · ×1.53 scale | ease-in | ▃▁▂▆ · 44%/s | ones | 0.46 | 0.67 | 0.92 |
| 5 | static? · element moves ↓ | +0.0 · +0.0 | ×1.000 | none | hold | ▁▁▁▁▁▁ | ones | 0.23 | 0.07 | 0.35 |
| 6 | pull out (shake 5.6%/s) | −6.9 · −0.1 | ×0.659 | x −5.7% (−110 px) · ×0.71 scale | ease-out | ▇▃▂▃ · 62%/s | ones | 0.27 | 0.36 | 1.00 |
| ↳ 17.48–18.03 s: pull out | −1.4 · −0.2 | ×0.543 | x −0.8% (−14 px) · ×0.71 scale | ease-out | ||||||
| ↳ 18.03–18.30 s: pan right | −18.7 · +0.1 | ×0.960 | x −5.0% (−96 px) · ×0.99 scale | ease-in | ||||||
| 7 | complex (shake 15.8%/s) | −8.4 · −11.5 | ×0.952 | x −23.0% (−442 px) · y −31.4% (−339 px) · ×0.87 scale | ease-out | ▄▂▄▁▁ · 101%/s | ones | 0.13 | 0.30 | 0.69 |
| ↳ 18.32–18.73 s: pan right | −49.3 · −1.0 | ×1.000 | x −20.5% (−394 px) | ease-out | ||||||
| ↳ 18.73–19.40 s: tilt down | −0.9 · −44.6 | ×1.001 | x −0.6% (−12 px) · y −29.7% (−321 px) | ease-in | ||||||
| ↳ 19.90–20.48 s: pull out | −3.2 · −2.1 | ×0.793 | x −1.9% (−36 px) · y −1.2% (−14 px) · ×0.87 scale | ease-out | ||||||
| ↳ 20.48–20.98 s: static | +0.0 · +0.0 | ×1.000 | none | hold | ||||||
| 8 | static | +0.0 · +0.0 | ×1.000 | none | hold | █▅▃▁ · 0%/s | still | 0.44 | 0.03 | 0.98 |
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 |
|---|---|---|---|---|---|---|---|---|---|
| 1 | 47 · 41 · 7 · 14 → 14 · 15 · 75 · 76 | slide up? | +1.1 · −5.8 | ×1.023 | x +5.0% (+97 px) · y −27.5% (−297 px) · ×1.12 scale · roll −1.7° in 4.8 s | irregular | ▂▃▃▅▃█▅▂▁▁▂ · 68%/s | 0.86 | 0.49 |
| ↳ 0.17–1.25 s: scale up | +0.1 · +1.0 | ×1.423 | y +1.0% (+11 px) · ×1.47 scale · roll −2.4° | ease-in | |||||
| ↳ 1.25–1.67 s: scale down | +0.1 · +0.2 | ×0.558 | ×0.78 scale | ease-in | |||||
| ↳ 2.08–3.75 s: slide up | +0.9 · −17.6 | ×0.983 | x +1.4% (+28 px) · y −29.4% (−317 px) · ×0.97 scale | ease-in-out | |||||
| ↳ 3.83–4.17 s: scale down | +0.0 · +0.0 | ×0.868 | ×0.95 scale | ease-out | |||||
| ↳ 4.17–5.08 s: scale up | +0.5 · +0.8 | ×1.040 | y +0.7% (+8 px) · ×1.04 scale · roll +0.5° | ease-in | |||||
| ↳ 5.08–5.42 s: slide right | +8.9 · +0.2 | ×1.031 | x +3.0% (+57 px) · ×1.01 scale | ease-in | |||||
| 3 | 46 · 42 · 9 · 16 → 44 · 25 · 11 · 44 | scale down | +2.6 · −6.5 | ×0.655 | x +10.4% (+199 px) · y −25.5% (−276 px) · ×0.19 scale · roll +45.9° in 3.9 s | ease-out | ▇▃▁▂▁▁▂▂▁ · 156%/s | 0.90 | 0.73 |
| ↳ 8.75–9.00 s: scale down | +0.2 · +0.9 | ×0.082 | ×0.53 scale · roll +10.2° | linear | |||||
| ↳ 9.00–9.92 s: complex | −0.3 · −6.5 | ×0.633 | y −5.9% (−64 px) · ×0.66 scale · roll +37.5° | ease-out | |||||
| ↳ 10.17–10.50 s: complex | +1.3 · −18.4 | ×0.727 | y −6.1% (−66 px) · ×0.90 scale · roll −1.6° | ease-out | |||||
| ↳ 10.50–10.75 s: slide right | +26.8 · −3.2 | ×0.950 | x +6.7% (+128 px) · y −0.8% (−9 px) · ×0.99 scale | linear | |||||
| ↳ 10.83–11.25 s: slide right | +8.4 · −0.2 | ×0.983 | x +3.5% (+67 px) | ease-out | |||||
| ↳ 11.25–11.92 s: scale down | +0.0 · −0.1 | ×0.809 | ×0.87 scale | ease-in | |||||
| 5 | 39 · 26 · 22 · 45 → 32 · 46 · 37 · 8 | scale up | +0.1 · −2.5 | ×1.065 | y −5.8% (−63 px) · ×1.16 scale · roll −2.5° in 2.3 s | ease-out | ▅▁▁▂▂▃ · 72%/s | 0.84 | 0.70 |
| ↳ 14.70–15.70 s: scale up | +0.2 · −0.3 | ×1.440 | ×1.44 scale · roll +0.6° | ease-out | |||||
| ↳ 15.70–16.12 s: slide up | +0.0 · −11.9 | ×0.992 | y −5.0% (−54 px) | ease-in | |||||
| ↳ 16.53–17.45 s: scale down | +0.0 · −0.7 | ×0.792 | y −0.6% (−6 px) · ×0.81 scale · roll −3.1° | ease-in |
Focus (measured): shot 1: sharp inside 0 · 0 · 100 · 100, no defocus (deep focus) · shot 2: sharp inside 0 · 0 · 100 · 71, about 7 px blur outside at 1080p · shot 3 8.75–10.77 s: sharp inside 33 · 14 · 42 · 57, no defocus (deep focus) · shot 3 10.77–11.98 s: sharp inside 25 · 0 · 42 · 29, no defocus (deep focus) · shot 3 11.98–13.10 s: sharp inside 42 · 14 · 17 · 71, no defocus (deep focus) · shot 4: sharp inside 0 · 0 · 100 · 100, no defocus (deep focus) · shot 5 14.70–16.15 s: sharp inside 33 · 14 · 50 · 71, no defocus (deep focus) · shot 5 16.15–17.48 s: sharp inside 17 · 43 · 58 · 14, no defocus (deep focus) · shot 6: sharp inside 0 · 0 · 100 · 100, no defocus (deep focus) · shot 7: sharp inside 0 · 0 · 92 · 100, no defocus (deep focus) · shot 8: sharp inside 33 · 43 · 33 · 14, 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.
Biggest moves: shot 7: complex over 2.73 s, ease-out · shot 2: pan right, content −51.2% of width over 3.25 s, ease-in-out · shot 4: push in ×1.53 over 1.60 s, ease-in. Locked-off shots: 1 of 8; 3 more could not be tracked (shown as "static?" or "not measured": check the sheets). Animation cadence: a new picture every frame (on ones): 59.1 unique frames per second of 60 while things move (held-frame share 0.01, 587 moving frames). Match it, or the motion will feel smoother or choppier than the reference.
Transitions (measured)
7 transitions: 6 cuts · 1 whip (4 f). Frames are at 60 fps; a transition of n frames lasts n ÷ 60 s. Hard cuts are reliable; the blur types (whip versus zoom) are the weakest labels, so read their confidence and check the sheets.
| into # | at (s) | frame @60 | type | length | conf |
|---|---|---|---|---|---|
| 2 | 5.50 | 330 | cut | 0 f | 1.00 |
| 3 | 8.75 | 525 | cut | 0 f | 1.00 |
| 4 | 13.10 | 786 | cut | 0 f | 1.00 |
| 5 | 14.70 | 882 | whip horizontal | 4 f · 0.07 s | 0.65 |
| 6 | 17.48 | 1049 | cut | 0 f | 1.00 |
| 7 | 18.32 | 1099 | cut | 0 f | 1.00 |
| 8 | 21.05 | 1263 | cut | 0 f | 1.00 |
Changes inside shots (the picture changes without a cut: a reframe, a hand-off behind black, a mask):
| shot | at (s) | frame @60 | change |
|---|---|---|---|
| 1 | 4.67 | 280 | focus pull over 20 f: comes into focus (edge sharpness x1.6) |
| 3 | 10.77 | 646 | reframe: jump x1.99 |
| 3 | 11.98 | 719 | cut: hard cut that v1 did not split on |
| 5 | 15.70 | 942 | focus pull over 25 f: goes out of focus (edge sharpness x0.4) |
| 5 | 16.15 | 969 | 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 | Graphic UI | Central icon, then wide card | Pressure count, action chip, selection | Minimal status text |
| 2 | UI travel | Large card over soft landscape | Compose and send | Functional labels |
| 3 | UI macro | Floating control on light field | Record button, then active control | Control labels |
| 4 | Live action | Daylit desk medium wide | Laptop in workspace | UI within screen |
| 5 | Product card | Centered card on light field | Shared result changes to link | Title and identity |
| 6 | Screen UI | Full browser composition | Open result | Native UI labels |
| 7 | Screen UI to type | Detail, then open white field | Comment and benefit line | One readable statement |
| 8 | Brand card | Centered | {{LOGO}} | {{CTA_URL}} as added text CTA |
Plate 06
Visual style guide
- Look (inferred): mostly pale open fields, soft accent halos, crisp foreground controls; the reference uses a cool purple accent and a warm desk insert. Map those roles to
{{BRAND_BG}}and{{BRAND_ACCENTS}}. - Graphics and overlays (inferred): small cursor with a brief click state, rounded interface cards, faint skeleton rows. Give the card a subtle independent shadow.
- Transitions (inferred): straight cuts except the brief shot 5 whip; internal focus and reframe changes carry the other handoffs.
- Branding and end card (inferred): shot 8 is a solid
{{BRAND_ACCENTS}}field with centered{{LOGO}}; add{{CTA_URL}}as plain text without obscuring the mark. It ends without a black fade.
At a glance
- Type scale (cap px): 61–73 · 49 · 27–43 · 19 (4 levels) among the text above.
- Phone minimum: cap height ≥ 2% of frame width = 38 px at 1920×1080
- Whole film (time-weighted):
#FCFBFC66% ·#ABB3CF4% ·#3125214% ·#6A5BF03% ·#5E7F403% ·#8DAD5C3%. - Curve facts: average 0.82 · darkest 0.42 at 21.2 s · brightest 1.00 at 10.0 s · sudden changes at 3.50 s (darker by 0.30), 8.75 s (brighter by 0.24), 13.25 s (darker by 0.53), 14.75 s (brighter by 0.49), 17.50 s (darker by …
For agents: Type · Type spec · Palette by shot · Brightness curve · Layout boxes · Material card
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 |
|---|---|---|---|---|---|---|---|
| "150 → 100 (counting)" | 1 | 0.2–0.8 | 37 | 52 | 3.4 | 53 · 36 · 4 · 4 | centre, upper |
| "200" | 1 | 1.0–1.5 | 49 | 69 | 4.5 | 54 · 32 · 6 · 6 | centre, upper |
| "V ls unread" | 1 | 2.0–2.2 | 63 | 89 | 5.8 | 36 · 47 · 25 · 7 | centre, middle |
| "I really love the quality of work you…" | 1–2 | 4.8–7.5 | 29 | 41 | 2.7 | 38 · 4 · 46 · 4 | centre, top (inside 5% of the edge) |
| "Send D" | 2 | 5.5–7.2 | 73 | 103 | 6.8 | 32 · 45 · 16 · 13 | centre, middle |
| "I am Kirtan, I want to apply for…" | 2 | 5.8–8.5 | 32 | 45 | 3.0 | 36 · 9 · 62 · 5 | right, top (inside 5% of the edge) |
| "This is my Instagram handle - @kirtanlb" | 2 | 5.8–7.5 | 37 | 52 | 3.4 | 39 · 14 · 38 · 5 | centre, top |
| "Looking forward to your reply." | 2 | 5.8–7.2 | 31 | 44 | 2.9 | 38 · 20 · 28 · 4 | centre, top |
| "Best," | 2 | 6.0–7.2 | 33 | 46 | 3.1 | 39 · 30 · 5 · 5 | centre, upper |
| "No microphone" | 3 | 10.2–11.8 | 39 | 55 | 3.6 | 40 · 21 · 22 · 6 | centre, upper |
| "Start recording" | 3 | 11.0–11.8 | 43 | 61 | 4.0 | 40 · 49 · 21 · 6 | centre, middle |
| "0:01" | 3 | 12.2–13.0 | 62 | 87 | 5.7 | 46 · 50 · 7 · 6 | centre, middle |
| "Dream it. Code it." | 5 | 14.8–16.0 | 19 | 27 | 1.8 | 45 · 32 · 9 · 2 | centre, upper |
| "Kirtan" | 5 | 16.8–17.2 | 61 | 86 | 5.6 | 33 · 47 · 11 · 7 | centre, middle |
| "Leave a comment..." | 6–7 | 17.8–19.0 | 19 | 27 | 1.8 | 50 · 10 · 14 · 2 | centre, top |
| "* Kirtan Limbani 0:00 6d" | 7 | 18.5–19.2 | 27 | 38 | 2.5 | 45 · 42 · 20 · 4 | centre, middle |
| "Say less, type more." | 7 | 19.8–21.0 | 49 | 69 | 4.5 | 34 · 47 · 33 · 8 | centre, middle |
| "loom" | 8 | 21.2–21.8 | 71 | 100 | 6.6 | 46 · 46 · 14 · 8 | centre, middle |
Plus 39 smaller or briefer text items, cap 4–63 px, mostly labels inside interfaces: all in the timeline JSON.
Type scale (cap px): 61–73 · 49 · 27–43 · 19 (4 levels) among the text above.
Left out: 10 reads that are not clean words or were seen in a single frame ("Velotile", "velotile@gmail.co", "Start re"…): 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: "I really love the…" (29 px, shot 1), "I am Kirtan, I…" (32 px, shot 2), "This is my Instagram…" (37 px, shot 2), "Looking forward to your…" (31 px, shot 2), "Dream it. Code it." (19 px, shot 5), "Leave a comment..." (19 px, shot 6) and 3 more above and 38 of the smaller items. Size these up in your version, or treat them as decoration.
Type spec (inferred)
Assume cap height = 0.71 × CSS font size; verify the actual instance of {{BRAND_FONT}}. Geist is a free fallback only. Functional words below the 38 px cap phone minimum are enlarged; decorative UI may remain small.
| Level | Cap px at 1080p | Font size | Weight · case · tracking | Colour pair | Motion |
|---|---|---|---|---|---|
| Primary control / brand | 61–73 | 86–103 px | 600 · sentence or mark case · −0.02 em | surface / {{BRAND_ACCENTS}} or inverse | 10–16 f scale, cubic-bezier(.2,.8,.2,1) |
| Benefit / badge | 49 | 69 px | 500–650 · sentence / numerals · −0.025 em | {{BRAND_BG}} / high contrast ink | 12 f opacity and 8 px rise, same ease |
| UI action / message | 27–43 measured; ≥38 if essential | 54–61 px essential | 450–600 · sentence · −0.01 em | light surface / dark ink | 8–12 f opacity, ease-out |
| Micro UI | 19 measured; ≥38 if essential | 27 px decorative; ≥54 px essential | 450 · sentence · 0 em | surface / muted ink | Static or 6 f reveal |
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 | 0.89 · 0.99 | #FCFBFC 75% · #ABB3CF 12% · #738F59 9% · #ABA6EF 4% · #DD454C 0% | #FFFFFF ≈6500 K 90% · #F7F5FF ≈6850 K 5% |
| 2 | 0.65 · 1.00 | #F6F6F5 39% · #5E7F40 21% · #8DAD5C 20% · #2A4D24 19% · #3C6ACA 1% | #FFFFFF ≈6500 K 100% |
| 3 | 0.95 · 0.99 | #FCF9FC 88% · #F5CAC7 8% · #EE4E3B 2% · #4A4343 1% · #8E7EF1 1% | #FFFFFF ≈6500 K 89% · #E8E4FA hue 298° ≈7470 K 6% · #F7F5FF ≈6860 K 6% |
| 4 | 0.44 · 0.92 | #AFA386 25% · #312521 22% · #563017 20% · #7B6B4E 19% · #DBD2C9 15% | #FDFCFC ≈6470 K 78% · #FBEEE4 ≈5710 K 20% |
| 5–7 | 0.87 · 1.00 | #FEFDFF 89% · #E6E3FA 7% · #20222B 3% · #777881 1% · #8170EE 0% | #FFFFFF ≈6500 K 100% |
| 8 | 0.42 · 0.41 | #6A5BF0 98% · #B8B1F0 1% · #8173EF 0% · #D0CBF2 0% · #9A8EF0 0% | #6A5BF0 hue 302° tinted 99% |
Whole film (time-weighted): #FCFBFC 66% · #ABB3CF 4% · #312521 4% · #6A5BF0 3% · #5E7F40 3% · #8DAD5C 3%.
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
mean ███▇▆▆▆▆▆█ ███▅▅██▇▇▇ █▅
p95 ██████████ ██████████ █▅
Curve facts: average 0.82 · darkest 0.42 at 21.2 s · brightest 1.00 at 10.0 s · sudden changes at 3.50 s (darker by 0.30), 8.75 s (brighter by 0.24), 13.25 s (darker by 0.53), 14.75 s (brighter by 0.49), 17.50 s (darker by 0.32), 19.75 s (brighter by 0.23), 21.25 s (darker by 0.58).
Layout boxes (inferred)
| Element | Shots | Box x · y · w · h (%) | Source · confidence | Notes |
|---|---|---|---|---|
| Opening moving region | 1 | 47 · 41 · 7 · 14 → 14 · 15 · 75 · 76 | Measured element region · high | Includes subsequent card travel |
| Status chip | 1 | 36 · 47 · 25 · 7 | Measured text box · high | Enlarge essential copy |
| Send control | 2 | 32 · 45 · 16 · 13 | Measured text box · high | Button visual can exceed text box |
| Record action | 3 | 40 · 49 · 21 · 6 | Measured text box · high | Keep within card |
| Share card moving region | 5 | 39 · 26 · 22 · 45 | Measured element region · high | Before the link handoff |
| Benefit line | 7 | 34 · 47 · 33 · 8 | Measured text box · high | Single centered line |
| End mark | 8 | 46 · 46 · 14 · 8 | Measured text box · high | Place text CTA beneath |
End card: solid {{BRAND_ACCENTS}} fill; {{LOGO}} in the measured box above; put {{CTA_URL}} as a separate readable line below it. The shot is 44 measured frames, and the mark becomes readable after the cut.
Material card (inferred)
:root { --brand-bg: {{BRAND_BG}}; --brand-accent: {{BRAND_ACCENTS}}; --surface: #fff; --ink: #171923; }
.stage { background: var(--brand-bg); perspective: 1400px; overflow: hidden; }
.ui-card { background: var(--surface); border: 1px solid rgba(20,20,35,.08); border-radius: 22px; box-shadow: 0 24px 64px rgba(20,20,45,.13); transform-style: preserve-3d; }
.halo { background: radial-gradient(circle, color-mix(in srgb,var(--brand-accent) 24%,transparent), transparent 65%); filter: blur(38px); opacity: .65; }
.blur-outside { filter: blur(7px); }
No 3D renderer is needed. The apparent depth comes from layered cards, CSS perspective, shadow, masked blur and a separate halo. For shot 2, preserve the measured sharp region 0 · 0 · 100 · 71% and blur only material outside it by about 7 px. The desk insert is supplied live footage: shoot one 4K, 60 fps, 35–50 mm equivalent desk clip at seated eye height, 10–15° downward, f/4–5.6, soft window key at 5600 K and neutral fill at roughly half strength. Record room tone; keep skin and wood natural, moderate contrast and saturation, no baked brand tint. Use the real {{PRODUCT}} screen on the laptop.
Plate 07
Voice and delivery
Measured: plate 8 finds negligible speech; the v1 end transcript has low confidence and does not align reliably with the visible line. Voice direction (inferred): no voice is needed. If publishing with narration, write a new short line only after the picture edit works and duck the bed under it.
Plate 08
Sound design
- Music (inferred): light tonal pulse and soft sub sustain from the opening; keep enough space for the UI clicks. Phrase changes may follow visual stages rather than hard cuts.
- Sound effects (inferred): button click near frame 202, a restrained accent near frame 329, a small snap near frame 648, a soft impact around the shot 5 link change, and a light result cue near frame 1098.
- Silence and space (inferred): lower the midrange during shot 4 so the real workspace breathes; avoid dense percussion over tiny interface text.
At a glance
- Speech: words cover 0% of the film (5 words, v1 transcript): little speech.
- Tempo: 129.2 BPM, confidence 0.58 (weak: half or double time is possible) · first downbeat 1.422 s (bar start confidence 0.16, uncertain) · beat 0.4644 s · bar of 4 = 1.858 s.
- Key: Eb minor (confidence 0.82; runner-up B major).
- Loudness of the reference (measured): −21.7 LUFS integrated, true peak 0.8 dBTP, range 3.8 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 0% of the film (5 words, v1 transcript): little speech.
Tempo: 129.2 BPM, confidence 0.58 (weak: half or double time is possible) · first downbeat 1.422 s (bar start confidence 0.16, uncertain) · beat 0.4644 s · bar of 4 = 1.858 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 | |
|---|---|---|---|---|
| 60 fps (this film) | 27.86 f | 111.46 f | 85 | 85 · 202 · 309 · 420 · 535 · 648 · 760 · 873 … |
| 30 fps | 13.93 f | 55.73 f | 43 | 43 · 101 · 155 · 210 · 268 · 324 · 380 · 436 … |
Beats in seconds: 0.099 · 0.482 · 0.981 · 1.422 · 1.875 · 2.363 · 2.827 · 3.367 · 3.791 · 4.209 · 4.708 · 5.155 … (47 in all, audio.tempo.beats in the timeline JSON).
Cuts on the beat: 2 of 7 land within ±1.5 frames of a beat; chance alone would give about 0.8, so the edit does not follow the beat.
Key: Eb minor (confidence 0.82; runner-up B major).
Sections (by energy of the whole mix, voice included):
| section | time (s) | shots | level (RMS) |
|---|---|---|---|
| steady | 0.0–5.0 | 1 | −18 dB |
| steady | 5.0–8.5 | 1–2 | −23 dB |
| steady | 8.5–21.8 | 2–8 | −22 dB |
Energy map (RMS per 1 s, ▁ = −25 dB → █ = −14 dB):
▁█▃▂▂▂▁▂▃▃ ▄▂▃▄▃▂▃▂▃▃ ▂▁
Cue sheet (22 cues: 2 at a cut, 10 on a beat). "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 @60 | shot | kind | strength | on screen (±3 f) | on beat |
|---|---|---|---|---|---|---|
| 0.09 | 6 | 1 | hit | 1.00 | element scale up starts (shot 1) | ✓ |
| 0.46 | 28 | 1 | tonal | 0.81 | no visible event | ✓ |
| 3.37 | 202 | 1 | click | 1.00 | picture gets darker | ✓ |
| 4.81 | 288 | 1 | unknown | 0.71 | "Best motion design" appears | |
| 5.48 | 329 | 1 | hit | 1.00 | cut into shot 2 | |
| 6.11 | 366 | 2 | tonal | 1.00 | "Best," appears | ✓ |
| 6.41 | 385 | 2 | tonal | 1.00 | camera pan right starts (shot 2) | |
| 6.87 | 412 | 2 | tonal | 0.69 | no visible event | |
| 7.36 | 442 | 2 | tonal | 0.76 | "forward to your reply." appears | |
| 7.92 | 475 | 2 | tonal | 0.81 | "of work you guys…" appears | ✓ |
| 9.54 | 573 | 3 | tonal | 0.74 | no visible event | |
| 10.80 | 648 | 3 | click | 0.73 | shot 3: reframe: jump x1.99 | ✓ |
| 13.30 | 798 | 4 | tonal | 0.88 | no visible event | |
| 13.61 | 816 | 4 | unknown | 1.00 | no visible event | ✓ |
| 14.54 | 872 | 4 | unknown | 0.72 | picture gets brighter | ✓ |
| 15.79 | 947 | 5 | tonal | 1.00 | element slide up starts (shot 5) | |
| 16.11 | 967 | 5 | impact | 0.83 | shot 5: cut: hard cut that v1 did not split on | |
| 17.04 | 1023 | 5 | unknown | 0.88 | no visible event | |
| 17.83 | 1070 | 6 | unknown | 0.87 | "# your app needs…" appears | ✓ |
| 18.30 | 1098 | 6 | hit | 0.54 | cut into shot 7 | ✓ |
| 19.55 | 1173 | 7 | unknown | 1.00 | picture gets brighter | |
| 20.48 | 1229 | 7 | tonal | 0.91 | no visible event |
Loudness of the reference (measured): −21.7 LUFS integrated, true peak 0.8 dBTP, range 3.8 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)
Use 129 BPM as a compositional pulse because the measured tracker finds a plausible periodic bed, while the edit remains picture-led. Key: E♭ minor. Use rounded sine bass, plucked muted keys, soft tick percussion and a restrained airy pad. Shots 1–2 introduce pulse and clicks; shot 3 thins to a low note under the control; shot 4 opens the pad; shots 5–6 add a short rising texture; shot 7 resolves to two notes; shot 8 holds a clean chord. Place authored cues at frames 6, 202, 329, 648, 967, 1098 and 1229, aligned to the picture and not forced onto an even beat. Music model prompt: “Original restrained electronic product demo bed in E♭ minor at 129 BPM, soft rounded bass, muted keys, airy pad, sparse clicks, clear spaces for interface cues, no vocals, no recognizable melody.”
Plate 09
Packaging
- Title (inferred): a brief workflow claim: “From
{{PAIN_SIGNAL}}to{{PROOF}}.” - Cover (inferred): one recognizable UI control and one result card on
{{BRAND_BG}}; a large verb supplied by{{PRIMARY_ACTION}}. - Post copy (inferred): one sentence naming the time saved, then
{{CTA_URL}}. - Audience signals: the source post had 13,166 views at capture; use engagement as context, not a promised outcome.
Plate 10
Script template
[beat 1 · shot 1] {{PAIN_SIGNAL}}; a short resolved state, ≤4 essential words.
[beat 2 · shots 1–2] One recipient or target label; {{PRIMARY_ACTION}} on the button.
[beat 3 · shot 3] {{PRIMARY_ACTION}}; one short active-state label.
[beat 4 · shots 4–6] A real {{PRODUCT}} capture and one truthful {{PROOF}} label.
[beat 5 · shots 7–8] Benefit line ≤5 words; {{LOGO}} and {{CTA_URL}} as text.
(inferred) The picture supplies the narration. Keep each essential control word at or above plate 6's phone minimum; screen detail can act as texture.
Plate 11
Production plan
Two routes (inferred)
Minimum: Claude alone for the motion build. Remotion with CSS 3D makes the layered UI, cursor, synthetic landscape, sound effects and synthesized original music end to end. It simplifies the physical desk insert to a supplied clip and uses supplied real {{UI_ASSETS}}; Claude alone cannot create the actual capture or live footage. It gives up some physical camera texture and natural screen reflections.
Full: with the toolkit. Capture {{PRODUCT}} UI with Playwright or a real screen recorder at 1920×1080, 60 fps; shoot the desk clip in 4K, 60 fps; build the graphic layers and cursor in Remotion; edit and mix in DaVinci Resolve. Hand off UI captures as 1920×1080 ProRes or PNG sequence at 60 fps, shot 4 as 4K ProRes at 60 fps, camera keyframes as JSON, and music plus click track as 48 kHz WAV. Export 1920×1080 H.264 at 60 fps.
Asset honesty: real {{PRODUCT}} captures or its UI rebuilt in code from truthful states; never generated product UI, invented screenshots, fake metrics, fake reviews or fake outputs. For shot 7, use an actual comment or an explicitly labeled demo comment in a controlled prototype.
Plate 12
Prompts
Script prompt
Write a wordless, picture-led workflow for {{PRODUCT}}. Make the opening {{PAIN_SIGNAL}} measurable, the button {{PRIMARY_ACTION}} immediate, and {{PROOF}} a truthful result. Use only essential control words and one final benefit line. Brand with {{BRAND_FONT}}, {{BRAND_BG}}, {{BRAND_ACCENTS}}, {{LOGO}} and {{CTA_URL}}. Do not borrow the reference's prose or marks.
Capture and music prompt (inferred): Capture only real {{UI_ASSETS}} at 1920×1080, 60 fps with cursor visible. Compose the original bed described in plate 8 as a 48 kHz WAV with separate click track.
Plate 13
Edit recipe
How it's built (inferred)
Signature cursor and card handoff: Build a single cursor layer above three independent planes: ambient field, white task card, UI contents. In shot 1, scale the moving icon region 0.17–1.25 s by the plate 5 ×1.47 element move, then scale down 1.25–1.67 s to ×0.78; replace it with the status chip using an opacity mask. Slide the list upward 2.08–3.75 s by the measured −29.4% frame height. Animate on ones at 60 fps with cubic-bezier(.22,.8,.25,1); use 180° shutter equivalent motion blur or 3–5 px directional blur on fast edges. Keep the cursor hotspot on the actual target, not the card center.
In shot 2, parent the compose card to a horizontal rig and follow plate 5's segment positions: brief +11.8% width move, pause, then −62.3%, then the small pull out. Use cubic-bezier(.35,0,.65,1) for the long pan; do not interpolate through the pause. At frame 280, animate focus over 20 f, sharpening card text by the measured ×1.6 edge sharpness; a masked blur swap avoids a whole frame flash. Frame 330 is a hard cut, as is 525.
In shot 3, keep the overall stage still and animate only the control region. At frame 646, jump the crop by ×1.99 with a one frame reframe; the sheet shows a sudden punch into the button, so a continuous zoom would feel wrong. Frame 719 is a 0 f hard cut to the recording control, despite remaining inside measured shot 3. At frame 786, hard cut to the desk. Shot 4's plate 5 ×1.53 push is a crop on the 4K plate, easing in, with no invented camera orbit. At frame 882, bridge into shot 5 with the measured four frame horizontal whip: two outgoing directional blur frames, two incoming, with a white field match.
In shot 5, animate the card region up to ×1.44 through 15.70 s, then slide it upward 5% frame height. Frame 942 begins a 25 f softening to the measured ×0.4 edge sharpness. The transition strip shows the card giving way to a tiny link glyph; frame 969 is a 0 f hard cut inside the shot. Let the new glyph hold the same visual center. Frames 1049, 1099 and 1263 are hard cuts. Shot 6 pulls out to ×0.71, then pans right. Shot 7 pans right, tilts down, pulls out, then holds its benefit line in the last measured static segment. Shot 8 stays static and ends without fading to black.
(inferred) The sheet tile at 19.5 s already shows the benefit line while the measured shot 7 camera segments still include a pull out. Treat that as a text build layered over the moving picture, not a new cut.
Build order
- Make the truthful assets for beats 2–5:
{{UI_ASSETS}}, one desk take and a real{{PROOF}}state. - Create the brand token file, background field, cards, cursor and type hierarchy for beats 1–3.
- Set all eight measured shot sequences and the two internal cuts; add camera and element keyframes from plate 5.
- Add the focus masks, four frame whip, and final type build.
- Synthesize the music and cues, mix to plate 8's chosen platform target, then export and run plate 14.
Plate 14
QA checklist
- The six measured hard boundaries and two internal hard cuts land within ±1 frame; the shot 5 whip occupies 4 f.
- The shot 3 reframe at frame 646 is a near instantaneous ×1.99 jump, not a continuous zoom.
- Focus changes begin at frames 280 and 942 and last 20 f and 25 f respectively.
- Essential words are at least 38 px cap at 1920×1080; 9:16 and 1:1 versions use at least 22 px cap.
- The moving UI updates on ones at 60 fps; fast edges have no duplicate frame judder.
- Authored sound cues land within ±2 f of the selected cue frames in plate 8.
- X and LinkedIn master is about −14 LUFS integrated and ≤−1 dBTP; check on the exported file.
- The end card begins at frame 1263, stays static, and has no black fade.
- All UI, metrics and comments correspond to real or openly labeled prototype states.
Plate 15
Make it yours
Brand slots
| Slot | Replaces in the reference | Notes |
|---|---|---|
{{PRODUCT}} | Reference app | Use your actual product |
{{BRAND_FONT}} | Reference UI type | Supply licensed brand face |
{{BRAND_BG}} | Pale stage | Ensure contrast |
{{BRAND_ACCENTS}} | Purple, red and blue signals | Assign semantic roles |
{{LOGO}} | End mark | Your real vector mark |
{{CTA_URL}} | Absent in-film destination | Plain text under mark |
{{PAIN_SIGNAL}} | Inbox count | A truthful, relevant pressure signal |
{{PRIMARY_ACTION}} | Send / record controls | One clear verb |
{{PROOF}} | Shared result and comment | Real or labeled prototype |
{{UI_ASSETS}} | App screens | Real captures or coded truthful UI |
What this film avoids: voiceover dependence, a feature list, talking head, stock montage, invented metrics, QR code and store badges.
Brand-distance warning: the exact purple field, rounded control silhouette and reference benefit line together would read as the original brand. Change the benefit claim and visual token system first.
Adapt the aspect (inferred):
- 9:16: re-lay out each card and cursor path as a vertical stack; the middle crop loses essential boxes. Keep all essential text ≥22 px cap and place controls inside roughly the central 80% width and 10–82% height to avoid feed chrome.
- 1:1: re-lay out the compose and result panels sequentially; a center crop loses message and brand text. Keep essential text ≥22 px cap, with a 7% edge inset for platform UI.
Adapt the length (inferred):
- 15 s: preserve beats 1, 3 and 5 and the shot 5 signature handoff; drop optional context before accelerating the essential action.
- 30 s: retain the same sequence, adding one truthful state inside beats 2 or 4.
- 60 s: add distinct task and proof examples around beats 2–4; keep the hook and end card fixed rather than stretching them.
The creator's signature (don't copy): reference marks, wording, exact palette and music. The transferable format (do copy): pressure → action → capture → proof, with a continuous cursor and measured handoffs.
Source: https://x.com/kirtanlb/status/2071890767996649939 · measured 2026-10-12 · (measured) = read off the film · (inferred) = construction reading
For agents: Aspect conversions · Length cuts
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) | 31 of 60 | "I really love the…", "Hey team Velotile,", "Send", "I am Kirtan, I…" … | 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) | 41 of 60 | "I really love the…", "I am Kirtan, I…", "%, Share", "Loom" … | 22 px cap | re-lay out: a crop loses too much |
Length cuts (computed from the scales flags)
Length cuts (computed from the scales flags): frames per shot at 60 fps; fixed shots keep their length, optional shots go first when the cut is shorter, the scaling shots share what is left. Snap each cut to the nearest beat when plate 8 has a steady pulse.
| # | flag | reference (f @60) | 15 s cut | 30 s cut | 60 s cut |
|---|---|---|---|---|---|
| 1 | scales | 330 | 253 | 476 | 528 |
| 2 | scales | 195 | 149 | 281 | 312 |
| 3 | scales | 261 | 200 | 376 | 418 |
| 4 | optional | 96 | drop | 96 | 96 |
| 5 | scales | 167 | 128 | 241 | 267 |
| 6 | optional | 50 | drop | 50 | 50 |
| 7 | scales | 164 | 126 | 236 | 262 |
| 8 | fixed | 44 | 44 | 44 | 44 |
| total | 1307 f · 21.8 s | 900 f · 15.0 s | 1800 f · 30.0 s | 1977 f · 33.0 s + 27.0 s new beats |
60 s: stretching tops out at ×1.6 (33.0 s); add 27.0 s of new beats (more of the scaling beats' pattern with new content), never a longer hold on the fixed shots.
Recipe
One prompt that makes a film like this with Claude. Use the method; make the footage, words and brand your own.
Make a 21.8 s 16:9 film for {{PRODUCT}} in the format of REF-2071890767996649939 (inbox pressure to proof flow). Brand: font {{BRAND_FONT}}, background {{BRAND_BG}}, accents {{BRAND_ACCENTS}}, logo {{LOGO}}, call to action {{CTA_URL}}. Supply truthful {{PAIN_SIGNAL}}, {{PRIMARY_ACTION}}, {{PROOF}} and real {{UI_ASSETS}}. First load get_blueprint("2071890767996649939", format: "json") and follow its shot frames, camera moves, type boxes and cue grid. This is picture-led, with no necessary narration. Beat 1, shot 1, escalates pressure; beat 2, shots 1–2, selects and sends by 8.75 s; beat 3, shot 3, reveals capture by 13.1 s; beat 4, shots 4–6, bridges desk, share card and result by 18.32 s; beat 5, shots 7–8, delivers proof and brand. Preserve shot 3's ×1.99 jump at frame 646 and internal cut at 719, shot 5's four-frame whip, focus change and internal cut at 969. Build motion in Remotion with CSS perspective, masked blur and bloom; use real 4K desk footage and screen captures, then mix an original E-flat minor electronic bed around 129 BPM. Minimum fallback: Remotion with CSS 3D and supplied assets. Essential type: ≥38 px cap. Export 1920×1080, 60 fps H.264 MP4 at about 21.8 s, around −14 LUFS and ≤−1 dBTP for X. End on {{LOGO}} plus {{CTA_URL}} as text. No QR or store badges. Use truthful code-built UI or real captures; never generated UI, fake screenshots or results. Never copy reference colors, font, logo, slogan or music.Films like this
Tagged live actionscreen recordingproduct demoui animationcursor ledworkflowb2b saasmotion design

