Communitygithub.com

heygen-com/hyperframes

Porte uma composição existente do Remotion (React) para o HTML do HyperFrames. Use APENAS quando houver um pedido explícito para portar/converter/migrar/traduzir um código-fonte Remotion — unidirecional, apenas Remotion. Uma menção passageira ao Remotion, código de referência, ou 'faça algo como meu vídeo do Remotion' é uma construção nova (/general-video). Dúvida → /hyperframes.

O que é hyperframes?

Este skill é um tradutor especializado que converte composições de vídeo criadas com o framework Remotion (baseado em React) para o ecossistema HyperFrames (HTML + GSAP). Ele é projetado para ser usado exclusivamente quando um usuário solicita explicitamente a migração de um código-fonte Remotion existente, não para criar novas composições ou converter outros tipos de fontes (como After Effects ou animações CSS puras). O skill analisa o código Remotion, mapeia APIs como `useCurrentFrame()`, `Sequence`, `interpolate`, e `spring` para suas equivalentes no GSAP, e gera arquivos HTML com timelimes, layouts e mídia. Ele inclui validação rigorosa, como linting para detectar padrões não suportados (e.g., `useState` com animações não-determinísticas), e um harness de teste que compara renderizações usando a métrica SSIM para garantir fidelidade visual. Também documenta quaisquer lacunas de tradução em um arquivo `TRANSLATION_NOTES.md`.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Instalação do plugin: Antes dos comandos de configuração ou atualização, siga as regras de instalação de plugin quando este skill estiver dentro de um plugin HyperFrames. Instalações independentes mantêm as instruções de atualização abaixo.

Primeiro, mantenha este skill atualizado — confirme com o usuário antes de executar: npx hyperframes skills update remotion-to-hyperframes. Uma operação rápida e sem efeitos quando tudo está atualizado; caso contrário, ele atualiza este skill mais os skills de domínio principal dos quais ele depende antes que você possa usá-los.

Remotion para HyperFrames

A porta de entrada é /hyperframes. Use este skill apenas para portar o código-fonte de uma composição Remotion (React) existente para HyperFrames, unidirecional. Criar uma composição nova, recriar a partir de uma fonte não-Remotion (After Effects, Framer Motion, React / CSS puro — não há código-fonte Remotion para traduzir), uma menção passageira ao Remotion, ou qualquer incerteza → leia /hyperframes primeiro: a camada de intenção é responsável por todas as decisões de rota.

Visão Geral

Traduz composições de vídeo Remotion (baseadas em React) para composições HyperFrames (HTML + GSAP). A maioria dos idiomas do Remotion tem equivalentes diretos no HyperFrames — a tradução é mecânica para ~80% das composições típicas. Este skill codifica o mapeamento e protege contra os 20% que podem causar perda de qualidade, recusando-se a traduzir padrões que não se encaixam no modelo baseado em seek do HF e recomendando o padrão de interop em tempo de execução do PR #214.

O skill é fornecido com um conjunto de teste em camadas (T1–T4, 4 fixtures no total) que avalia as traduções em relação a limites de SSIM medidos. Não traduza sem executar a avaliação — uma tradução que "parece correta" mas renderiza 0,05 SSIM abaixo da linha de base validada está silenciosamente errada.

Quando usar

Use este skill APENAS quando o usuário pedir explicitamente para migrar do Remotion. Exemplos de frases de gatilho:

  • "porta meu projeto Remotion para HyperFrames"
  • "converte este código Remotion para HyperFrames"
  • "migra do Remotion"
  • "traduz esta composição Remotion"
  • "reescreve isso como HTML do HyperFrames"

NÃO use este skill quando:

  • (a) O usuário está criando uma composição nova do HyperFrames, mesmo que ele tenha ou esteja testando A/B um vídeo Remotion semelhante.
  • (b) O usuário menciona Remotion de passagem sem pedir migração.
  • (c) O usuário compartilha código Remotion como material de referência, em vez de pedir uma tradução.
  • (d) O usuário pede "o mesmo vídeo que meu Remotion" sem pedir explicitamente para migrar o código-fonte — trate como uma nova construção HyperFrames.

NÃO SUPORTADO (recuse — este skill não faz isso):

  • A direção inversa. Exportar uma composição HyperFrames de volta para o Remotion (ou para qualquer outro framework) não é um fluxo de trabalho — a tradução é apenas Remotion → HyperFrames. Diga isso claramente.
  • Fontes não-Remotion. Um projeto do After Effects (.aep), uma animação Framer Motion / React puro / CSS, ou qualquer outra ferramenta não é uma composição Remotion — não há código-fonte Remotion para traduzir. Recrie-a nativamente via /general-video, ou recuse se o HyperFrames não puder representá-la.

Em caso de dúvida, prefira criar uma composição HyperFrames nativa com /general-video (o fluxo geral de criação do HyperFrames).

Fluxo de Trabalho

Passo 1: Lint do código-fonte

Execute scripts/lint_source.py sobre o diretório de origem Remotion. O lint detecta padrões que não podem ser traduzidos de forma limpa:

  • Bloqueadores (recuse + recomende interop): useState, useReducer, useEffect/useLayoutEffect com dependências não vazias, calculateMetadata assíncrono, bibliotecas de UI React de terceiros (MUI, Chakra, Mantine, antd, shadcn, Radix, NextUI).
  • Avisos (traduza após descartar o construto): configuração @remotion/lambda, delayRender, useCallback, useMemo, hooks personalizados.
  • Informação (traduza com nota): staticFile, interpolateColors.

