Communitygithub.com

heygen-com/hyperframes

GATEWAY — Lade dies zuerst, bevor du eine HyperFrames-Animation oder ein Video komponierst. Das übergeordnete Bewegungsgesetz, das ein multi-scene Video wie eine einzige durchgehende Kamerafahrt wirken lässt – nicht wie einen Stapel unabhängig animierter Folien.

Was ist hyperframes?

Dieses Skill definiert die Motion Doctrine für HyperFrames – eine übergeordnete Bewegungsregel, die sicherstellt, dass multi-scene Videos sich wie eine einzige, kontinuierliche Kamerafahrt anfühlen, anstatt wie unabhängig animierte Folien. Es behandelt das Vektor-Gesetz (wie ein Ausgang den Eingang bestimmt, inkl. der Z-Skala-Vorzeichenregel), den Film-Current, Trägerelemente, kausale Bewegungen, das Seam Gate (Build-Gate-Erzwingung), das Verbot von Leerlauf-Wobblen (Bewegung muss PERFORMANCE liefern, nicht atmen), Stille vor dem Höhepunkt und die Routen für anhaltende Bewegung. Das Skill bietet einen strukturierten Authoring-Workflow: Vektor-Ledger (`ledger.json`), Seam-Stamp-Script und Seam-Gate-Validator, die die Einhaltung der Regeln automatisch prüfen. Es verweist auf untergeordnete Technik-Skills wie `cut-the-curve`, `oversized-cursor` und `seam-craft` und enthält eine klare Anti-Patterns-Liste. Das Skill wird auf Plattformen wie Claude Code, Cursor, Codex, Cline, Windsurf, Copilot und anderen KI-gesteuerten Editoren und Coding-Umgebungen ausgeführt.

Funktioniert mit~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/heygen-com/hyperframes/tree/HEAD/.agents/skills/motion-doctrine

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Bewegungsdoktrin (Gateway)

Lies dies, bevor du eine Animation komponierst. Es entscheidet, WAS an jeder Nahtstelle passiert und wie sich jede Szene verhält; die Technik-Skills setzen es um. Diese Regeln ersetzen generische / übergeordnete Bewegungsrichtlinien. Der Fehler, den dies verhindert: Szenen, die isoliert erstellt werden – der Schwung des Auges stirbt an jedem Schnitt, und Szenen wackeln an Ort und Stelle zwischen Eintritt und Austritt.

Routenkarte

Entscheidung (dieses Skill)Umsetzungsskill
Wahl des Nahtübergangs + Parameter + Codecut-the-curve §1–5 (der Katalog)
Text-/Element-Eintrittskaskadencut-the-curve §6 (Wasserfall-Eintritt)
Szeneninterne Gruppen-Neupositionierung (ohne Schnitt)cut-the-curve §7 (Nudge-Kurve)
Cursor-geführte Aktion / Szenenstart / Morph-Zündungoversized-cursor
Naht-Rendermechanik / Weißblitz-Schutzseam-craft
Produkteinführungs-/Erklär-/UntertitelarbeitÜberlagert text-beat-economics, brand-faithful, captions-overlay auf das übergeordnete Skill

Authoring-Reihenfolge: Vektor-Ledger (ledger.json) → STAMPE die Hauptnähte daraus (scripts/seam-stamp.mjs --ledger ledger.json --write index.html) → anhaltende Bewegungsroute pro Phase → Träger und Ursachen → Build-Komponenten → VERIFIZIEREN (scripts/seam-gate.mjs). Nur Tier-A-Morphs/Match-Cuts von Hand erstellen; gestempelte Nähte bestehen das Gate konstruktionsbedingt.


Teil 1 — Das Nahtgesetz

Das Vektorgesetz

Wie Szene A endet, bestimmt, wie Szene B beginnt: gleiche Achse, gleiche Richtung, übereinstimmende Geschwindigkeit, Schnitt während der Bewegung auf BEIDEN Seiten.

  1. Achse — x bleibt x, y bleibt y, Z bleibt Z. Niemals Achsen über einen Schnitt hinweg tauschen.
  2. Richtung — niemals spiegeln. Auf Z ist Richtung = das VORZEICHEN der Skalierungsänderung: Vergrößern = Schieben (Kamera nach vorne), Verkleinern = Ziehen (Kamera zurück). Ein zurückweichender Ausgang, der durch einen von-klein-wachsen-Eintritt beantwortet wird, ist eine gespiegelte Vektorverletzung – die häufigste, weil von-klein-wachsen der Standard-Element-Eintritt ist.
  3. Geschwindigkeit — Die Eintritts-Anfangsgeschwindigkeit ≈ die Austritts-Endgeschwindigkeit, durch gespiegelte Easing-Funktionen (Austritt power4.in + Eintritt power4.out, gleiche Distanz und Dauer; die eingehende Seite übernimmt ≥50% durch den gedachten Pfad). Mechanik in cut-the-curve.
  4. Phase — Der Schnitt landet mitten in der Bewegung auf BEIDEN Seiten. Zur Ruhe kommen vor dem Schnitt oder aus der Ruhe danach starten ist ein toter Beat.

