Yuv Viral Video
hoodini/ai-agents-skills
Edit any selfie or screen-share footage into a viral short-form video in YUV.AI's signature style — Apple-style liquid-glass cards (real CSS backdrop-filter), dark-mode polish, MrBeast-paced cuts…
A catalog of velocity-matched video transitions and in-scene motion techniques, with parameters for zoom-throughs, waterfall cuts, rack-focus blurs and group slides.
$ npx skills add heygen-com/hyperframes --skill cut-the-curve -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install heygen-com/hyperframes cut-the-curve --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/heygen-com/hyperframes.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/cut-the-curve .claude/skills/cut-the-curve && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "cut-the-curve" agent skill from https://github.com/heygen-com/hyperframes/tree/main/.agents/skills/cut-the-curve into .claude/skills/cut-the-curve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cut-the-curve", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/heygen-com/hyperframes/tree/main/.agents/skills/cut-the-curveType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add heygen-com/hyperframes --skill cut-the-curve -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install heygen-com/hyperframes cut-the-curve --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/heygen-com/hyperframes.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/cut-the-curve .agents/skills/cut-the-curve && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cut-the-curve" agent skill from https://github.com/heygen-com/hyperframes/tree/main/.agents/skills/cut-the-curve into .agents/skills/cut-the-curve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cut-the-curve", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add heygen-com/hyperframes --skill cut-the-curve -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install heygen-com/hyperframes cut-the-curve --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/heygen-com/hyperframes.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/cut-the-curve .cursor/skills/cut-the-curve && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cut-the-curve" agent skill from https://github.com/heygen-com/hyperframes/tree/main/.agents/skills/cut-the-curve into .cursor/skills/cut-the-curve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cut-the-curve", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/heygen-com/hyperframes.git --path .agents/skills/cut-the-curve--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add heygen-com/hyperframes --skill cut-the-curve -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install heygen-com/hyperframes cut-the-curve --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/heygen-com/hyperframes.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/cut-the-curve .gemini/skills/cut-the-curve && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cut-the-curve" agent skill from https://github.com/heygen-com/hyperframes/tree/main/.agents/skills/cut-the-curve into .gemini/skills/cut-the-curve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cut-the-curve", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install heygen-com/hyperframes cut-the-curveInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add heygen-com/hyperframes --skill cut-the-curve -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/heygen-com/hyperframes.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/cut-the-curve .github/skills/cut-the-curve && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cut-the-curve" agent skill from https://github.com/heygen-com/hyperframes/tree/main/.agents/skills/cut-the-curve into .github/skills/cut-the-curve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cut-the-curve", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add heygen-com/hyperframes --skill cut-the-curve -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install heygen-com/hyperframes cut-the-curve --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/heygen-com/hyperframes.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/cut-the-curve .opencode/skills/cut-the-curve && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cut-the-curve" agent skill from https://github.com/heygen-com/hyperframes/tree/main/.agents/skills/cut-the-curve into .opencode/skills/cut-the-curve/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cut-the-curve", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cut-the-curveA catalog of velocity-matched video transitions and in-scene motion techniques, with parameters for zoom-throughs, waterfall cuts, rack-focus blurs and group slides.
The principle is to cut at peak velocity and match direction and speed on both sides of the seam. Five seam techniques are covered: zoom-through, inverse zoom-through, cut the curve, waterfall cut and rack-focus blur-cut, each with a scope, an axis and a recommended use. Two in-scene techniques complete the set: waterfall entry for title cards and segment openers, and the nudge curve for sliding a composed group aside to make room.
The mechanics include partial-travel velocity matching with mirrored power4 eases, a sign rule for depth where scale must keep growing or keep shrinking across the cut, blur sized to the element, word-by-word staggered cuts, cascade pacing by element weight and a three-phase slow-fast-slow slide. GSAP code templates sit in examples/gsap-implementation.md, and the governing seam rules live in a separate motion-doctrine skill that should be read first.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 8bca7c4. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Cut the Curve Transitions loads about 4.6k tokens when it runs. Until then it costs about 241 tokens; SKILL.md has 1,834 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from heygen-com/hyperframes at commit 8bca7c4, republished under its Apache-2.0 licence (© heygen-com). 1,834 words, ~4,648 tokens.
.claude/skills/cut-the-curve/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Five SEAM techniques, one principle: cut at peak velocity, match direction and speed
on both sides of the cut — plus the two in-scene techniques (§6 arrivals, §7 slides).
The seam LAW — vector law, the current, the ledger, the Seam Gate — lives in
motion-doctrine; read it first. This skill is the parameters and mechanics.
All GSAP code templates (worker + registry): examples/gsap-implementation.md.
| # | Technique | Scope | Axis | Use for |
|---|---|---|---|---|
| 1 | Zoom-Through (forward) | Within-scene text swap | Z, toward viewer | progressing deeper into the same thought |
| 2 | Inverse Zoom-Through | Arrival / payoff beat | Z, away from viewer | something bigger lands |
| 3 | Cut the Curve | Between scenes | X / Y | the default boundary, the film's current |
| 4 | Waterfall Cut | Text-to-text seam | X, per-word | word-level handoff between big-text beats |
| 5 | Rack-Focus Blur-Cut | Same-surface state swap | X / Y / Z | the one cut you want SEEN — a DSLR focus-pull flourish |
| 6 | Waterfall Entry | In-scene ARRIVAL (no seam) | Y, from below | title cards, segment openers, list intros |
| 7 | Nudge Curve | In-scene group slide (no seam) | X / Y | repositioning a composed group to make room |
"Same axis" is not enough on Z — the sign of d(scale)/dt must match across the cut:
| Z vector | Exit scale | Entry scale | Variant |
|---|---|---|---|
| Push (forward) | growing 1 → 1.2 | growing 0.75 → 1 | zoom-through |
| Pull (back) | shrinking 1 → 0.8 | shrinking 1.25 → 1 | inverse zoom-through |
Banned mirrors: a receding exit answered by a grow-from-small entry (pull flips to push — the common one, since grow-from-small is the default element entrance), and a push exit answered by an oversized retraction. This binds the incoming scene's OWN entrances during the seam window (cut + ~0.5s), not just the wrapper tween: hold the incoming frame composed, or author its entrance to match the sign. Verify per Seam Gate rule 7.
| Subject | Peak blur | Why |
|---|---|---|
| Text-scale (headline, word group) | 10px | 20px smears letterforms — the cut reads as a glitch, not speed |
| Full-frame surface (window, card, screenshot) | 18–20px | lighter blur on a big surface reads as a rendering hiccup |
Same peak blur on both sides at the swap frame. Blur the WRAPPER, never children.
Z-axis velocity-matched cut; never both texts visible. Everything GROWS: the outgoing text accelerates toward camera, a hard swap hides at peak blur, the incoming text keeps growing into the focal plane. Headlines and short phrases only. Total ≈ 0.4s.
| Phase | Scale | Blur | Opacity | Ease | Duration |
|---|---|---|---|---|---|
| Exit | 1 → 1.2 | 0 → 10px | 1 → 0.15 | power3.in (opacity: separate none tween) | 0.2s |
Cut (tl.set) | in: 0.75 | 10px | out: 0 / in: 0.15 | — | — |
| Entry | 0.75 → 1 | 10 → 0px | 0.15 → 1 | expo.out | 0.5s |
Exit opacity MUST be its own linear tween — power3.in holds opacity near 1 too long.
On entry all properties share expo.out.
The pull-back mirror: the outgoing element RECEDES; the incoming arrives OVERSIZED (as if just behind camera) and retracts into the focal plane. Everything SHRINKS. Spend on ARRIVAL/payoff beats — a payoff line, a giant reply, a held end-state — never ordinary boundaries. Total ≈ 0.7s (30% exit / 70% entry).
| Phase | Scale | Blur | Opacity | Ease | Duration |
|---|---|---|---|---|---|
| Exit | 1 → 0.8 | 0 → 10px | 1 → 0.15 | power3.in (opacity: separate none tween) | ~0.2s |
Cut (tl.set) | in: 1.25 | 10px | out: 0 / in: 0.15 | — | — |
| Entry | 1.25 → 1 | 10 → 0px | 0.15 → 1 | expo.out | ~0.5s |
Blur is 10px text-scale; 18–20px only when both sides are full-bleed surfaces.
Sign discipline: the incoming scene arrives as a composed frame inside the retracting wrapper — no grow-from-small intro in the seam window. Staged entrances happen after the retraction settles, or start ≥1 and retract.
X/Y velocity-matched cut — the default for ALL scene-to-scene boundaries, in the film's current, not an accent. The outgoing hero accelerates in one direction, the cut lands mid-motion, the incoming hero continues the SAME direction and decelerates. Total ≈ 0.6s; directions LEFT / RIGHT / UP / DOWN (default LEFT).
Partial travel: ~12% of frame (≈230px at 1920) — never full off-screen moves.
| Direction | Exit | Entry start → end |
|---|---|---|
| Leftward | x: 0 → −230 | x: +230 → 0 |
| Rightward | x: 0 → +230 | x: −230 → 0 |
| Upward | y: 0 → −230 | y: +230 → 0 |
| Downward | y: 0 → +230 | y: −230 → 0 |
Mechanics:
power4.in + entry power4.out, same distance and duration —
the two halves of one power4.inOut, so velocity matches exactly at the cut.#root must be opaque
(background: var(--canvas-deep, var(--canvas, #000))) — the mid-window cut opens a
summed-opacity < 1 window that flashes white otherwise (see seam-craft).push-slide exists but violates partial-travel and mid-motion phase; prefer cut-the-curve.
Cut-the-curve at WORD granularity — the strongest leftward cut for text-to-text seams. Outgoing words ramp out on their own curves; incoming words cascade in mid-flight — a wave the eye rides across the seam.
Scope: worker-authored inside one multi-beat comp (stacked full-frame .beat layers),
NOT a registry/injector type — it tweens word spans, not clip wrappers. The boundary into
and out of the text-beat block still gets a normal registry transition. Does not count
against the 2–3 transition budget.
| Parameter | Value | Why |
|---|---|---|
| Travel | ±230px (~12% frame) | partial travel + velocity > full-frame push |
| Exit | 0.34s power4.in | the acceleration IS the cut |
| Exit fade | 0.18s, starts with x | word gone by ~25–30% of travel — no smear |
| Exit stagger | +0.022s reading order | the line peels, not a block slide |
| Entry | 0.3s power4.out | back half of the composite — velocity match |
| Entry start opacity | 0.35 | mid-path ignition; binary 0→1 pops |
| Entry gaps | 0.05s × 0.84 decay | accelerating cascade, resolves composed |
Rules:
x: +230, opacity: 0 at build time — immediateRender: false
alone leaves un-started words visible at rest.The one variant where the cut is SEEN: a defocus blur SPIKE hides a single-frame hard swap — a handheld-DSLR focus-pull. Use as an occasional flourish for a state swap of the SAME surface within one visual theme; never the default boundary.
Differences from the others: outgoing stays FULLY OPAQUE until the cut (the blur hides
the swap — no early fade); eases power2.in / power2.out (soft optics, not momentum).
Rules:
<video> directly (wrap it).Staggered ARRIVAL cascade: words/elements whip in from below (one consistent direction), each starting before the previous settles — an accelerating wave that resolves into a composed layout. Title cards, segment openers, list/feature intros. The seam sibling is §4; do not mix their rules:
| §6 Entry (arrival) | §4 Waterfall Cut (seam) | |
|---|---|---|
| Opacity | BINARY 0→1 via tl.set at entry — never fade | ignites at 0.35 mid-path — the fade IS the velocity trick |
| Axis default | Y, from below | X, riding the current |
| Outgoing side | none | words ramp out on mirrored power4.in |
Choreography:
| Parameter | Anchor/heavy | Normal word | Light/punctuation |
|---|---|---|---|
| Y offset | 60–80px | 40–50px | 30–48px |
| Duration | 0.16–0.20s | 0.13–0.16s | 0.10–0.13s |
| Overlap | 0–2f gap | 1f overlap | 1–2f overlap |
power4.out (expo.out for extra snap); never .inOut on an entry.Slow-fast-slow repositioning of a composed group (word rows, card stacks, lists) to
reveal content or make room. No single built-in ease produces it — power4.inOut
smacks to a stop. Chain three tweens on one property:
| Phase | Ease | Distance | Time | Feel |
|---|---|---|---|---|
| 1 ramp-in | power3.in | ~10% | ~20% | barely moves — motion registers, no jolt |
| 2 burst | none (linear) | ~65% | ~18% | ~2× average px/frame — purposeful |
| 3 tail | power4.out | ~25% | ~62% | decaying creep to rest — kills the smack |
Rules:
power5.out.| Zoom-Through | Inverse Zoom | Cut the Curve | Waterfall Cut | |
|---|---|---|---|---|
| Scope | Within-scene text swap | Arrival/payoff beat | Between scenes | Text-to-text seam |
| Z sign / axis | growing (push) | shrinking (pull) | X / Y | X, per-word |
| Travel/scale | 1→1.2, then 0.75→1 | 1→0.8, then 1.25→1 | ±230px | ±230px |
| Peak blur | 10px text / 18–20 full-frame | 10px text / 18–20 full-frame | 8–10px optional | none |
| Eases | power3.in / expo.out | power3.in / expo.out | power4.in / power4.out | power4.in / power4.out |
| Feel | progressing through | arriving at | carried sideways | a wave across the seam |
| Don't | Instead |
|---|---|
| Two texts visible during a zoom-through | Hard cut at blur peak, one text at a time |
| 20px blur on text-scale subjects | 10px text; 18–20px only full-frame |
| Inverse-zoom exit → grow-from-small entry (or push → oversized retraction) | Match the scale-velocity SIGN; verify at cut±0.1s |
| Incoming comp's own scale-up intro under a Z-seam wrapper tween | Arrive composed; stage entrances after the seam settles or match the sign |
| Mismatched blur/opacity at the swap | Identical values at the cut frame |
Gentle entry easing (power2.out) | Mirror the exit: power4.out / expo.out |
| Full off-screen exits/entries | Partial travel (~12%) + early fade |
.inOut eases on either side of a cut | Mirrored power4.in / power4.out |
| Lone element fading long before its cut | Fade ends ~0.02s before the cut, or word-cascade |
| Equal gaps across a waterfall cascade | Shrink gaps ×0.84 per word |
| Zoom-through on body text | Headlines and short phrases only |
| Scene cuts without cut-the-curve | It is the default boundary |
| Consecutive boundaries in opposing directions | One current; reserved vectors spent on meaning |
Unpainted #root behind a mid-window cut | Opaque stage ground |
| Queued entries (each waits for the previous to settle) | Overlap ±1–2 frames — the cascade is a wave, not a queue |
| Same offset/duration for every cascade element | Vary by weight: anchors travel further, punctuation snaps |
| Gradual opacity fade on a §6 arrival | Binary 0→1 via tl.set — fading fights the snap (seam cuts fade; arrivals don't) |
Single ease for a group slide (power4.inOut, slow()) | The §7 three-phase chain |
| Nudge tail shorter than 3× the ramp-in | Extend the tail's TIME, not its distance |
All GSAP templates — worker-authored versions, registry gsap_templates, the combined
cut-the-curve + zoom, waterfall DOM/CSS/JS, rack-focus — live in
examples/gsap-implementation.md.
© heygen-com, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .agents/skills/cut-the-curve of heygen-com/hyperframes.
Open the folder on GitHubat commit 8bca7c4
We found 2 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in heygen-com/hyperframes, which our catalogue first saw on October 7, 2026.
Cut the Curve Transitions next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Cut the Curve Transitions this skillheygen-com/hyperframes | 60k | 1 repos | ~4.6k | Automated safety check: Pass | Apache-2.0 | |
| Yuv Viral Videohoodini/ai-agents-skills | 282 | — | ~7.5k | Automated safety check: Notes | None | |
| Hyperframes Animationchmonitor/chmonitor | 301 | 2 repos | ~1.8k | Automated safety check: Pass | GPL-3.0 | |
| HyperFrames Video Compositionsspinabot/brigade | 11k | — | ~1.6k | Automated safety check: Pass | MIT | |
| Motion DesignLottieFiles/motion-design-skill | 2.1k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Motion Videobestagentkits/motion-video-skill | 118 | — | ~1.5k | Automated safety check: Pass | MIT |
hoodini/ai-agents-skills
Edit any selfie or screen-share footage into a viral short-form video in YUV.AI's signature style — Apple-style liquid-glass cards (real CSS backdrop-filter), dark-mode polish, MrBeast-paced cuts…
chmonitor/chmonitor
All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus…
spinabot/brigade
Writes HTML compositions with a GSAP timeline that the render_video tool turns into deterministic MP4 videos from data, text or layouts.
LottieFiles/motion-design-skill
Applies motion design principles to create emotionally-driven, technically sound animations and transitions.
bestagentkits/motion-video-skill
Produce beat-synced 1080p motion-graphic videos in HyperFrames (HTML + GSAP) with an AI voice-over, Vietnamese karaoke captions, SFX and generated music, in one of two proven styles (glass keynote…
pixelxzen/phantom-motion
交互式动态视觉叙事生成器 v11.0 (Hybrid Drive Edition)。基于用户输入的任意主题关键词, 通过多轮交互式对话收集需求,利用 React 19 + Tailwind 4 驱动的 Minimal Mono 极简编辑器, 实时操纵隔离在 Iframe 中的硬核 GSAP/WebGL 影视级叙事引擎。
heygen-com/hyperframes
Collects motion rules, scene blueprints, transitions and runtime adapters for HyperFrames video compositions, with GSAP as the default animation runtime.
heygen-com/hyperframes
Adds captions to a single-subject talking-head video without editing the footage, from plain subtitles to cinematic text placed behind the speaker.
heygen-com/hyperframes
Turns a weekly changelog markdown file into a branded HyperFrames video with voiceover, animated mock-UI scenes and captions, using fonts, background and scripts bundled in the skill.
heygen-com/hyperframes
Turns an article, notes or a topic brief into an explainer video whose visuals are invented per scene, built frame by frame in HyperFrames with no footage.
heygen-com/hyperframes
Imports Figma assets, brand tokens, components and motion into a HyperFrames video composition, using the Figma REST API with a connector or native export for shaders.
heygen-com/hyperframes
Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.
Works with
Categories
A catalog of velocity-matched video transitions and in-scene motion techniques, with parameters for zoom-throughs, waterfall cuts, rack-focus blurs and group slides. The principle is to cut at peak velocity and match direction and speed on both sides of the seam. Five seam techniques are covered: zoom-through, inverse zoom-through, cut the curve, waterfall cut and rack-focus blur-cut, each with a scope, an axis and a recommended use.
Cut the Curve Transitions fits situations like: authoring a transition between two scenes in a generated video; animating a title card or segment opener with staggered arrivals; handing off big text word by word between beats; repositioning a group of elements to make room for new content.
Run `npx skills add heygen-com/hyperframes --skill cut-the-curve -a claude-code`. Or copy the skill folder (.agents/skills/cut-the-curve in heygen-com/hyperframes) into .claude/skills/cut-the-curve in your project. Claude Code loads it when a task matches its description.
Run `npx skills add heygen-com/hyperframes --skill cut-the-curve -a codex`. Or copy the skill folder (.agents/skills/cut-the-curve in heygen-com/hyperframes) into .agents/skills/cut-the-curve in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add heygen-com/hyperframes --skill cut-the-curve -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cut-the-curve, .gemini/skills/cut-the-curve, .github/skills/cut-the-curve and .opencode/skills/cut-the-curve in your project.
SKILL.md names no scripts, command-line tools or credentials: Cut the Curve Transitions is instructions for the agent only. Our summary lists: GSAP for the animation code templates; The motion-doctrine skill.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Cut the Curve Transitions is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.6k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Cut the Curve Transitions: Yuv Viral Video (hoodini/ai-agents-skills, 282 stars), Hyperframes Animation (chmonitor/chmonitor, 301 stars), HyperFrames Video Compositions (spinabot/brigade, 11k stars) and Motion Design (LottieFiles/motion-design-skill, 2.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
heygen-com (a GitHub organization) maintains it in heygen-com/hyperframes, which has 60,472 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on October 11, 2026.
Source: heygen-com/hyperframes on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.