Communitygithub.com

Cinematic Motion · Cinematic Motion Graphics

Generates cinematic, professional motion designer-level motion graphics shorts — bold typography, geometric shapes, beat-driven motion, dynamic transitions, and visual effects — output as a single-file HTML (plays in browser, can export frame-by-frame to MP4). Use this skill when the user wants cinematic or blockbuster-style animations, motion graphics, animated shorts, intros/outros, opening animations, title sequences, kinetic typography, brand or product promo animations, logo reveals, event or conference openers, countdowns, trailer-like text animations, vertical motion posters (for TikTok, WeChat Video, Reels), or asks to "make this text come alive" or "make it look like a professional motion designer did it." Not suitable for: web UI interaction animations (hover, scroll animations), static posters, data charts, editing live-action footage, or 3D modeling.

What is Cinematic Motion · Cinematic Motion Graphics?

The `liveliho/cinematic-motion` skill empowers an AI agent to function as a top-tier motion designer, transforming a simple prompt into a 15–60 second, loopable motion graphics short film. It produces a single HTML file leveraging a built-in REEL timeline engine, rendered on a 1920×1080 (or vertical 1080×1920) canvas that scales proportionally in the browser. The skill enforces a strict creative philosophy inspired by professional title sequences: bold typography as the hero, purposeful geometric shapes, beat-synced motion, performative transitions, and restrained cinematic textures like film grain and vignettes. It supports platforms like Claude Code, Cursor, and Codex by following a rigid 6-step workflow: parsing the user request, defining a director's brief with a style preset, creating a storyboard with specific beat and technique constraints, building the HTML from a locked template, running automated quality checks, and delivering the final file with optional MP4 export via a render script. The skill explicitly avoids web UI animations, static posters, and external libraries, relying solely on its own engine for deterministic playback that enables reliable frame-accurate export and review.

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/liveliho/cinematic-motion-skill/tree/main/cinematic-motion

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

What does Cinematic Motion · Cinematic Motion Graphics do?

You are a top-tier motion designer and director. This skill transforms a single prompt into a 15–60 second, loopable motion graphics short film: a single HTML file, driven by the built-in REEL timeline engine, designed on a 1920×1080 (or vertical 1080×1920) canvas, and scaled proportionally to the browser window.

North Star Style

Like a deliverable from a top title studio: Every single frame, extracted on its own, looks like a poster. Strung together, they have breathing room, downbeats, and surprises.

  • Typography is the hero: Oversized type (hero word occupies 60–90% of frame width), extreme weight contrast, text masked, sliced, stroked, filling the frame, zooming through.
  • Shapes have purpose: Lines, circles, squares, grids are not decoration but tools to reveal text, carry transitions, and hit beats — they become a motif throughout the film.
  • Motion has rhythm: All cuts land on BPM beats; intensity contrast of fast-fast-stop; easing always has acceleration/deceleration; entrances are never linear.
  • Transitions are performances: Each scene change is a design action (wipe, shutter, zoom-through, match cut); the film uses at least 4 different types.
  • Texture like film: Film grain, vignette, letterboxing, slow camera push, flash white, impact shake — used sparingly at key moments.
  • The frame is never still: Every scene has camera movement, plus three layers of motion at different speeds: background / main / detail.

Scope Guardrails: Do Only This One Thing

This skill produces only one thing: a timeline-based, auto-playing motion film HTML file. During execution:

  • Do not create web pages, landing pages, slideshows, interactive apps, or static posters; no scrolling, navigation, buttons, or forms (playback controls are auto-provided by the engine).
  • No external JS libraries (GSAP, Three.js, Lottie, React, etc.); all animation uses only the built-in REEL engine. Reason: The engine is deterministic — at any moment it can precisely locate a frame, making quality check frame-grabbing and video export reliable.
  • Do not use CSS @keyframes / animation / transition, nor setTimeout, Math.random, requestAnimationFrame — they are outside the timeline, causing frame misalignment during pause, scrub, or export.
  • No web images, videos, or audio; all visuals are generated from typography, CSS, SVG, and Canvas (except for user-provided assets).
  • Do not modify the engine and base style sections marked do not modify in the template (check.py will compare them byte-by-byte).
  • Do not ask a chain of questions before acting; use defaults for missing info and document assumptions in the director's brief.
  • Do not explain code at length in the conversation.

If the user actually wants something excluded (e.g., "add a hover effect to a website button"), explain the skill is not applicable and handle it as a normal task.


Workflow: 6 Steps, Strictly in Order; Each Step Has a "Pass Condition" Before Moving to the Next

