- File:
out/terrascope-launch.mp4(~3 MB) - Specs: 1080×1920 (9:16), 30 fps, ~60 seconds, H.264
- Use: Mobile-first product launch / social (Reels, TikTok, etc.)
npm install
npm run start # Remotion Studio (preview)
npm run render # Render MP4 to out/terrascope-launch.mp4Requires: Node 18+, FFmpeg on PATH (ffmpeg.org).
| Path | Role |
|---|---|
src/remotion/index.ts |
Entry: registerRoot(Root) |
src/remotion/Root.tsx |
Registers composition TerrascopeLaunch |
src/remotion/config.ts |
Resolution, FPS, duration, timeline (hook/features/benefits/CTA), brand colors |
src/remotion/TerrascopeLaunch.tsx |
Main comp: sequences the 4 scenes |
src/remotion/scenes/HookScene.tsx |
0–10s: problem + brand (particles, kinetic type) |
src/remotion/scenes/FeaturesScene.tsx |
10–35s: 48H, 4K, LiDAR, 8+ (staggered cards) |
src/remotion/scenes/BenefitsScene.tsx |
35–48s: credentials, “Built for construction” |
src/remotion/scenes/CTAScene.tsx |
48–60s: “Your site. Documented from above.” + CTA |
-
Copy / timing
Edit text and timing in each scene file undersrc/remotion/scenes/.
Timeline boundaries are insrc/remotion/config.ts(HOOK_END,FEATURES_END,BENEFITS_END). -
Brand colors
Update theBRANDobject insrc/remotion/config.ts(green, greenLight, bg, ink). -
Adding music / voiceover
- Put audio in
public/audio/(e.g.background.mp3). - In
TerrascopeLaunch.tsx, add:import { Audio, staticFile } from 'remotion'; // inside return: <Audio src={staticFile('audio/background.mp3')} volume={0.4} />
- Use Remotion’s
<Sequence>anddelayfor syncing multiple tracks.
- Put audio in
-
Screenshots / website footage
Use Remotion’s<Img>or<OffthreadVideo>with assets inpublic/and reference viastaticFile('path/to/asset.png').
For “live” site capture you’d pre-record and drop the file intopublic/. -
3D / particles
Current version uses CSS (particles in HookScene, transforms). For full 3D, add@remotion/threeand build scenes with Three.js inside the composition.
- Remotion 4 with React; no external video/audio generation APIs (no ElevenLabs, Stable Diffusion, etc.).
- Animations:
interpolate()andspring()fromremotionfor opacity, position, scale. - Structure: One composition, four
<Sequence>segments; each scene usesuseCurrentFrame()and its sequence start to compute local time. - Assets: No external images/video in the composition; you can add them under
public/and reference withstaticFile().