Profile
Back to NewsBack
GitHub Trending 5 min
Reader Mode
AbubakrChan/product-launch-motion: Claude Code skill for Dribbble-level product launch videos from code. One shape that never cuts, springs, a cursor that drives every change, beat-synced SFX, 60 fps motion blur. v2: use with Claude Opus 5.5.

AbubakrChan/product-launch-motion: Claude Code skill for Dribbble-level product launch videos from code. One shape that never cuts, springs, a cursor that drives every change, beat-synced SFX, 60 fps motion blur. v2: use with Claude Opus 5.5.

5 hours ago

Product Launch Motion — a Claude Code Skill

Make Dribbble-level product launch videos from code. Install the skill, point Claude Code at your product, and it directs and renders a launch film: one shape that morphs through every scene and never cuts, springs, a cursor that drives every change, camera zooms, real numbers on rolling odometers, music-synced SFX, real motion blur, 60 fps.

v2 is here. Use it with Claude Opus 5.5 to get results like the films below.

This skill has been rebuilt on a newer, simpler stack: plain HTML and closed-form springs instead of GSAP and HyperFrames, music-first timing instead of voiceover, and Playwright subframes with ffmpeg motion blur. **Use it with Claude Opus 5.5 to get results like the films below.** The original v1 (190 ⭐, thank you) is kept in legacy/.

The launch film: a typed brief, a search wall of creators, a personal email, an inbox on autopilot, a 432,014,696 views odometer and the wordmark</a>

🔊 Download it and turn the sound on. The preview above is silent. The real film is cut to the beat
of its music, and every click, whoosh and number roll lands on a drum hit.
Download the film (1080p, 60 fps, with sound)
to watch it as intended.

27 s, made for cheerful.ai. No After Effects, no stock templates, no AI video model: every frame is HTML computed from time. Bonus: the same film with a WebGL glass pass (refractive 3D shapes floating through every scene).

One shape, never cut: a button becomes a loader, a check, a creator reel, a rate slider, a toggle, tabs, a chart, a command palette and a toast, then loops

▶ One shape, never cut (14 s seamless loop, 1440×1440, with sound)

The idea the whole skill is built on. One element morphs through eleven UI states: button → loader → check → dynamic island → video reel → slider → toggle → tabs → chart → ⌘K palette → toast → button. Its content swaps with a short blur, the cursor does every click and drag, and the last frame is the first frame.

npx skills add AbubakrChan/product-launch-motion

Then ask for it:

Make a launch video for my product at example.com. You're the director.

What makes it look expensive

These are the rules the skill enforces. Each one came from a review note on a real film (references/prompts.md has the prompts and notes, verbatim).

  • One shape, never cut. Every state is the same element morphing size, radius and
colour. Transitions are morphs, camera pushes, or zooms into an element that becomes the next scene.
  • Blur content swaps. Text inside a morphing container exits short and early, then the
new text springs in. Nothing overlaps.
  • Springs, a tiny overshoot at most. Closed-form damped springs, never bouncy easing.
Toggle knobs and tab indicators stretch because their two edges ride different springs.
  • A cursor drives everything. Real clicks with press-scale and ripple, real drags that
spring back on release. The product's own agent can take over as a second cursor.
  • The camera frames every state. An empty frame is a bug. Pull-backs reveal scale: one
email becomes a wall of hundreds.
  • Music first. The beat grid is measured with numpy, the drop lands on the big moment,
and every synthesized UI sound is placed by its own measured peak, so it hits the beat.
  • Real data, original scenes. Real numbers on odometers, customer logos slammed one per
beat, and nothing copied from the product's website.
  • You get a director. It makes the creative calls itself and logs each one as a
DECISION: line you can overturn in one reply.

What's in the box

| Path | What it is | |---|---| | SKILL.md | The creative direction and the process Claude follows | | references/prompts.md | The original prompts and every review note, verbatim. Swap the product and reuse them | | references/technique.md | Springs, camera, cursor, odometer, audio and render code patterns | | legacy/ | The v1 skill: voiceover-led films with GSAP + HyperFrames, 34 traps |

Requirements

| Need | For | |---|---| | Claude Code with Opus 5.5 | Directing and building the film. Smaller models follow the rules but miss the detail | | Node ≥ 20 + Playwright | Rendering | | FFmpeg | Motion blur, encoding, loudness checks | | Python 3 + numpy | Beat grid and synthesized SFX | | A ~120 BPM royalty-free song | Optional. Check each track's licence; some free libraries mix in restricted items |

Everything runs locally and nothing costs money.

How it works

brief ──► state list on the beat grid ──► one HTML film, every pixel = f(t) in seek(t)
      ──► one frame per beat, contact sheet, fix ──► Playwright: 4 subframes per frame
      ──► ffmpeg tmix (motion blur) ──► 60 fps H.264 + mix ──► storyboard + seam scan

Because every frame is a pure function of time, renders are deterministic: seek to any moment and you get the same pixels, which is what makes per-beat QA and parallel rendering possible.

v1 → v2

| | v1 (legacy) | v2 | |---|---|---| | Timing | Locked to voiceover words | Locked to the music's measured beat grid | | Motion | GSAP timelines | Closed-form springs, pure seek(t) | | Renderer | HyperFrames | Playwright subframes + ffmpeg tmix motion blur | | Structure | Shots and transitions | One shape that never cuts | | Sound | Library SFX, levelled | Synthesized SFX placed by measured peak | | Depth | CSS camera rig | Camera springs + optional WebGL glass |

v1 is still the better choice for a narrated explainer. It lives on in legacy/.

License

MIT for the skill and references — see LICENSE.

The sample films do not travel. They were made for Cheerful and are theirs; see NOTICE for that and for third-party credits (music, footage, fonts).

Chat with me