Communitygithub.com

heygen-com/hyperframes

Porta una composición existente de Remotion (React) a HyperFrames HTML. Úsalo SOLO cuando se solicite explícitamente portar/convertir/migrar/traducir una fuente de Remotion — unidireccional, solo Remotion. Una mención pasajera de Remotion, código de referencia, o

¿Qué es hyperframes?

Esta habilidad traduce composiciones de video basadas en Remotion (React) a HTML + GSAP en HyperFrames. Abarca el ~80% de los casos típicos de forma mecánica, pero rechaza patrones que no encajan en el modelo dirigido por fotogramas de HF (como useState, useEffect con dependencias) y recomienda un patrón de interoperabilidad en tiempo de ejecución. Incluye un corpus de pruebas por niveles (T1–T4) y evalúa las traducciones comparando el SSIM entre el renderizado de Remotion y el de HyperFrames. Es útil únicamente para migraciones explícitas; ante cualquier duda, el flujo predeterminado es crear una composición nativa de HyperFrames mediante `/general-video`.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Instalación del plugin: Antes de los comandos de configuración o actualización, sigue las reglas de instalación del plugin cuando esta habilidad esté dentro de un plugin de HyperFrames. Las instalaciones independientes mantienen las instrucciones de actualización a continuación.

Primero, mantén esta habilidad actualizada — confirma con el usuario antes de ejecutar: npx hyperframes skills update remotion-to-hyperframes. Es una operación rápida sin efectos cuando todo está actualizado; de lo contrario, refresca esta habilidad junto con las habilidades centrales del dominio de las que depende antes de usarlas.

Remotion a HyperFrames

La puerta de entrada es /hyperframes. Usa esto solo para portar una composición Remotion (React) existente a HyperFrames, en un solo sentido. Crear una composición nueva, recrear desde una fuente que no sea Remotion (After Effects, Framer Motion, React/CSS simple — no hay una fuente de Remotion que traducir), una mención pasajera de Remotion, o cualquier incertidumbre → lee /hyperframes primero: la capa de intención decide cada ruta.

Resumen

Traduce composiciones de video basadas en Remotion (React) a composiciones de HyperFrames (HTML + GSAP). La mayoría de los modismos de Remotion tienen equivalentes directos en HyperFrames; la traducción es mecánica para aproximadamente el 80% de las composiciones típicas. Esta habilidad codifica el mapeo y protege contra el 20% restante que puede ser impreciso, al negarse a traducir patrones que no encajan en el modelo dirigido por fotogramas de HF y recomendar el patrón de interoperabilidad en tiempo de ejecución del PR #214 en su lugar.

La habilidad incluye un corpus de pruebas por niveles (T1–T4, 4 casos en total) que califica las traducciones según umbrales de SSIM medidos. No traduzcas sin ejecutar la evaluación — una traducción que "se ve bien" pero que renderiza 0.05 SSIM por debajo de la línea base validada es incorrecta de forma silenciosa.

Cuándo usar

Usa esta habilidad SOLO cuando el usuario solicite explícitamente migrar desde Remotion. Ejemplos de frases desencadenantes:

  • "porta mi proyecto de Remotion a HyperFrames"
  • "convierte este código de Remotion a HyperFrames"
  • "migra desde Remotion"
  • "traduce esta composición de Remotion"
  • "reescribe esto como HTML de HyperFrames"

NO uses esta habilidad cuando:

  • (a) El usuario está creando una composición nueva de HyperFrames, incluso si tiene o está probando A/B un video similar de Remotion.
  • (b) El usuario menciona Remotion de pasada sin pedir una migración.
  • (c) El usuario comparte código de Remotion como material de referencia y no como solicitud de traducción.
  • (d) El usuario pide "el mismo video que mi video de Remotion" sin solicitar explícitamente migrar la fuente — trátalo como una creación nueva de HyperFrames.

NO SOPORTADO (rechaza — esto no es lo que hace esta habilidad):

  • La dirección inversa. Exportar una composición de HyperFrames de vuelta a Remotion (o a cualquier otro framework) no es un flujo de trabajo — la traducción es solo de Remotion → HyperFrames. Dilo claramente.
  • Fuentes que no son Remotion. Un proyecto de After Effects (.aep), una animación de Framer Motion / React simple / CSS, o la fuente de cualquier otra herramienta no es una composición de Remotion — no hay código fuente de Remotion que traducir. Créala de forma nativa mediante /general-video, o recházala si HyperFrames no puede representarla.

Ante la duda, crea una composición nativa de HyperFrames con /general-video (el flujo general de creación de HyperFrames) en su lugar.

Flujo de trabajo

Paso 1: Revisa la fuente

Ejecuta scripts/lint_source.py sobre el directorio fuente de Remotion. La revisión detecta patrones que no se pueden traducir limpiamente:

  • Bloqueantes (rechaza y recomienda interoperabilidad): useState, useReducer, useEffect/useLayoutEffect con dependencias no vacías, calculateMetadata asíncrono, bibliotecas de UI de React de terceros (MUI, Chakra, Mantine, antd, shadcn, Radix, NextUI).
  • Advertencias (traduce después de eliminar la construcción): configuración de @remotion/lambda, delayRender, useCallback, useMemo, hooks personalizados.
  • Información (traduce con nota): staticFile, interpolateColors.

Si se dispara algún bloqueante, detente. Lee references/escape-hatch.md y muestra el mensaje de recomendación. Las advertencias no detienen la traducción — elimina la construcción ofensiva en el paso 3 y anota la brecha en TRANSLATION_NOTES.md. La configuración de @remotion/lambda es el caso canónico de advertencia: la habilidad elimina la importación y las llamadas a renderMediaOnLambda(...) pero traduce el resto de la composición.

