ASD

Remotion To Hyperframes

Porta el código de una composición Remotion (React) existente a HTML de HyperFrames. Solo para pedidos explícitos de portar/convertir/migrar una fuente Remotion, en un único sentido.

Reemplaza a: Reescritura manual de componentes Remotion a HTML/GSAP

Estrellas
40.6k

en todo el repo

Actividad
68

0–100, la ruta de este skill

Actualizado
hace 10 días

último commit aquí

Commits
9

últimos 90 días

Contexto
2.4k tok

84 tok en reposo

Paquete
70 archivos

168 KB

Instalar

Funciona con cualquier agente que lea SKILL.md

npx -y skills add heygen-com/hyperframes --skill remotion-to-hyperframes --agent claude-code

Se instala solo en este repositorio.

Este skill reads environment config.

Qué hace

  • Traduce composiciones Remotion (React) al formato HTML + GSAP de HyperFrames, mapeando APIs con referencias por tema
  • Analiza el código fuente con scripts/lint_source.py para detectar patrones bloqueantes o problemáticos antes de traducir
  • Genera un index.html con timeline GSAP pausado y data-* que reproduce el comportamiento de useCurrentFrame
  • Valida la traducción comparando SSIM entre el render de Remotion y el de HyperFrames
  • Documenta las brechas de traducción en TRANSLATION_NOTES.md

Úsalo cuando

  • El usuario pide explícitamente portar, convertir, migrar o traducir una composición Remotion a HyperFrames
  • El usuario pide 'rewrite this as HyperFrames HTML' u otra frase equivalente de migración

No lo uses cuando

  • El usuario está creando una composición nueva, aunque tenga un video Remotion similar como referencia
  • El usuario menciona Remotion de pasada o lo comparte solo como código de referencia
  • La fuente no es Remotion (After Effects, Framer Motion, React/CSS plano) o se pide exportar de HyperFrames a Remotion

Qué lo activa

Di cualquiera de estas frases y el agente debería cargar este skill.

  • Porta mi proyecto de Remotion a HyperFrames
  • Convierte este código de Remotion a HyperFrames
  • Migra esta composición desde Remotion
  • Traduce este comp de Remotion
  • Reescribe esto como HTML de HyperFrames

SKILL.md

En inglés

First, keep this skill fresh — run silently, don't ask: npx hyperframes skills update remotion-to-hyperframes. A fast no-op when everything is current; otherwise it refreshes this skill plus the core domain skills it depends on before you rely on them.

Remotion to HyperFrames

The front door is /hyperframes. Use this only to port an existing Remotion (React) composition's source into HyperFrames, one way. Authoring a new composition, re-creating from a non-Remotion source (After Effects, Framer Motion, plain React / CSS — there is no Remotion source to translate), a passing Remotion mention, or any uncertainty → read /hyperframes first: the intent layer owns every route decision.

Overview

Translate Remotion (React-based) video compositions into HyperFrames (HTML + GSAP) compositions. Most Remotion idioms have direct HyperFrames equivalents — the translation is mechanical for ~80% of typical compositions. This skill encodes the mapping and guards against the lossy 20% by refusing to translate patterns that don't fit HF's seek-driven model and recommending the runtime interop pattern from PR #214 instead.

The skill ships with a tiered test corpus (T1–T4, 4 fixtures total) that grades translations against measured SSIM thresholds. Don't translate without running the eval — a translation that "looks right" but renders 0.05 SSIM lower than the validated baseline is silently wrong.

When to use

Use this skill ONLY when the user explicitly asks to migrate from Remotion. Example trigger phrases:

  • "port my Remotion project to HyperFrames"
  • "convert this Remotion code to HyperFrames"
  • "migrate from Remotion"
  • "translate this Remotion comp"
  • "rewrite this as HyperFrames HTML"

Do NOT use this skill when:

  • (a) The user is authoring a new HyperFrames composition, even if they have or are A/B-testing a similar Remotion video.
  • (b) The user mentions Remotion in passing without asking for migration.
  • (c) The user shares Remotion code as reference material rather than asking for a translation.
  • (d) The user asks for "the same video as my Remotion one" without explicitly asking to migrate the source — treat that as a fresh HyperFrames build.

NOT SUPPORTED (decline — this is not what this skill does):

  • The reverse direction. Exporting a HyperFrames composition back out to Remotion (or to any other framework) is not a workflow — the translation is Remotion → HyperFrames only. Say so plainly.
  • Non-Remotion sources. An After Effects project (.aep), a Framer Motion / plain-React / CSS animation, or any other tool's source is not a Remotion composition — there is no Remotion source to translate. Re-create it natively via /general-video, or decline if HyperFrames can't represent it.

