Skills
Skill 19 of 22
Bring existing video code or footage into HyperFrames and verify it frame by frame against the original - Remotion first, also Motion Canvas, Lottie, Three.js, p5.js, canvas or…
2 minutes · 518 words · 4 sections
Install
npx skills add heygen-com/hyperframes --skill remotion-to-hyperframesnpx skills add heygen-com/hyperframes/plugin marketplace add heygen-com/hyperframesThe first command installs just this skill, by the name in its SKILL.md; the second installs the whole repository.
Plugin installs: Inside a HyperFrames plugin, follow plugin execution rules (opens in a new tab).
Usage beacon: run npx hyperframes events --skill=remotion-to-hyperframes once as this skill starts. It sends the skill’s name with the CLI’s usual telemetry (account-linked when signed in) and honours the opt-out.
HyperFrames is the container: its tracks, sub-compositions and variables are editable in Studio whatever runs inside a clip. Bring each part in at the highest level it supports and record which level you used.
| Level | For | How | Editable in Studio afterwards |
|---|---|---|---|
| Native | code that can become HTML + GSAP: most Remotion, HTML/CSS/GSAP animation, simple Motion Canvas | translate it, then verify frame by frame | every element; variables, catalog, presets apply |
| Hosted | code that can draw any requested frame in a browser: canvas, p5.js, Three.js, Lottie, WebGL, other JS animation | keep the code and drive it from HyperFrames time | timing, position, exposed parameters |
| Media | anything that outputs video or frames: Manim, After Effects, Blender, PIL, moviepy | render to a file and use it as a clip | cut, place, layer; not the pixels inside |
Code that depends on wall-clock time, live physics or the network can only come in as media.
python3 <SKILL_DIR>/scripts/lint_source.py <source dir> first. Blockers (useState, useReducer, useEffect with dependencies, async calculateMetadata, React UI kits such as MUI, Chakra, Mantine, antd, shadcn, Radix, NextUI) don’t translate: host them or refactor them out, never approximate (references/escape-hatch.md). Warnings (@remotion/lambda config, delayRender, useMemo, custom hooks) are dropped and noted./hyperframes contract: one sub-composition per scene, times in seconds (frame / fps), asset paths root-relative. Each Remotion API’s equivalent is in references/api-map.md. Put Remotion’s render-page rule * { box-sizing: border-box; } once in the root index.html <style>: without it every bordered or padded element grows by its border and padding.data-composition-variables bound with data-var-text, data-var-src or var(--id); each Sequence becomes a timed clip or a sub-composition; a reused component becomes one sub-composition mounted several times with data-variable-values.npx hyperframes diff <original.mp4> . --at <t,…> scores your project against the original at those times without rendering; sample every scene and both sides of every cut. Then render and npx hyperframes diff <original.mp4> <hf.mp4> scores every frame: SSIM, the worst cell of each frame (one late or recoloured element), cuts, and a sheet of the worst moments (thresholds per complexity tier in references/eval.md). Render the Remotion side with Config.setVideoImageFormat("png") and Config.setColorSpace("bt709"), or the diff measures the encoders (about 0.05 SSIM).TRANSLATION_NOTES.md.| Remotion | Read |
|---|---|
Composition, defaultProps, schema, calculateMetadata | references/parameters.md |
Sequence, Series, Loop, AbsoluteFill, Freeze | references/sequencing.md |
useCurrentFrame, interpolate, spring, Easing, interpolateColors | references/timing.md |
Audio, Video, Img, IFrame, staticFile, delayRender | references/media.md |
TransitionSeries, @remotion/transitions | references/transitions.md |
@remotion/lottie | references/lottie.md |
@remotion/google-fonts, Font.loadFont, @font-face | references/fonts.md |
| What can’t be ported | references/limitations.md |
Before hand-building a named visual the source used, search npx hyperframes catalog --query "<the visual, in English>" --json: it ranks the whole registry with nothing installed.
Keep the code and let HyperFrames own the clock: it draws the frame for the time it is given. The seek protocol and the built-in adapters for Lottie, Three.js, anime.js, WAAPI and CSS animations are in ../hyperframes/references/runtimes.md. No requestAnimationFrame loop or timer as the time source, seeded randomness only, and data-duration on the root when nothing else defines the length.
<video class="clip" data-has-audio="true" src="assets/x.mp4" ...>, or muted when it is silent. Nothing else is needed.
In the final message, list each imported part with its level, what a person can change in Studio, and how the frame-by-frame comparison came out.
Bring existing video code or footage into HyperFrames and verify it frame by frame against the original - Remotion first, also Motion Canvas, Lottie, Three.js, p5.js, canvas or plain HTML/CSS animation, or renders from Manim, After Effects or Blender. Use to port, convert, migrate or reuse work made with another tool.
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
main, last pushed 8 November 2026.SKILL.md, not by matching a directory convention. 3 distinct layouts observed: .agents/skills/*/SKILL.md, registry/blocks/*/SKILL.md, skills/*/SKILL.md.h1 and no skipped levels:.claude-plugin/marketplace.json by HeyGen, declaring 2 plugins. It is read for editorial metadata only — never as the skill index, which is always the repository tree./heygen-com/hyperframes.md, and each skill at its own .md URL.75 files · 159 KB
Everything this skill ships beside its prose. All of it is set here, as subchapters of skill 19.
Documentation the agent loads on demand, rather than up front.
Executable code the skill can run.
Templates, schemas and fixtures the skill draws on.
assets/1 file · 0 B
assets/test-corpus/2 files · 8 KB
assets/test-corpus/tier-1-title-card/3 files · 4 KB
assets/test-corpus/tier-1-title-card/hf-src/compositions/1 file · 1 KB
assets/test-corpus/tier-1-title-card/hf-src/1 file · 1 KB
assets/test-corpus/tier-1-title-card/remotion-src/3 files · 1 KB
assets/test-corpus/tier-1-title-card/remotion-src/src/3 files · 1 KB
assets/test-corpus/tier-2-multi-scene/4 files · 7 KB
assets/test-corpus/tier-2-multi-scene/hf-src/compositions/3 files · 3 KB
assets/test-corpus/tier-2-multi-scene/hf-src/1 file · 2 KB
assets/test-corpus/tier-2-multi-scene/remotion-src/3 files · 1 KB
assets/test-corpus/tier-2-multi-scene/remotion-src/src/3 files · 3 KB
assets/test-corpus/tier-3-data-driven/3 files · 8 KB
assets/test-corpus/tier-3-data-driven/hf-src/compositions/3 files · 6 KB
assets/test-corpus/tier-3-data-driven/hf-src/1 file · 2 KB
assets/test-corpus/tier-3-data-driven/remotion-src/3 files · 1 KB
assets/test-corpus/tier-3-data-driven/remotion-src/src/components/3 files · 3 KB
assets/test-corpus/tier-3-data-driven/remotion-src/src/3 files · 2 KB
assets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/3 files · 2 KB
assets/test-corpus/tier-4-escape-hatch/cases/8 files · 9 KBassets/test-corpus/tier-4-escape-hatch/3 files · 9 KB