Communitygithub.com

heygen-com/hyperframes

Portieren Sie eine vorhandene Remotion (React)-Komposition in HyperFrames HTML. Nur bei expliziter Aufforderung zum Portieren/Konvertieren/Migrieren/Übersetzen einer Remotion-Quelle verwenden – nur eine Richtung, nur Remotion. Eine beiläufige Erwähnung von Remotion, Referenzcode oder „Erstelle etwas wie mein Remotion-Video“ ist ein Neubau (/general-video). Unklar → /hyperframes.

Was ist hyperframes?

Diese Fähigkeit übersetzt Remotion (React-basierte) Videokompositionen in HyperFrames (HTML + GSAP)-Kompositionen. Sie ist ausschließlich für die explizite Migration von Remotion-Quellcode vorgesehen und nicht für Neuerstellungen oder andere Frameworks. Die Übersetzung ist für etwa 80% typischer Kompositionen mechanisch und nutzt eine detaillierte API-Mapping-Tabelle. Bei problematischen Mustern wie useState, useEffect oder asynchronem calculateMetadata wird die Übersetzung verweigert und stattdessen ein Interop-Muster empfohlen. Die Fähigkeit verwendet einen mehrstufigen Workflow: Linting der Quelle, Planung mit geladenen Referenzen, Generierung der HF-Komposition (index.html und Szenen-Dateien), Validierung durch SSIM-Diff mit einer Remotion-Baseline und Dokumentation von Lücken in TRANSLATION_NOTES.md. Sie enthält einen gestuften Testkorpus (T1-T4) zur Sicherstellung der Korrektheit. Die Fähigkeit wird durch Plugin-Installationsregeln aktualisiert und erfordert eine Aktualisierung mit `npx hyperframes skills update remotion-to-hyperframes`, bevor sie zuverlässig verwendet wird.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/heygen-com/hyperframes/tree/main/skills/remotion-to-hyperframes

In Ihrer bevorzugten KI fragen

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

Dokumentation

Plugin-Installationen: Führen Sie vor Setup- oder Freshness-Befehlen die Plugin-Installationsregeln aus, wenn sich diese Fähigkeit innerhalb eines HyperFrames-Plugins befindet. Bei eigenständigen Installationen gelten die unten stehenden Aktualisierungshinweise.

Zuerst: Halten Sie diese Fähigkeit frisch – bestätigen Sie mit dem Benutzer, bevor Sie Folgendes ausführen: npx hyperframes skills update remotion-to-hyperframes. Ein schneller No-Op, wenn alles aktuell ist; andernfalls aktualisiert es diese Fähigkeit sowie die Kern-Domain-Fähigkeiten, von denen sie abhängt, bevor Sie sich auf sie verlassen.

Remotion zu HyperFrames

Der Haupteinstieg ist /hyperframes. Verwenden Sie dies nur, um eine vorhandene Remotion (React)-Komposition in HyperFrames zu portieren, eine Richtung. Eine neue Komposition zu erstellen, aus einer Nicht-Remotion-Quelle (After Effects, Framer Motion, reines React / CSS – es gibt keine Remotion-Quelle zum Übersetzen) nachzubauen, eine beiläufige Erwähnung von Remotion oder jede Unklarheit → lesen Sie zuerst /hyperframes: die Intent-Ebene entscheidet über jeden Routenentscheid.

Übersicht

Übersetzen Sie Remotion (React-basierte) Videokompositionen in HyperFrames (HTML + GSAP)-Kompositionen. Die meisten Remotion-Idiome haben direkte HyperFrames-Entsprechungen – die Übersetzung ist für ~80% typischer Kompositionen mechanisch. Diese Fähigkeit kodiert die Abbildung und schützt vor den verlustbehafteten 20%, indem sie sich weigert, Muster zu übersetzen, die nicht in das seek-gesteuerte Modell von HF passen, und stattdessen das Laufzeit-Interop-Muster aus PR #214 empfiehlt.