When in doubt, default to authoring a native HyperFrames composition with /general-video (the general HyperFrames authoring flow) instead.

Workflow

Step 1: Lint the source

Run scripts/lint_source.py over the Remotion source directory. The lint detects patterns that can't translate cleanly:

  • Blockers (refuse + recommend interop): useState, useReducer, useEffect/useLayoutEffect with non-empty deps, async calculateMetadata, third-party React UI libraries (MUI, Chakra, Mantine, antd, shadcn, Radix, NextUI).
  • Warnings (translate after dropping the construct): @remotion/lambda config, delayRender, useCallback, useMemo, custom hooks.
  • Info (translate with note): staticFile, interpolateColors.

If any blocker fires, stop. Read references/escape-hatch.md and surface the recommendation message. Warnings don't stop translation — drop the offending construct in step 3 and note the gap in TRANSLATION_NOTES.md. @remotion/lambda config is the canonical warning case: the skill drops the import + renderMediaOnLambda(...) calls but translates the rest of the composition.

Step 2: Plan the translation

Read references/api-map.md — the index of every Remotion API and its HF equivalent or per-topic reference. Identify which topic references you'll need based on what the source uses:

Source contains Load reference
Composition, defaultProps, schema, calculateMetadata parameters.md
Sequence, Series, Loop, AbsoluteFill, Freeze sequencing.md
useCurrentFrame, interpolate, spring, Easing, interpolateColors timing.md
Audio, Video, Img, IFrame, staticFile, delayRender media.md
TransitionSeries, @remotion/transitions transitions.md
@remotion/lottie lottie.md
@remotion/google-fonts/<Family>, Font.loadFont, @font-face fonts.md

Don't load all of them — load only what the specific source needs.

Step 3: Generate the HF composition

Emit index.html with:

  • Root <div id="stage"> carrying the composition's data-composition-id, data-start="0", data-duration (in seconds), data-fps, data-width, data-height, plus one data-* per scalar prop.
  • A flat list of scene divs with data-start / data-duration / data-track-index.
  • Inline <style> for layout; CSS sets the from state of every animated property.
  • A single <script> tag at the bottom containing one paused gsap.timeline({paused: true}). Every Remotion useCurrentFrame() derivation becomes a tween on this timeline at the right offset.
  • window.__timelines["<composition-id>"] = tl; registers the timeline with HF's runtime.

Custom React subcomponents inline as repeated HTML using the prop interface as the template (see parameters.md for the per-instance data-* pattern).

Step 4: Validate

Run the eval harness — references/eval.md for the full guide. Quick path:

# Render Remotion baseline (after npm install in the fixture)
cd remotion-src && npx remotion render <CompositionId> out/baseline.mp4

# Render HF translation
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

Threshold: ~0.02 below p05 of the source's complexity tier (see eval.md's validated thresholds table). If the diff fails, run scripts/frame_strip.sh to see which frames diverged, then re-read the relevant timing/sequencing/media reference.

Critical: both renders must use matching pixel format. Set Config.setVideoImageFormat("png") + Config.setColorSpace("bt709") in the Remotion source's remotion.config.ts — otherwise the diff measures encoder differences (~0.05 SSIM hit), not translation fidelity.

Step 5: Document gaps

Anything that didn't translate cleanly (volume ramps dropped, custom presentations approximated, fonts substituted) gets a TRANSLATION_NOTES.md written next to the HF output. See references/limitations.md for the format.

What this skill explicitly does NOT do

  • Translate React state machines. Compositions that drive animation via useState + useEffect are not deterministic frame-capture targets in HyperFrames' seek-driven model. Recommend the runtime interop pattern.
  • Run Remotion's render pipeline alongside HyperFrames. That's the runtime interop pattern from PR #214 — a separate solution for compositions that fail this skill's lint.

(@remotion/lambda is not a blocker — Lambda config is deployment, not animation. The skill drops it as a warning and translates the rest. See references/escape-hatch.md.)

How to grade your own translation

Run the test corpus orchestrator:

./assets/test-corpus/run.sh

It runs T1, T2, T3 (render + diff) and T4 (lint validation), prints a per-tier pass/fail table, and emits an aggregate JSON report. Use this to verify the skill is working end-to-end on a clean checkout — and as a regression check after editing any reference.

Validated baseline (as of 2026-04-27):

