Skip to content
Back to skills

Hyperframes Remotion To Hyperframes

ASecurity

Only load when the user explicitly mentions HyperFrames. 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.

  • 44 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
developmentpythongoreactspringawsapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 19 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add remorses/opencode-config --skill hyperframes-remotion-to-hyperframes --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Hyperframes Remotion To Hyperframes?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Hyperframes Remotion To Hyperframes
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/remorses-hyperframes-remotion-to-hyperframes/badge)](https://www.skillsdirectory.com/skills/remorses-hyperframes-remotion-to-hyperframes)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: hyperframes-remotion-to-hyperframes
description: Only load when the user explicitly mentions HyperFrames. 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.
---

**Plugin installs:** Inside a HyperFrames plugin, follow [plugin execution rules](../hyperframes/references/plugin-installation.md).

# Import into HyperFrames

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.

## Native: translate, then verify

1. For Remotion, run `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.
2. Translate to the `/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.
3. Keep it editable: the source's props become `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`.
4. Compare frame by frame: `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).
5. Write what didn't translate cleanly (dropped volume ramps, approximated presentations, substituted fonts) to `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.

## Hosted

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.

## Media

`<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.

Files in this skill

  • SKILL.md4.9 KB
  • assets/test-corpus/.gitignore16 B
  • assets/test-corpus/run.sh8.4 KB
  • assets/test-corpus/tier-1-title-card/.gitignore128 B
  • assets/test-corpus/tier-1-title-card/README.md2.1 KB
  • assets/test-corpus/tier-1-title-card/expected.json1.7 KB
  • assets/test-corpus/tier-1-title-card/hf-src/compositions/title.html1.1 KB
  • assets/test-corpus/tier-1-title-card/hf-src/index.html1.1 KB
  • assets/test-corpus/tier-1-title-card/remotion-src/remotion.config.ts497 B
  • assets/test-corpus/tier-1-title-card/remotion-src/src/Root.tsx259 B
  • assets/test-corpus/tier-1-title-card/remotion-src/src/TitleCard.tsx773 B
  • assets/test-corpus/tier-1-title-card/remotion-src/src/index.ts109 B
  • assets/test-corpus/tier-1-title-card/remotion-src/tsconfig.json337 B
  • assets/test-corpus/tier-2-multi-scene/.gitignore215 B
  • assets/test-corpus/tier-2-multi-scene/README.md3.2 KB
  • assets/test-corpus/tier-2-multi-scene/expected.json2.1 KB
  • assets/test-corpus/tier-2-multi-scene/hf-src/compositions/scene-1.html1.1 KB
  • assets/test-corpus/tier-2-multi-scene/hf-src/compositions/scene-2.html1.1 KB
  • assets/test-corpus/tier-2-multi-scene/hf-src/compositions/scene-3.html1004 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.