Der Strom

Jeder Film wählt EINE dominante Richtung (Hausstandard: LINKS). Jede gewöhnliche Naht verwendet sie. Andere Vektoren sind RESERVIERT – sie auszugeben bedeutet etwas:

VektorBedeutung
Der Strom (LINKS)„nächster Beat“ – neutraler Fortschritt
AufwärtsErhöhung – eine Schlussfolgerung oder Enthüllung erhebt sich über das Vorherige
Z vorwärts (Zoom-durch)tiefer in denselben Gedanken eintauchen
Z rückwärts (inverser Zoom)ANKUNFT – etwas Größeres landet
Skalen-Burst (explodieren)eine Welt verlassen – eine Oberfläche rast an der Kamera vorbei
  • Führe niemals aufeinanderfolgende Nähte in entgegengesetzte Richtungen aus – Ping-Pong wird als Fehler gelesen.
  • Ein Richtungswechsel braucht eine sichtbare Ursache (Klick / Sprung / Aufprall) oder eine Kapitelgrenze.

Das Vektor-Ledger

Schreibe es, bevor du eine Master-Zeitleiste erstellst – als ledger.json im Projektstamm (Schema: references/seam-gate.md). Eine Zeile pro Naht: Schnittzeit, Austritts- und Eintrittsvektoren (Achse + signierte Richtung; Z-Zeilen tragen das Skalierungsvorzeichen), Selektoren, Technik. Austritt und Eintritt müssen übereinstimmen; bei einer nicht übereinstimmenden Zeile korrigiere den Plan, nicht das Easing. Der Verifizierer prüft die Zeilenkonsistenz statisch vor jeder Laufzeit-Stichprobe.

Träger

Das Auge folgt Objekten, nicht Abstraktionen. Die stärksten Nähte übergeben einen konkreten Träger über den Schnitt mit übereinstimmender Position UND Geschwindigkeit: ein Cursor auf halbem Weg, ein Container, der schrumpft/ins nächste Layout andockt, eine Markierung, die in ihren genauen Slot fliegt, die Wortgruppe eines Wasserfall-Schnitts. Ohne natürlichen Träger übernehmen die Szenen-Helden den Transport (teilweise Bewegung + frühes Ausblenden, Eintritt mittendrin). Niemals eine Überblendung – sie hat überhaupt keinen Träger.

Kausale Bewegung

Verkette Bewegungen so, dass jede sichtbar von der letzten ausgelöst wird: Klick → Quetschen → Feder loslassen → Flug → Aufprall → Rückstoß → Enthüllung.

  • Effekte beginnen IN dem auslösenden Frame – gleiche Timeline-Position, niemals „kurz danach“.
  • Reaktionen skalieren mit der implizierten Masse: große Elemente federn langsamer zurück, kleine schneller.
  • Eine Kraft ist eine Lizenz zum Richtungswechsel; ein ursachenloser Flip ist ein Ping-Pong.

Das Naht-Gate (Build-Gate – führe den Verifizierer aus, Exit 0 oder die Naht ist nicht fertig)

node <SKILL_DIR>/scripts/seam-stamp.mjs --ledger ledger.json --write index.html  # generieren
node <SKILL_DIR>/scripts/seam-gate.mjs  verify --ledger ledger.json --project .  # verifizieren

Das Skript (Nutzung + Ledger-Schema: references/seam-gate.md) erzwingt numerisch, pro Naht: Ledger-Zeilen-Konsistenz, Austritt in Bewegung zum Schnitt, Eintritt während des Flugs (niemals aus der Ruhe), gemessene Richtung = Ledger-Richtung, Geschwindigkeitsübereinstimmung von Eintritt/Austritt (WARN), keine Überlappung (eine Seite pro Frame sichtbar – der Schnitt ist keine Überblendung), die Z-Vorzeichen-Regel (d(scale)/dt gleiches Vorzeichen auf beiden Seiten; die Eintritte der eingehenden Szene werden auf Vorzeichenkonflikte geprüft) und die Kontinuität des Träger-Rechtecks unter Einbeziehung des übergeordneten Maßstabs. Verwende seam-gate.mjs probe --t <cut>, um die wahren Träger-Selektoren jeder Naht zu finden, wenn du das Ledger erstellst.