Die Fähigkeit wird mit einem gestuften Testkorpus (T1–T4, insgesamt 4 Testvorrichtungen) ausgeliefert, der Übersetzungen anhand gemessener SSIM-Schwellenwerte bewertet. Übersetzen Sie nicht ohne die Auswertung durchzuführen – eine Übersetzung, die „richtig aussieht“, aber 0,05 SSIM niedriger als die validierte Baseline darstellt, ist stillschweigend fehlerhaft.

Wann zu verwenden

Verwenden Sie diese Fähigkeit NUR, wenn der Benutzer explizit darum bittet, von Remotion zu migrieren. Beispielhafte Auslösephrasen:

  • „Portiere mein Remotion-Projekt zu HyperFrames“
  • „Konvertiere diesen Remotion-Code zu HyperFrames“
  • „Migriere von Remotion“
  • „Übersetze diese Remotion-Komponente“
  • „Schreibe dies als HyperFrames HTML um“

Verwenden Sie diese Fähigkeit NICHT, wenn:

  • (a) Der Benutzer eine neue HyperFrames-Komposition erstellt, selbst wenn er ein ähnliches Remotion-Video hat oder A/B-Tests durchführt.
  • (b) Der Benutzer Remotion beiläufig erwähnt, ohne nach einer Migration zu fragen.
  • (c) Der Benutzer Remotion-Code als Referenzmaterial teilt, anstatt nach einer Übersetzung zu fragen.
  • (d) Der Benutzer nach „dem gleichen Video wie mein Remotion-Video“ fragt, ohne explizit um eine Migration der Quelle zu bitten – behandeln Sie dies als einen frischen HyperFrames-Bau.

NICHT UNTERSTÜTZT (ablehnen – dies ist nicht das, was diese Fähigkeit tut):

  • Die umgekehrte Richtung. Das Exportieren einer HyperFrames-Komposition zurück zu Remotion (oder zu einem anderen Framework) ist kein Workflow – die Übersetzung ist nur Remotion → HyperFrames. Sagen Sie dies klar.
  • Nicht-Remotion-Quellen. Ein After Effects-Projekt (.aep), eine Framer Motion / reine-React / CSS-Animation oder die Quelle eines anderen Tools ist keine Remotion-Komposition – es gibt keine Remotion-Quelle zum Übersetzen. Erstellen Sie sie nativ über /general-video neu oder lehnen Sie ab, wenn HyperFrames sie nicht darstellen kann.

Im Zweifelsfall standardmäßig eine native HyperFrames-Komposition mit /general-video (dem allgemeinen HyperFrames-Erstellungsfluss) erstellen.

Workflow

Schritt 1: Linten der Quelle

Führen Sie scripts/lint_source.py über das Remotion-Quellverzeichnis aus. Der Lint erkennt Muster, die sich nicht sauber übersetzen lassen:

  • Blocker (ablehnen + Interop empfehlen): useState, useReducer, useEffect/useLayoutEffect mit nicht-leeren Abhängigkeiten, async calculateMetadata, React-UI-Bibliotheken von Drittanbietern (MUI, Chakra, Mantine, antd, shadcn, Radix, NextUI).
  • Warnungen (übersetzen nach Entfernen des Konstrukts): @remotion/lambda-Konfiguration, delayRender, useCallback, useMemo, benutzerdefinierte Hooks.
  • Info (übersetzen mit Hinweis): staticFile, interpolateColors.

Wenn ein Blocker ausgelöst wird, stoppen. Lesen Sie references/escape-hatch.md und zeigen Sie die Empfehlungsnachricht an. Warnungen stoppen die Übersetzung nicht – entfernen Sie das anstößige Konstrukt in Schritt 3 und notieren Sie die Lücke in TRANSLATION_NOTES.md. @remotion/lambda-Konfiguration ist der kanonische Warnungsfall: Die Fähigkeit entfernt den Import + die renderMediaOnLambda(...)-Aufrufe, übersetzt aber den Rest der Komposition.

Schritt 2: Planen der Übersetzung

