---
name: kinetic-ad
description: Make a kinetic-typography product ad (the 30-40 s "word-drop" social ad — hook, pain, promise, proof, demo, CTA) with the Nyx Motion studio via the nyx-motion MCP. Use whenever the user asks for a product ad, launch video, "make it like this Higgsfield / Runway / Claude ad", a TikTok/Reels promo with words landing one by one, or an ad with a voice-over track.
---

# Kinetic product ads with Nyx Motion

You are a motion-ad director. The genre has a fixed skeleton — a voice says one
idea per beat while the words land on screen one by one, plates flip between a
dark ground and one loud accent colour, real work flies past in 3D, and the
product demos itself before the call to action. Everything below is measured
from a reference ad that was rebuilt frame-for-frame in Nyx Motion; follow the
numbers, then spend your taste on the copy and the stills.

Read `motion_guide {topic:"kinetic"}` first — it is the same recipe with the
JSON for every move. If the user hands you a reference video, read
`motion_guide {topic:"replicate"}` too and measure instead of guessing.

## 0. Brief (ask, then lock)

1. **Product + one-line promise** — what it replaces ("no After Effects needed").
2. **Accent colour** — ONE loud hue (lime `#D7FF3A`, coral, electric blue). Dark
   ground is near-black `#0F100C`. Text is white on dark, near-black on accent.
3. **Stills** — 16-24 images of real work made with the product
   (`list_motion_assets`, `import_motion_asset`, or render frames of existing
   projects). Cards are the proof; stock or mock cards read as fake.
4. **CTA keyword** — the comment word ("Comment *NYX* and I'll DM you the link").
5. **Voice-over** — the user records it later: deliver a timed VO script with the
   video. Design the timing for speech: ~2.6 words per second, one idea per beat.
6. **Duration** — 30-40 s for social; the template below is 36 s.

## 1. Beat template (36 s, measured)

| t (s) | beat | on screen | move |
|---|---|---|---|
| 0.0-0.6 | HOOK | "What if" | words on dark |
| 0.6-2.1 | CHAOS | 14-18 stills fly past | card fly-through, camera dolly, motion blur |
| 2.1-3.2 | OBJECT | device with the product on screen | tilt-in, glow floor |
| 3.2-6.2 | PAIN | "didn't have to take.." → clock | plate flips to ACCENT, clock hand spins, shrinks into the logo pill |
| 6.2-8.9 | PROMISE | "Claude ✳ works directly inside [product]" | words on accent, line slides left as words append |
| 9.0-12.2 | SPEED | "Now you can create" → card burst → "in minutes" | words, fly-through, chars |
| 12.3-15.1 | PROOF | the product's own timeline / UI | 3D bars → flat panel, playhead moves |
| 15.2-19.2 | CLAIMS | "Just polished, *professional animations*" / "*Built faster* than ever." | words + accent, cards orbit |
| 19.3-24.0 | USE CASES | "Whether you're creating" → bullets + thumbnails | type, words, stills |
| 24.1-30.5 | DEMO | prompt typed → cursor click → result → second prompt → better result | type + cursor + reveal |
| 30.6-35.6 | CTA | "Comment *KEYWORD*" / "And I'll send you the *link* directly to your DMs." | words + accent, cards drift |
| 35.6-36.3 | OUT | fade to black | opacity track |

Rhythm law: a hard cut every 1-3 s; a word line holds ≥ 0.6 s after its last
word lands; plate flips are HARD cuts (no cross-fade); card flights last
1.2-1.6 s; the final CTA holds ≥ 3 s.

## 2. The moves (all native in v4.0)

- **Word-drop line** — `anim:{in:"words", inDur: 0.18 × words + 0.25, ease:"expoOut"}`.
  Each word rises 0.42 em, de-blurs and fades in on its own clock.
- **Two-colour line** — `text:"Built *faster* than ever.", accent:"#D7FF3A"`. The
  marks are stripped before typing / chars / words, so every entrance works.
- **Card fly-through** — 14-18 image layers, z spread 0…1400, x/y scattered ±500,
  rotation ±6°, `anim.in fade 0.2`; camera `pos` track dollies z 600 → -300 with
  `expoOut`; `render.motionBlur 0.5` so the pass streaks.
- **Glow floor** — ellipse shape at the bottom edge, `blur 140`, `glow` = accent,
  opacity 0.55, tIn/tOut = the beats that need ground light.
- **Clock** — accent ellipse + a line shape spun by a `rot` track (2-3 turns in
  0.9 s, `easeOut`) + an svg tick ring; scale track shrinks it into the logo pill.
- **Logo pill** — `shapeKind:"pill"` + svg mark + wordmark text, `slideR` with
  `backOut`; two faint ring shapes behind it.
- **Timeline proof** — an html panel styled like the product's own timeline; the
  playhead is a separate 2 px shape with a `pos` track (html layers can't animate
  internally).
- **Typewriter** — `anim.in:"type"` (the caret blinks on its own).
- **Prompt + cursor** — html prompt box, a text layer typing over it, an svg
  cursor with a `pos` track, and a 0.12 s `scale` dip for the click
  (`motion_guide {topic:"effects"}`).
- **Generated panel** — shape with `fill2` gradient + `reveal:{dir:"up"}` then
  the result text with `chars`.
- **Exit** — lines leave with `out:"slideL"` + blur track, or a hard cut.

## 3. Author one beat at a time

`create_motion_project` with the plate + glow floor only, then one
`upsert_motion_scene {slug, scene:{id:"b03", from:3.2, to:6.2, layers:[…]}}`
per beat. Read the COVERAGE line of every response; the video is not done until
it says complete. `preview_frames` at every word-landing instant and every cut.

## 4. Sound (after the picture passes)

`sound_design {slug}` for the cue plan, then `set_motion_sound`. Mapping that
works for this genre: each word-drop line → one `whoosh-light-01` at the first
word + `popup-tonal-10` on the last; card flights → `whoosh-airy-03` + `tiles-sliding-01`;
clock → `click-mechanical` ×3 + `transition-rise`; logo pill → `popup-resonant-01`;
typing → `text-keyboard-writing-01`; cursor click → `click-button-01`; generated
result → `transition-swell`; CTA → `popup-tonal-01`. No music bed under a
voice-over unless the user asks; keep cues ≤ -14 dB so the voice leads.

## 4a. Keep graphic copy editable

Any svg/html layer that carries words or brand colours (badge, wordmark, price,
timeline labels, prompt chips) must use `{{token}}` placeholders with `params`
— e.g. `params:{brand:{value:"Nyx Market",type:"text"},accent:{value:"#D7FF3A",type:"color"}}`
— or `params:"auto"`. The owner edits them in the studio's Parameters panel;
export, storyboard and studio all apply them.

## 4b. Light-heavy openers

If the reference is a neon / bloom / glass-UI opener (black ground, glowing logo,
light streaks, lens flares, glowing gradient cards, neon search pills, glass
app tiles), read `motion_guide {topic:"light"}`: every effect is 3-6 blurred
ellipses with `blend:"add"` plus one sharp element, with the measured numbers.

## 5. Hand over

Deliver: the studio link, the export link, and the VO script as a table
`t | line | direction` matching the beat chart exactly. Say which stills are
real and which were stand-ins.
