What it is / what it does
TOPIC 1Remotion is a framework that treats each video frame as a React component.
Instead of editing on a video editor's timeline, you write TypeScript/JSX. The framework controls which "frame" is being rendered via useCurrentFrame(), and you map this number to any visual property: opacity, scale, position, color. The result is exported frame by frame to a real MP4 — no cloud, no per-render cost.
- ▸ Compositions defined in
src/Root.tsxwith<Composition> - ▸ Deterministic animations via
useCurrentFrame()+interpolate() - ▸ Motion physics with
spring() - ▸ Sequencing with
<Sequence>e<Series> - ▸ Render via CLI:
npx remotion render
- ▸ React + TypeScript — the component is the frame
- ▸ remotion — main package + hooks
- ▸ @remotion/renderer — headless rendering CLI
- ▸ @remotion/captions — synchronized captions
- ▸ @remotion/three — React Three Fiber integration
When it runs
TOPIC 2The skill remotion is triggered whenever code matters remotion or you ask Claude Code to create/edit programmatic videos in React. The description trigger: "Use this skill whenever you are dealing with Remotion code to obtain the domain-specific knowledge."
remotionimport ... from 'remotion'- ✓ Export real MP4/WebM video from React
- ✓ Animate data, charts, and text frame by frame
- ✓ Create code-controlled motion graphics
- ✓ Integrate Three.js 3D directly into the video
- ✓ Sync subtitles (.srt) with audio
- ✗ animation-designer — animates the HTML page in the browser; it does not export video
- ✗ HyperFrames — converts static HTML into MP4 via Puppeteer+FFmpeg, without React
- ✗ 3d-animation-creator — animates 3D objects on canvas; it does not export MP4 directly
How it improves your videos
TOPIC 3Intro, Lower Third, Outro as React components across multiple projects.- • Write animations in seconds × fps, never in fixed frames:
2 * fpsinstead of60 - • CSS transitions / Tailwind animation classes are prohibited — don’t render correctly
- • Always use
extrapolateRight: 'clamp'to prevent values from going out of range - • Use
premountForthroughout<Sequence>to avoid visual pop-in
- ✓ spring() with the right damping → no excessive bounce
- ✓ interpolate() with clamp → no artifacts at the extremes
- ✓ Premounted Sequences → smooth transitions
- ✓ Animations written in seconds → portable across frame rates
- ✗ CSS transition in JSX → frame renders as a static image
- ✗ interpolate without clamp → negative opacity values
- ✗ Sequence without premount → elements flicker on entry
- ✗ spring without the right delay → overlapping animations
How it works under the hood
TOPIC 4Practical example + ready-to-use PROMPT
TOPIC 5A 1920×1080 video with three scenes chained via Series: Intro with the logo fading in + spring scaling, Features listing 3 items with stagger, CTA with pulsing text. Exported to MP4 via CLI.
Works with / limitations
TOPIC 6-
▸3d-animation-creator (3.2)
Use
@remotion/threeto embed React Three Fiber scenes directly into the Remotion composition — 3D rendered frame by frame, exported as MP4. -
▸HyperFrames / seedance (3.4)
Use Remotion to generate complex clips and HyperFrames/FFmpeg to assemble the final edit: concatenate, add music, and add simple overlays without rebuilding React.
-
▸canvas-design (2.3)
Export canvas-design assets as static images and import them into Remotion with
<Img>orstaticFile().
- ✗ Just want to animate the landing page — use animation-designer
- ✗ Have ready-made HTML and want a quick MP4 without React — use HyperFrames
- ✗ Want just to visualize 3D on a canvas — use 3d-animation-creator
- ✗ Need cloud rendering without local Node.js — consider Remotion Lambda
- ✗ Non-React project (Vue, Angular, plain HTML) — use HyperFrames/FFmpeg
| Skill | Export MP4? | Stack | Frame-based control? |
|---|---|---|---|
| ⚛️ remotion | ✓ Yes | React + TypeScript | ✓ Total |
| 🔁 HyperFrames | ✓ Yes | HTML + Puppeteer + FFmpeg | ~ Partial (CSS) |
| 🎬 animation-designer | ✗ No | Framer Motion / CSS | ✗ Browser only |
| 🖱️ 3d-animation-creator | ✗ Not directly | Three.js / p5.js / Canvas | ~ Via @remotion/three |
📋 Module 3.3 Summary
- ✓ Remotion = programmatic video in React, frame = component
- ✓
useCurrentFrame()+interpolate()control all animation - ✓
spring()precise spring physics delivery - ✓ CSS transitions are prohibited — they break rendering
- ✓
<Sequence>/<Series>sequence scenes with premount - ✓ Render via
npx remotion render→ Local MP4 - ✓ Clear distinction from HyperFrames and animation-designer
- ✓
@remotion/threeconnects with 3d-animation-creator
Video loop with seedance, non-linear editing with HyperFrames, and final assembly via FFmpeg — the complete production pipeline without React.
Go to 3.4 →