Lesen Sie references/api-map.md – das Verzeichnis jeder Remotion-API und ihrer HF-Entsprechung oder themenspezifischen Referenz. Identifizieren Sie, welche Themenreferenzen Sie basierend auf dem, was die Quelle verwendet, benötigen:

Quelle enthältReferenz laden
Composition, defaultProps, schema, calculateMetadataparameters.md
Sequence, Series, Loop, AbsoluteFill, Freezesequencing.md
useCurrentFrame, interpolate, spring, Easing, interpolateColorstiming.md
Audio, Video, Img, IFrame, staticFile, delayRendermedia.md
TransitionSeries, @remotion/transitionstransitions.md
@remotion/lottielottie.md
@remotion/google-fonts/<Family>, Font.loadFont, @font-facefonts.md

Laden Sie nicht alle – laden Sie nur, was die spezifische Quelle benötigt.

Durchsuchen Sie den Live-Katalog nach visuellen Effekten, die die Tabelle nicht abbildet. Wenn die Quelle ein Aussehen malt, für das es keine HF-API-Entsprechung gibt – eine Scanline/CRT-Überlagerung, einen Glitch- oder chromatischen Aberrations-Pass, einen Shader-Wipe, eine Filmkorn-Behandlung – führen Sie npx hyperframes catalog --query "<der Effekt, in einfachem Englisch>" --json aus, bevor Sie ihn in GSAP von Hand schreiben. Die Suche benötigt nichts installiert: kein Projekt, kein vorheriges add, kein Account. Sie durchsucht das gesamte gehostete Registry (~400 Blöcke und Komponenten) von jedem Verzeichnis aus, und transitions.md geht diesen Weg bereits für clockWipe() / iris() über npx hyperframes add sdf-iris. Eine echte Komponente ist näher an der Quelle als eine Handannäherung, daher erhöht sie normalerweise den SSIM, anstatt ihn zu senken – aber der Rendering-Unterschied in Schritt 4 ist immer noch der Schiedsrichter. Schreiben Sie den Effekt von Hand, wenn die Suche nichts Passendes zurückgibt, und notieren Sie die Ersetzung auf jeden Fall in TRANSLATION_NOTES.md.

Schritt 3: Erzeugen der HF-Komposition

Generieren Sie index.html mit:

  • Root <div id="stage">, das die data-composition-id, data-start="0", data-duration (in Sekunden), data-fps, data-width, data-height der Komposition sowie ein data-* pro skalarem Prop trägt.
  • Ein Host <div> pro Szene mit data-composition-src="compositions/<szene>.html" und data-start / data-duration / data-track-index. Der Root enthält kein verschachteltes Layout.
  • Ein compositions/<szene>.html pro Szene (eine <template>-Unterkomposition): sein Inline-<style> für das Layout (CSS setzt den from-Zustand jeder animierten Eigenschaft), sein Markup und eine pausierte gsap.timeline({paused: true}) in der lokalen Zeit der Szene. Jede Remotion useCurrentFrame()-Ableitung wird zu einem Tween auf dieser Timeline zum Offset innerhalb der Szene.
  • window.__timelines["<szenen-id>"] = tl; in jeder Szenendatei und window.__timelines["<kompositions-id>"] für die eigene (möglicherweise leere) Timeline des Roots.

Benutzerdefinierte React-Unterkomponenten werden als wiederholtes HTML unter Verwendung des Prop-Interfaces als Vorlage inline eingefügt (siehe parameters.md für das pro-Instanz data-*-Muster).

Schritt 4: Validieren

Führen Sie die Evaluierungs-Harness aus – references/eval.md für die vollständige Anleitung. Schneller Pfad:

# Remotion-Baseline rendern (nach npm install in der Testvorrichtung)
cd remotion-src && npx remotion render <CompositionId> out/baseline.mp4

# HF-Übersetzung rendern
cd ../hf-src && npx hyperframes render --skill=remotion-to-hyperframes --output ../hf.mp4