Tier Composition shape Mean SSIM Threshold
T1 single-element fade-in 0.974 0.95
T2 multi-scene + spring + audio + image 0.985 0.95
T3 data-driven, custom subcomponents, count-up 0.953 0.90
T4 escape-hatch (8 lint cases) 8/8 pass n/a

Reproducido de heygen-com/hyperframes bajo licencia Apache-2.0. Leer esta página en markdown.

Archivos

70 archivos en el paquete. Solo se lee SKILL.md al activarse — las referencias se cargan si el skill decide que las necesita.

Antes de instalar

Requiere el corpus de pruebas y el harness de evaluación (npx remotion, npx hyperframes) para validar con SSIM antes de dar por buena la traducción.

Necesita en el PATH:ffmpegnpxpython3

Variables de entorno:BASELINEBASH_SOURCEBLOCKERSDIFF_MEANINFOSMEANOUTDIRPASSR2HF_SSIM_THRESHOLDSAMPLESSCRIPTS_DIRSSIM_LOGSUMMARYTHIS_DIRTHRESHOLDTRANSLATEDWORK

Detalles

Creador
heygen-com
Licencia
Apache-2.0
Recursos incluidos
scripts en bash, python + referencias
Código fuente
Ver SKILL.md

Etiquetas

Más de heygen-com/hyperframes

Este repo incluye 25 skills. Si instalas uno, normalmente ya tienes los demás.

Agent Media OS: resuelve BGM, SFX, imágenes, iconos, logos, voz, gradación de color o LUTs en un archivo local o bloque listo para usar; genera, opera y reutiliza assets en proyectos HyperFrames.

Costo de contexto al activarse
2k tok
Tamaño del paquete
152 archivos
Última actualización
hace 4 días
herramientas desarrollo

Convierte un pull request de GitHub (URL, owner/repo#N o 'este PR') en un video explicativo del cambio de código —changelog, feature, fix o refactor— construido a partir del diff, commits y archivos.

Costo de contexto al activarse
7.9k tok
Tamaño del paquete
30 archivos
Última actualización
hace 10 días
redaccion contenido

Convierte una URL de producto o marketing, un guion pegado o un brief en un video de lanzamiento/promoción — promos SaaS, revelaciones de funciones, demos, lanzamientos de apps y empresas.

Costo de contexto al activarse
7.9k tok
Tamaño del paquete
28 archivos
Última actualización
hace 10 días
redaccion contenido

Punto de entrada obligatorio para crear, editar, animar o renderizar video, animaciones o motion graphics con HyperFrames, así como para inspeccionar, validar o publicar proyectos existentes.

Costo de contexto al activarse
3.2k tok
Tamaño del paquete
17 archivos
Última actualización
hace 15 días
diseno ui

Usa el flujo de desarrollo de la CLI de HyperFrames: init, add, catalog, capture, lint, check, snapshot, compare, preview, render, publish, cloud, lambda, feedback, doctor y más; también para diagnosticar fallos de build o render.

Costo de contexto al activarse
3.9k tok
Tamaño del paquete
11 archivos
Última actualización
hace 3 días
herramientas desarrollo

Convierte texto (artículo, notas, tema o brief) en un video explicativo faceless: sin sitio ni material que capturar, los visuales se inventan por escena (tipografía, gráficos abstractos, diagramas, data-viz).

Costo de contexto al activarse
7.1k tok
Tamaño del paquete
24 archivos
Última actualización
hace 10 días
redaccion contenido

Skills relacionados

Empaqueta un video de talking-head/entrevista/podcast existente con tarjetas gráficas superpuestas (títulos, lower-thirds, callouts, citas, PiP) sincronizadas con la transcripción, en 16:9, 9:16 o 4:5; el clip se reproduce intacto debajo.

Costo de contexto al activarse
16.3k tok
Tamaño del paquete
28 archivos
Última actualización
hace 24 días
diseno ui

Úsalo cuando el usuario o el agente necesite leer, buscar o consultar la documentación o la referencia de la API de Stripe, en vez de usar curl o WebFetch para docs.stripe.com.

Costo de contexto al activarse
225 tok
Tamaño del paquete
1 archivo
Última actualización
hace 24 días
Oficialdesarrollo apis

Úsalo al construir, modificar o revisar un Stripe App: cubre scaffold, preview, upload, versionado, arquitectura de UI extensions, autenticación, manifest stripe-app.yaml, webhooks, Secret Store y publicación en el marketplace.

Costo de contexto al activarse
3.2k tok
Tamaño del paquete
11 archivos
Última actualización
hace 6 días
Oficialdesarrollo apis