Remotion Engine

Overview Engines Pipeline Values Roadmap

What is Remotion?

Remotion is a React-based framework for creating videos programmatically. Instead of writing imperative animation code, you compose React components that render frames as a function of the current time. Each frame is a React render — the same mental model as building a web page, but animated over time.

TKK's Remotion integration is manifest-driven: you write a JSON file describing the scenes, and the component library handles all the rendering. No code changes per video.

Manifest-Driven Architecture

Instead of writing Python code for each video, Remotion videos are defined entirely by a JSON manifest. The manifest specifies scenes, components, text, timing, and zone placement. The renderer reads this manifest and produces a video.

{ "title": "The Aral Sea", "scenes": [ { "type": "headline", "zone": "MID", "text": "A lake the size of Ireland", "duration": 5 } ] }

Component Library

The Remotion engine includes a library of reusable scene components. Each component handles its own enter/hold/exit animation lifecycle with spring physics and crossfade transitions.

Headline
Large text with spring-in animation
Counter
Animated number counting up/down
BarChart
Animated bar chart with labels
Timeline
Horizontal timeline with events
CompareStack
Side-by-side comparison layout
StatGrid
Grid of stat cards with staggered entry
QuoteCard
Styled quotation with attribution
MapHighlight
Map with animated region highlight
ListReveal
Bullet points appearing one by one
CaptionOverlay
Word-level subtitle overlay

Zone System

Remotion uses the same 5-zone vertical layout as Manim, pixel-mapped for the 1080x1920 frame. Components are placed by zone name in the manifest — the renderer handles the positioning.

Animation Model

All animations use Remotion's spring physics system. Each component follows a 3-phase lifecycle:

Transitions between scenes use crossfade by default, with the exit of one scene overlapping the enter of the next.

Strengths & Current State

Strengths

  • Declarative — JSON in, video out
  • Zero per-video code changes
  • Faster iteration cycle
  • Web-native tooling (React DevTools)
  • Spring physics feel natural
  • Component reuse across all videos

Current State

  • 9 manifests built
  • Migration from 44+ Manim videos
  • Component library growing
  • QA integration in progress
  • Not yet in production pipeline