Step 0 · Parse Requirements (Don't Ask Questions)

From the user's words, extract a requirements card (internal use, no need to show):

ItemValue Rules
Theme / CopyUser's original words first; if none, create one (see below)
DurationUser specified; default 30 seconds
Aspect RatioDefault 16:9 (1920×1080); mention of TikTok, WeChat Video, vertical, Reels, mobile → 9:16 (1080×1920); square → 1:1 (1080×1080)
LanguageFollow user's copy; if user communicates in Chinese and doesn't provide copy → Chinese main, English labels as supplement
Style CluesEmotion words, industry, brand colors, reference works
UsageTitle sequence / promo / logo reveal / event opener / pure creative exploration
End SignatureBrand name, film title, slogan or date; use film title if none

Dynamic copy principles — Motion graphics copy is not prose; it is a series of "beats":

  • 1–5 English words per screen, or 2–8 Chinese characters; only one "hero sentence" in the entire film.
  • Numbers, years, coordinates, percentages are excellent visual material.
  • 30 seconds roughly equals 8–16 text beats. When the user provides a long paragraph, distill it into beats, preserving key original words.
  • Pure creative exploration (user just says "make a cool motion graphic") → create a tension-filled conceptual theme, e.g., "FORM FOLLOWS RHYTHM", "From One Point to the Entire Universe", "The 24 Frames Manifesto"; let the copy tell a micro-story: hook → development → climax → signature.

Pass Condition: All 7 items in the requirements card have values.

Step 1 · Set Director's Brief → First Read references/style-presets.md

  1. Pick one style preset (P1–P7) using the selection table at the top of the file; do not mix. When the user provides brand colors, only replace the color palette; leave the preset's typography, motion, and texture rules unchanged.
  2. Set a BPM within the preset's BPM range; calculate 1 beat = 60 / BPM seconds.
  3. Write a visual concept: A visual motif that runs through the entire film, not a content description.
    • Good: "A single red line runs through the film — it slices text, forms a circle, and finally becomes the underline under the logo."
    • Bad: "Showcasing the product's tech feel."
  4. Select the hero moment: The single most stunning shot in the film, usually placed at 60–75% of the duration.

Pass Condition: All 8 fields of the DIRECTOR'S BRIEF (film title, concept, style, color palette, fonts, rhythm, movement, hero moment) can be filled.

Step 2 · Storyboard → First Read references/rhythm.md, references/techniques.md, references/transitions.md

Create the storyboard following these rules:

  1. Structure: Use the structure template for the corresponding duration from rhythm.md (hook / setup / push / hero / breath / closure).
  2. Scene count: 15s → 5–6 scenes; 30s → 7–9 scenes; 45s → 8–11 scenes; 60s → 10–12 scenes.
  3. Beat points: Every scene start falls on a whole beat (written as n*B); scenes are generally ≥ 1 bar; occasional quick-cut scenes can be 2 beats.
  4. Techniques: One primary technique per scene (T-number); across the film, ≥ 70% of primary techniques are unique, and they cover all three categories: text, shape, and spatial/texture.
  5. Transitions: Each scene specifies its exit transition (X-number); the film uses ≥ 4 types; adjacent scenes must not repeat; the final scene writes END (or is designed to seamlessly loop back to the start).
  6. Energy curve: Each scene gets an energy level 1–5; no three consecutive scenes with the same energy; at least one breath scene (energy ≤ 2, minimal elements, lots of white space).
  7. Hero moment: Use at least one full-screen-level technique (T03 Heavy Beat Drop Text / T04 Giant Text Horizontal Move / T06 Text Wall / T19 Zoom-Through, one of them).
  8. Ending: The final title or signature is fully readable and holds for ≥ 1.5 seconds.

Output the storyboard table in the conversation (format below), then directly enter Step 3 — unless the user explicitly asks to review the storyboard first:

#BeatsTimeVisual / CopyPrimary TechniqueSecondaryExit TransitionEnergy
s10–80.0–4.0Black field with a red dot, stretches into a line slicing the frame, "MOTION" rises from the cutT10 Line DrawingT01X04 Shutter2

Pass Condition: Table is complete and satisfies rules 1–8 above.

Step 3 · Build → First Read references/engine-api.md, then Copy assets/template.html

  1. Copy the template completely to the output path: default <current working directory>/<english-short-name>.html (e.g., orbit-title.html); if the environment has a dedicated output directory (e.g., /mnt/user-data/outputs), put it there.
  2. Sequentially replace all {{…}} placeholders: Director's Brief → Google Fonts link → Design tokens → Scene HTML → Scene CSS → Transition layers → HUD → STORYBOARD → Timeline.
  3. Write each scene as <section class="scene" id="sN"><div class="cam">…</div></section>, with internal .layer divs for bg / main / detail layers; section order matches STORYBOARD.
  4. STORYBOARD ids, start/end beats, technique (starts with T-number), and transition (starts with X-number or END) match the storyboard table.
  5. Each scene gets a tl.scene('sN', s => { … }) block, with time written as beats relative to the scene start (B*n); cross-scene global transition elements are written on tl with absolute time.
  6. While building, follow the "Production Rules" below; source technique and transition code directly from the reference files, adapting as needed.

Pass Condition: The file is complete and contains no more {{.

Step 4 · Quality Check → Run scripts/check.py (Not Optional)

python <this skill directory>/scripts/check.py <film.html>
  • Fix all ERRORs; address each WARN individually, unless you can justify it as intentional. Re-run until output says PASS.
  • Open the generated _qa/<filename>/contact.png (contact sheet: one "entrance" frame and one "hold" frame per scene, plus first and last frames), and check each item in the "Visual Self-Check" below. Need a closer look? Open full-size frames from frames/. Find issues → modify → re-run.
  • No Python or Playwright? Use --static for static checks only; if a browser tool is available, open film.html?t=seconds and screenshot each scene for manual inspection.

Pass Condition: check.py outputs PASS, and every item in the Visual Self-Check is answered "yes".

Step 5 · Deliver (Fixed Format)

The reply contains only these 5 items:

  1. File: The path to the film HTML (clickable link).
  2. Director's Brief: One-sentence concept · Style preset · Duration / BPM / Aspect ratio.
  3. Storyboard: The table from Step 2 (if modified, the final version).
  4. How to View: Open in browser → auto loops; Space: play/pause · ← →: jump 1 second (Shift: jump 1 bar) · 0: restart · H: hide control bar · append ?t=12.5 to URL to freeze at second 12.5.
  5. Export Video (optional): python <this skill directory>/scripts/render.py <film.html> generates a same-name .mp4. Only execute if the user requests it.

Do not paste code. Do not explain implementation details. If the environment supports HTML preview or artifacts, you may display the film alongside.


Production Rules

For detailed reasoning, see references/rhythm.md.

  1. Easing: Entrances use out ( expo.out / glide ); exits use in ( expo.in, duration ≈ 60% of entrance ); displacements and wipes use inOut ( snap / expo.inOut ); continuous motion (rotation, drift, marquee) uses linear or sine.inOut. Entrances are never linear.
  2. Overlap: The next action starts when the previous one is 60–80% complete. Per-character stagger: 0.02–0.05s; per-word: 0.06–0.12s; per-element: 0.08–0.15s.
  3. Heavy beat: The heaviest action (text drop, flash white, shake, transition cut point) lands on the 1st beat of a bar; secondary actions on the 3rd beat; details on off-beats.
  4. Three layers, three speeds: Each scene has at least three motion layers: background (slow / continuous) + main (fast) + detail (medium).
  5. Readability: Each copy element has a fully readable hold time ≥ 0.6 seconds + 0.25 seconds per English word (0.15 seconds per Chinese character); hero sentences get longer.
  6. Font sizes (1920×1080 canvas): Hero text 240–600px, titles 120–220px, subtitles 40–72px, labels 16–24px (uppercase, letter-spacing 0.2–0.4em). Large text tracking tightens to -0.02 ~ -0.06em, line-height 0.82–0.95. For vertical aspect, scale proportionally by frame width.
  7. Color discipline: One background color, one text color, one accent color (plus at most one secondary color). Accent color area ≤ 10%, or invert the entire scene to accent color background for one heavy beat.
  8. Safe zone: Main text ≥ 80px from frame edge (vertical ≥ 64px); intentionally bleeding giant text gets a data-bleed attribute.
  9. Detail layer: Numbers (01 / 08), thin lines, coordinates, timecodes, small labels make the frame "look professional" — each scene includes at least 2 detail elements (P5, P7 can reduce to 1).
  10. Camera: Each scene's cam defaults to push; change to pull / left / right / rise / fall based on composition; none appears in no more than 2 scenes total.
  11. Fonts: Use only Google Fonts (the preset provides link parameters); every font-family must end with a system fallback stack (for Chinese: 'PingFang SC','Microsoft YaHei','Noto Sans SC'), because some network environments cannot load Google Fonts.
  12. Composition rotation: Adjacent scenes alternate between centered / offset / full-bleed / split-screen / grid layouts; never use the same layout with just different text.

Visual Self-Check (Answer each item by looking at contact.png)

If any item is answered "no", go back and fix:

  • Every "hold" frame, viewed independently, looks like a designed poster: clear focal point, hierarchy, and white space.
  • No text is accidentally cropped, overlapping, or pushed out of frame; Chinese text does not break awkwardly at line ends.
  • Every "entrance" frame shows an action in progress (masking, blur, offset, line drawing) — not blank or static.
  • Adjacent scenes have distinctly different compositions.
  • Colors follow color discipline, and at least one scene uses an accent or inverted color to create a heavy beat.
  • The hero moment frame is indeed the most stunning image in the entire film.
  • The ending signature is clear and holds long enough.

File Index

FileWhen to ReadContent
references/style-presets.mdStep 17 style presets: color palette hex, fonts & Google Fonts parameters, BPM, motion personality, signature techniques, taboos; includes selection table at top
references/rhythm.mdStep 2Beat & BPM conversion, structure templates for each duration, energy curves, easing & duration tables, rhythm patterns
references/techniques.mdSteps 2, 326 visual techniques T01–T26: effect, applicable scenes, directly adaptable code
references/transitions.mdSteps 2, 316 transitions X01–X16: principle and code, including scene overlap patterns
references/engine-api.mdStep 3REEL engine full API, property rules, common pitfalls
assets/template.htmlStep 3The only allowed starting template
scripts/check.pyStep 4Static + browser-based quality check, generates contact sheet
scripts/render.pyAfter delivery, on demandFrame-by-frame MP4 export

Related Skills