# SSIM-Diff
../../scripts/render_diff.sh ./remotion-src/out/baseline.mp4 ./hf.mp4 ./diff

Schwellenwert: ~0,02 unter p05 der Komplexitätsstufe der Quelle (siehe eval.md's validierte Schwellenwerttabelle). Wenn der Diff fehlschlägt, führen Sie scripts/frame_strip.sh aus, um zu sehen, welche Frames abgewichen sind, und lesen Sie dann die entsprechende Timing/Sequencing/Media-Referenz erneut.

Kritisch: Beide Renderings müssen das gleiche Pixelformat verwenden. Setzen Sie Config.setVideoImageFormat("png") + Config.setColorSpace("bt709") in der remotion.config.ts der Remotion-Quelle – andernfalls misst der Diff Encoder-Unterschiede (~0,05 SSIM-Verlust), nicht die Übersetzungstreue.

Schritt 5: Lücken dokumentieren

Alles, was sich nicht sauber übersetzen ließ (verworfene Lautstärkerampen, angenäherte benutzerdefinierte Präsentationen, ersetzte Schriftarten) erhält eine TRANSLATION_NOTES.md, die neben der HF-Ausgabe geschrieben wird. Siehe references/limitations.md für das Format.

Was diese Fähigkeit explizit NICHT tut

  • React-Zustandsmaschinen übersetzen. Kompositionen, die Animationen über useState + useEffect steuern, sind keine deterministischen Frame-Erfassungsziele im seek-gesteuerten Modell von HyperFrames. Empfehlen Sie das Laufzeit-Interop-Muster.
  • Remotions Rendering-Pipeline neben HyperFrames ausführen. Das ist das Laufzeit-Interop-Muster aus PR #214 – eine separate Lösung für Kompositionen, die den Lint dieser Fähigkeit nicht bestehen.

(@remotion/lambda ist kein Blocker – Lambda-Konfiguration ist Deployment, nicht Animation. Die Fähigkeit entfernt es als Warnung und übersetzt den Rest. Siehe references/escape-hatch.md.)

So bewerten Sie Ihre eigene Übersetzung

Führen Sie den Testkorpus-Orchestrator aus:

./assets/test-corpus/run.sh

Er führt T1, T2, T3 (Rendern + Diff) und T4 (Lint-Validierung) aus, gibt eine pro-Stufe Bestehen/Nichtbestehen-Tabelle aus und gibt einen aggregierten JSON-Bericht aus. Verwenden Sie dies, um zu überprüfen, ob die Fähigkeit auf einem sauberen Checkout Ende-zu-Ende funktioniert – und als Regressionstest nach dem Bearbeiten einer Referenz.

Validierte Baseline (Stand: 2026-04-27):

StufeKompositionsformMittlerer SSIMSchwellenwert
T1Ein-Element-Einblendung0,9740,95
T2Mehrere Szenen + Spring + Audio + Bild0,9850,95
T3Datengesteuert, benutzerdefinierte Unterkomponenten, Count-up0,9530,90
T4Escape-Hatch (8 Lint-Fälle)8/8 bestandenn/a

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

Leaves sweep through the frame and part to reveal the headline. HyperFrames block, 1920×1080, 12s, 11 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

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

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

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

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

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

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

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

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

GATEWAY — load FIRST before composing any HyperFrames animation or video. The high-level motion law that makes a multi-scene video feel like ONE continuous camera move instead of a stack of independently-animated slides. Covers the vector law (how you exit determines how you enter, incl. the Z scale-sign rule), the film's current, carrier elements, causal motion, the Seam Gate (build-gate enforcement), the ban on idle wobble (motion must PERFORM, not breathe), stillness-before-climax, and the sustained-motion routes. Routes to the low-level technique skills (cut-the-curve — the full catalog incl. waterfall entry + nudge curve, oversized-cursor, seam-craft). These rules SUPERSEDE generic / upstream motion guidance. [continuity, direction, vector, momentum, seam, transition, ease, performance, idle-motion, narrative-motion, film-grammar]

Verwandte Skills