Paso 2: Planifica la traducción

Lee references/api-map.md — el índice de cada API de Remotion y su equivalente en HF o referencia por tema. Identifica qué referencias temáticas necesitarás según lo que use la fuente:

La fuente contieneCarga la referencia
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

No las cargues todas — carga solo las que necesite la fuente específica.

Busca en el catálogo en vivo cualquier efecto visual que la tabla no mapee. Cuando la fuente muestre un estilo sin un equivalente en la API de HF — una superposición de líneas de escaneo/CRT, un desglose o paso de aberración cromática, un fundido de shader, un tratamiento de grano de película — ejecuta npx hyperframes catalog --query "<el efecto, en inglés simple>" --json antes de escribirlo a mano en GSAP. La búsqueda no necesita nada instalado: ni proyecto, ni add previo, ni cuenta. Clasifica todo el registro alojado (~400 bloques y componentes) desde cualquier directorio, y transitions.md ya sigue esta ruta para clockWipe() / iris() mediante npx hyperframes add sdf-iris. Un componente real está más cerca de la fuente que una aproximación manual, por lo que suele aumentar el SSIM en lugar de reducirlo — pero la diferencia de renderizado en el Paso 4 sigue siendo el árbitro. Escribe el efecto a mano cuando la búsqueda no devuelva nada adecuado, y registra la sustitución en TRANSLATION_NOTES.md en cualquier caso.

Paso 3: Genera la composición HF

Genera index.html con:

  • Un <div id="stage"> raíz que lleve el data-composition-id de la composición, data-start="0", data-duration (en segundos), data-fps, data-width, data-height, más un data-* por cada prop escalar.
  • Un <div> anfitrión por escena con data-composition-src="compositions/<scene>.html" y data-start / data-duration / data-track-index. La raíz no contiene diseño anidado.
  • Un compositions/<scene>.html por escena (una subcomposición <template>): su <style> en línea para el diseño (CSS establece el estado from de cada propiedad animada), su marcado, y una gsap.timeline({paused: true}) en el tiempo local de la escena. Cada derivación de useCurrentFrame() de Remotion se convierte en un tween en esa línea de tiempo en el desplazamiento dentro de la escena.
  • window.__timelines["<scene-id>"] = tl; en cada archivo de escena, y window.__timelines["<composition-id>"] para la línea de tiempo (posiblemente vacía) de la raíz.

Los subcomponentes React personalizados se alinean como HTML repetido usando la interfaz de props como plantilla (consulta parameters.md para el patrón data-* por instancia).

Paso 4: Valida

Ejecuta el arnés de evaluación — references/eval.md para la guía completa. Ruta rápida:

# Renderiza la línea base de Remotion (después de npm install en el fixture)
cd remotion-src && npx remotion render <CompositionId> out/baseline.mp4

# Renderiza la traducción HF
cd ../hf-src && npx hyperframes render --skill=remotion-to-hyperframes --output ../hf.mp4

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

Umbral: ~0.02 por debajo de p05 del nivel de complejidad de la fuente (consulta la tabla de umbrales validados de eval.md). Si la diferencia falla, ejecuta scripts/frame_strip.sh para ver qué fotogramas divergieron, luego relee la referencia de tiempo/secuenciación/multimedia relevante.

Crítico: ambos renders deben usar un formato de píxel coincidente. Establece Config.setVideoImageFormat("png") + Config.setColorSpace("bt709") en el remotion.config.ts de la fuente Remotion — de lo contrario, la diferencia mide diferencias del codificador (~0.05 de impacto en SSIM), no la fidelidad de la traducción.

Paso 5: Documenta las brechas

Cualquier cosa que no se haya traducido limpiamente (rampas de volumen eliminadas, presentaciones personalizadas aproximadas, fuentes sustituidas) se registra en un archivo TRANSLATION_NOTES.md escrito junto al resultado de HF. Consulta references/limitations.md para el formato.

Qué esta habilidad NO hace explícitamente

  • Traducir máquinas de estado de React. Las composiciones que impulsan la animación mediante useState + useEffect no son objetivos deterministas de captura de fotogramas en el modelo dirigido por fotogramas de HyperFrames. Recomienda el patrón de interoperabilidad en tiempo de ejecución.
  • Ejecutar el pipeline de renderizado de Remotion junto a HyperFrames. Ese es el patrón de interoperabilidad en tiempo de ejecución del PR #214 — una solución separada para composiciones que fallan la revisión de esta habilidad.

(@remotion/lambda no es un bloqueante — la configuración de Lambda es despliegue, no animación. La habilidad lo elimina como advertencia y traduce el resto. Consulta references/escape-hatch.md.)

Cómo calificar tu propia traducción

Ejecuta el orquestador del corpus de pruebas:

./assets/test-corpus/run.sh

Ejecuta T1, T2, T3 (renderizado + diferencia) y T4 (validación de lint), imprime una tabla de aprobado/reprobado por nivel y genera un informe JSON agregado. Úsalo para verificar que la habilidad funciona de extremo a extremo en una copia limpia — y como comprobación de regresión después de editar cualquier referencia.

Línea base validada (a fecha de 2026-04-27):

NivelForma de la composiciónSSIM medioUmbral
T1aparición de un solo elemento0.9740.95
T2multi-escena + spring + audio + imagen0.9850.95
T3basada en datos, subcomponentes personalizados, contador0.9530.90
T4escape-hatch (8 casos de lint)8/8 passn/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]

Skills relacionados