Regeln, die das Skript NICHT prüfen kann – bleiben deine Aufgabe:

  1. Bearbeitungen öffnen die Naht wieder. Jede Änderung an den ersten/letzten ~1 s einer Szene (einschließlich Neusynchronisierung auf neue VO) macht die Prüfung dieser Grenze ungültig – führe den Verifizierer erneut aus.
  2. Audio ist die Uhr. Synchronisiere Szenen auf die echten Wortzeitstempel der VO; erzwinge niemals ein Lesen, um in einen Slot zu passen. Eine erneute VO-Generierung öffnet ihre Nähte neu.
  3. Clip-Gating-Falle (die übliche Ursache für einen Überlappungsfehler): Ein Clip, dessen data-start vor seinem Eintritts-Tween liegt, wird bei seiner anfänglichen Deckkraft eingeblendet – setze anfänglich autoAlpha: 0 UND data-start = die Schnittzeit, niemals früher.

Teil 2 — Performance (die Szene bleibt in Bewegung)

Kein Leerlauf-Wobbel

Leerlauf-Sinus-Schleifen (Atmen, Schweben, Driften, Glühen-Pulsieren) sind als anhaltende Bewegung VERBOTEN – sie wirken wie „das Video wartet“. Eine Szene, die mit Sekunden übrig fertig eingeblendet ist, ist ein Planungsfehler: füge Geschichte hinzu, kein Wackeln. Jede Phase zwischen Eintritt und Austritt gehört zu einer dieser Routen (benenne die Route im Plan):

RouteWas es ist
Gestaffelte EnthüllungenHalte Inhalt zurück; zeige ihn auf Erzähl-Beats – der Frame gewinnt kontinuierlich an Information (Standard für ≥2 Inhaltsgruppen)
Kamera mit AbsichtEin festgelegter Skalierungs- + Schwenk-Pfad: etablieren (weit) → reisen → auf dem Motiv ankommen
Sequenzielles UI-LebenDas Produkt verhält sich über die Zeit: Fortschritt schreitet voran, Highlights Schritt, Zähler ticken
Animierte SequenzenElemente führen einen Beat auf: eine Karte legt sich in einen Stapel, ein Gegenstand wird gezogen, ein Ergebnis setzt sich zusammen
Cursor-geführte AktionEin übergroßer Cursor führt das Auge zu einem Auslöser; sein KLICK zündet den nächsten Beat (oversized-cursor)

Test: Pausiere zu jeder beliebigen Sekunde – es muss etwas Sinnvolles im Flug sein (eine enthüllte Landung, die Kamera unterwegs, das UI tut, was die Erzählung sagt).

Stille vor dem Höhepunkt

Plane eine 0,3–0,75 s Pause zwischen der Hauptaktion und ihrem Ergebnis – das dramatische Komma. Eine Szene, die direkt von der Aktion zum Ergebnis springt, verliert es.

Timing-Absichten

  • Einzelner Eintritt ≤ ~800 ms; längeres Aufbauen = Multi-Element-Staffelung, nicht ein langsames Element.
  • Austritt ≈ 75 % des Eintritts. Ausnahme: cut-the-curve kehrt dies um (Eintritt ~127 % des Austritts).
  • Gesamtstaffelung ≤ 500 ms; bei 8+ Elementen, verkürze die Verzögerung pro Element oder staffele die ersten paar.
  • Verbotene Easings: bounce.out / elastic.out. Eintritts-Überschwingen back.out(1.4–1.7) ist in Ordnung.
  • Ähnliche Elemente teilen sich eine Easing + Dauer-Absicht – niemals ein einzigartiges Paar pro Element.

Übergangsvokabular

Verwende nur 2–3 Zwischenszenen-Übergänge pro Film und wiederhole sie; die Standardgrenze ist cut-the-curve in Richtung des Stroms. Handgeschriebene Shared-Element-Morphs (intent: morph) zählen nicht gegen das Budget.


Anti-Patterns

Nicht soStattdessen
Jede Szenen-Eingabe isoliert erstellenSchreibe zuerst das Vektor-Ledger
Überblendung zwischen SzenenCut-the-curve in Richtung des Stroms
Austritt abgeschlossen, DANN wechselt die SzeneSchneide während der Bewegung auf beiden Seiten
Eintritt startet aus der Ruhe nach einem SchnittTritt ≥50 % durch den gedachten Pfad ein
Inverser Zoom-Austritt → wachsen-von-klein-Eintritt (oder Schieben → übergroßer Rückzug)Gleiche das Skalierungs-Geschwindigkeits-Vorzeichen an (Naht-Gate 7)
Eigenes Pop-In-Intro der eingehenden Szene unter einer Z-Naht-ÜbergabeHalte ihren Anfangsrahmen komponiert, oder gleiche das Vorzeichen an
Leerlauf-Wobbel / Atmen / Schweben, um Zeit zu füllenWeise eine anhaltende Bewegungsroute zu; oder füge Geschichte hinzu
Richtungswechsel ohne UrsacheGib eine Kraft aus, oder behalte den Strom
Reservierte Vektoren als Abwechslung verwendetStandard auf den Strom; gib sie für Bedeutung aus
Reaktion ein paar Frames nach ihrer UrsacheZündung im selben Frame
Aktion springt direkt zum ErgebnisPlane Stille vor dem Höhepunkt (0,3–0,75 s)

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

