Skip to content
Content
Skill

/cut-the-curve

The technique catalog: five velocity-matched SEAMS (zoom-through, INVERSE zoom-through, cut-the-curve, waterfall cut, rack-focus blur-cut) plus the two in-scene techniques — waterfall ENTRY (staggered arrival cascades for title cards / segment openers) and the nudge curve

From plugin
hyperframes
40k25 skills3 agents
Install
$ npx -y skills add heygen-com/hyperframes --skill cut-the-curve --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/cut-the-curve

Context preview

The summary Claude sees to decide when to auto-load this skill.

The technique catalog: five velocity-matched SEAMS (zoom-through, INVERSE zoom-through, cut-the-curve, waterfall cut, rack-focus blur-cut) plus the two in-scene techniques — waterfall ENTRY (staggered arrival cascades for title cards / segment openers) and the nudge curve

SKILL.md

cut-the-curve.SKILL.md
name: cut-the-curve
description: "The technique catalog: five velocity-matched SEAMS (zoom-through, INVERSE zoom-through, cut-the-curve, waterfall cut, rack-focus blur-cut) plus the two in-scene techniques — waterfall ENTRY (staggered arrival cascades for title cards / segment openers) and the nudge curve (slow-fast-slow three-phase group slides). Covers partial-travel (~12% of frame) velocity matching via mirrored power4 eases, the Z scale-sign rule, size-scaled blur (10px text / 18-20px full-frame), word-by-word staggered cuts, cascade pacing by element weight, and the 10/65/25 slide ratio. Read before authoring any transition, text-beat handoff, kinetic text entry, or group reposition. [depth, zoom, inverse-zoom, scale-sign, mirrored-zoom, rack-focus, pacing, velocity, cut-the-curve, waterfall, stagger, cascade, kinetic-text, title-card, segment-opener, nudge, slide, easing, group-motion, z-depth, motion-graphics, cinematic, transition, blur, directional-continuity]"

Cut the Curve — the technique catalog

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`.

Catalog

| # | 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 |

Z direction is a sign

"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.

Blur logic (all Z variants)

| 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.

---

1. Zoom-Through (forward)

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`.

2. Inverse Zoom-Through (backward)

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: se

Read more
Ships withhyperframes

Write HTML. Render video. Built for agents.

Get the whole plugin
Stats
40,275
Stars
3,835
Forks
Active
Maintenance
TypeScript
Language
Apache-2.0
License
28m ago
Last commit
5mo ago
Created

Repo: heygen-com/hyperframes

Other skills on hyperframes.