Se algum bloqueador for acionado, pare. Leia references/escape-hatch.md e apresente a mensagem de recomendação. Avisos não param a tradução — descarte o construto problemático no passo 3 e anote a lacuna em TRANSLATION_NOTES.md. A configuração @remotion/lambda é o caso canônico de aviso: o skill descarta a importação + chamadas renderMediaOnLambda(...) mas traduz o resto da composição.

Passo 2: Planeje a tradução

Leia references/api-map.md — o índice de cada API do Remotion e seu equivalente no HF ou referência por tópico. Identifique quais referências de tópico você precisará com base no que o código-fonte usa:

Fonte contémCarregar referência
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

Não carregue todas — carregue apenas o que o código-fonte específico precisa.

Pesquise no catálogo ativo por qualquer efeito visual que a tabela não mapeia. Quando o código-fonte descreve um visual sem equivalente na API do HF — uma sobreposição de scanline/CRT, um efeito de glitch ou aberração cromática, um wipe de shader, um tratamento de grão de filme — execute npx hyperframes catalog --query "<o efeito, em português claro>" --json antes de escrevê-lo manualmente em GSAP. A pesquisa não precisa de nada instalado: sem projeto, sem add anterior, sem conta. Ela classifica todo o registro hospedado (~400 blocos e componentes) de qualquer diretório, e o transitions.md já usa esta rota para clockWipe() / iris() via npx hyperframes add sdf-iris. Um componente real está mais próximo do código-fonte do que uma aproximação manual, então geralmente aumenta o SSIM em vez de diminuí-lo — mas a diferença de renderização no Passo 4 ainda é o árbitro. Escreva o efeito manualmente quando a pesquisa não retornar nada adequado, e registre a substituição em TRANSLATION_NOTES.md de qualquer forma.

Passo 3: Gere a composição HF

Emita index.html com:

  • <div id="stage"> raiz carregando o data-composition-id, data-start="0", data-duration (em segundos), data-fps, data-width, data-height da composição, além de um data-* por property escalar.
  • Uma <div> host por cena com data-composition-src="compositions/<scene>.html" e data-start / data-duration / data-track-index. A raiz não contém layout aninhado.
  • Um compositions/<scene>.html por cena (uma sub-composição <template>): seu <style> inline para layout (o CSS define o estado from de cada propriedade animada), sua marcação, e uma gsap.timeline({paused: true}) no tempo local da cena. Cada derivação de useCurrentFrame() do Remotion se torna um tween nessa timeline no offset dentro da cena.
  • window.__timelines["<scene-id>"] = tl; em cada arquivo de cena, e window.__timelines["<composition-id>"] para a timeline da raiz (possivelmente vazia).

Subcomponentes React personalizados são embutidos como HTML repetido usando a interface de props como template (veja parameters.md para o padrão data-* por instância).

Passo 4: Valide

Execute o harness de avaliação — references/eval.md para o guia completo. Caminho rápido:

# Renderizar linha de base Remotion (após npm install na fixture)
cd remotion-src && npx remotion render <CompositionId> out/baseline.mp4

# Renderizar tradução HF
cd ../hf-src && npx hyperframes render --skill=remotion-to-hyperframes --output ../hf.mp4

# Diferença SSIM
../../scripts/render_diff.sh ./remotion-src/out/baseline.mp4 ./hf.mp4 ./diff

Limiar: ~0.02 abaixo do p05 do nível de complexidade do código-fonte (veja a tabela de limites validados em eval.md). Se a diferença falhar, execute scripts/frame_strip.sh para ver quais quadros divergiram, e então releia a referência relevante de tempo/sequenciamento/mídia.

Crítico: ambas as renderizações devem usar formato de pixel correspondente. Defina Config.setVideoImageFormat("png") + Config.setColorSpace("bt709") no remotion.config.ts do código-fonte Remotion — caso contrário, a diferença medirá diferenças de codificador (~0.05 de penalidade SSIM), não fidelidade de tradução.

Passo 5: Documente lacunas

Qualquer coisa que não tenha sido traduzida de forma limpa (rampas de volume descartadas, apresentações personalizadas aproximadas, fontes substituídas) gera um TRANSLATION_NOTES.md escrito ao lado da saída HF. Veja references/limitations.md para o formato.

O que este skill explicitamente NÃO faz

  • Traduzir máquinas de estado React. Composições que conduzem animação via useState + useEffect não são alvos determinísticos de captura de quadro no modelo baseado em seek do HyperFrames. Recomende o padrão de interop em tempo de execução.
  • Executar o pipeline de renderização do Remotion junto com o HyperFrames. Esse é o padrão de interop em tempo de execução do PR #214 — uma solução separada para composições que falham no lint deste skill.

(@remotion/lambda não é um bloqueador — a configuração Lambda é sobre implantação, não animação. O skill descarta isso como um aviso e traduz o resto. Veja references/escape-hatch.md.)

Como avaliar sua própria tradução

Execute o orquestrador do conjunto de teste:

./assets/test-corpus/run.sh

Ele executa T1, T2, T3 (renderização + diferença) e T4 (validação de lint), imprime uma tabela de aprovação/reprovação por nível e emite um relatório JSON agregado. Use isso para verificar se o skill está funcionando de ponta a ponta em uma verificação limpa — e como um teste de regressão após editar qualquer referência.

Linha de base validada (em 27/04/2026):

NívelForma da composiçãoSSIM MédioLimiar
T1fade-in de elemento único0.9740.95
T2múltiplas cenas + spring + áudio + imagem0.9850.95
T3orientado a dados, subcomponentes personalizados, contagem0.9530.90
T4escape hatch (8 casos de lint)8/8 aprovadon/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]

Habilidades Relacionadas