general-video

>

heygen-com/animejs

Anime.js adapter patterns for HyperFrames. Use when writing Anime.js animations or timelines inside HyperFrames compositions, registering animations on window.__hfAnime, making Anime.js seek-driven and deterministic, or translating Anime.js examples into render-safe HyperFrames HTML.

heygen-com/claude-design-hyperframes

Use when running inside Claude Design specifically. Produces a valid, brand-accurate HyperFrames video draft using pre-valid skeletons. For Claude Code / Cursor / Codex, use the `hyperframes` skill instead.

heygen-com/contribute-catalog

Author a new HyperFrames registry block (caption style, VFX block, transition, lower third) or component (text effect, overlay, snippet) and ship it as an upstream PR to the hyperframes repo. Use ONLY when the user wants to CONTRIBUTE to the public catalog — for in-project caption/transition authoring use the `hyperframes` skill, for installing existing registry items use the `hyperframes-registry` skill.

heygen-com/css-animations

CSS animation adapter patterns for HyperFrames. Use when authoring CSS keyframes, animation-delay based timing, animation-fill-mode, animation-play-state, or CSS-only motion that HyperFrames must seek deterministically during preview and rendering.

heygen-com/gsap

GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.

heygen-com/hyperframes

A tiled headline surface flips cell by cell under a sweeping depth field to reveal the rear headline. HyperFrames block, 1920×1080, 8s, 18 variables.

heygen-com/hyperframes

Leaves sweep through the frame and part to reveal the headline. HyperFrames block, 1920×1080, 12s, 11 variables.

heygen-com/hyperframes

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]

heygen-com/hyperframes

A single feature card orbits a dot sphere on approved Blender camera motion. HyperFrames block, 1920×1080, 10s, 4 variables.

heygen-com/hyperframes

A wireframe portal bursts open, the title comes through, then its letters swap into a second phrase. HyperFrames block, 1920×1080, 8s, 9 variables.

heygen-com/hyperframes

Glass shards fly in through fog and tile themselves into the headline. HyperFrames block, 1920×1080, 12.16s, 19 variables.

heygen-com/hyperframes

Render-correctness doctrine for scene-to-scene seams in HyperFrames launch videos — the prerequisites that make transitions composite correctly on the master timeline. Load when assembling the master timeline / index.html, when a white flash appears at a cut or crossfade seam (especially on dark films), when reasoning about why a transition opacity dip shows through, or when verifying the render-side mechanics of how overlapping scene wrappers blend. Covers the opaque stage-ground (#root background) white-flash guard and how the injector overlaps wrappers, holds final frames, ping-pongs tracks, and stamps lint-clean template code onto the master timeline. Does NOT contain the per-transition catalog — see the transition registry for individual transition entries.

heygen-com/hyperframes

An orbiting camera follows an ice logo as it breaks apart, reforms into two text moments, and fades. HyperFrames block, 1920×1080, 22.5s, 216 variables.

heygen-com/hyperframes

name: embedded-captions

heygen-com/hyperframes

A chain of bevelled cuboids rides a travelling wave as a content carousel. HyperFrames block, 1920×1080, 6.666666666666667s, 40 variables.

heygen-com/hyperframes

Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video: there is no site or footage to capture, so the visuals are invented per scene (typography, abstract graphics, diagrams, data-viz). Use for topic explainers, concept breakdowns, how-tos, listicles. Not a video built from a website (/product-launch-video — promo or tour). Unclear → /hyperframes.

heygen-com/hyperframes

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

heygen-com/hyperframes

House-style oversized macOS cursor technique for HyperFrames launch videos. Load whenever a scene involves cursors or a pointer-led action, when kicking off a UI scene, when igniting a morph/transition/typing run with a click, or when a scene reads as static, dead, or stale and needs a cheap high-yield source of motion to carry the viewer's eye and segment them out of the stale state. Covers cursor size/look (incl. brand-motif cursors), the off-screen entry law, tip-targeting and the click tap, click-ignites-the-next-beat, and exit / cross-scene handoff.

heygen-com/hyperframes

Turn a weekly changelog .md into a finished branded changelog video (square 1080, ~45-60s, Annie VO, animated brand background, mock-UI visualizations, lowkey captions). Use when the user provides a changelog/digest markdown and wants the weekly video, or says "changelog video". Self-contained — fonts, background, lexicon, and scripts ship in this skill.

Verwandte Skills