remotion-visual-debug

Visual debugging for Remotion video projects. Use when working with Remotion compositions to verify animations, layouts, positioning, and timing by rendering frame samples. Essential for self-correcting visual issues that aren't apparent from code alone.

16 stars

Best use case

remotion-visual-debug is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Visual debugging for Remotion video projects. Use when working with Remotion compositions to verify animations, layouts, positioning, and timing by rendering frame samples. Essential for self-correcting visual issues that aren't apparent from code alone.

Teams using remotion-visual-debug should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/remotion-visual-debug/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/design/remotion-visual-debug/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/remotion-visual-debug/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How remotion-visual-debug Compares

Feature / Agentremotion-visual-debugStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Visual debugging for Remotion video projects. Use when working with Remotion compositions to verify animations, layouts, positioning, and timing by rendering frame samples. Essential for self-correcting visual issues that aren't apparent from code alone.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Remotion Visual Debugging

You cannot natively view video files, but you CAN read rendered JPEG frames. This skill enables visual debugging of Remotion projects by extracting frame samples and analyzing them.

## When to Use Visual Debugging

Use this skill when:
- **Layout issues**: Verifying element positioning, spacing, alignment
- **Animation timing**: Checking animation sequences, transitions, easing
- **Text rendering**: Verifying font rendering, text overflow, truncation
- **Responsive design**: Checking how content fits at different points
- **Color/styling**: Verifying gradients, shadows, opacity
- **Scene transitions**: Checking handoffs between scenes
- **Before delivery**: Final verification before rendering full video

## The Render Script

The skill bundles a universal Remotion frame extractor. Use the cross-platform wrapper which automatically sets up the project:

```bash
node ~/.claude/skills/remotion-visual-debug/scripts/render-frames.mjs [options]
```

The wrapper automatically copies `render-stills.mjs` to your project directory (if needed) and runs it. Works on Windows, macOS, and Linux.

### Quick Reference

```bash
# List available compositions
node ~/.claude/skills/remotion-visual-debug/scripts/render-frames.mjs --list

# Extract 9 frames across entire video (default)
node ~/.claude/skills/remotion-visual-debug/scripts/render-frames.mjs -n 9 --grid --labels

# Analyze specific animation range (frames 100-200, 12 samples)
node ~/.claude/skills/remotion-visual-debug/scripts/render-frames.mjs --from 100 --to 200 -n 12 --grid --labels

# Analyze by timestamp (5s to 10s)
node ~/.claude/skills/remotion-visual-debug/scripts/render-frames.mjs --from 5000 --to 10000 --ms -n 9 --grid --labels

# Specific frames only
node ~/.claude/skills/remotion-visual-debug/scripts/render-frames.mjs -f 0,30,60,90,120 --grid --labels
```

**Alias tip**: Add to your shell config for shorter commands:

```bash
# Bash/Zsh (Linux/macOS)
alias remotion-debug="node ~/.claude/skills/remotion-visual-debug/scripts/render-frames.mjs"

# PowerShell (Windows)
function remotion-debug { node ~/.claude/skills/remotion-visual-debug/scripts/render-frames.mjs $args }
```

### Output

- Individual frames: `out/stills/frame-XXXX.jpeg`
- Grid composite: `out/stills/grid.jpg` (when `--grid` used)

## Visual Debugging Workflow

### Step 1: Understand the Composition

```bash
node ~/.claude/skills/remotion-visual-debug/scripts/render-frames.mjs --list
```

This shows available compositions with dimensions, duration, and FPS.

### Step 2: Render Overview Grid

For initial overview, render 9-12 frames across the entire video:

```bash
node ~/.claude/skills/remotion-visual-debug/scripts/render-frames.mjs -n 9 --grid --labels
```

### Step 3: Read and Analyze the Grid

```
Read the file: out/stills/grid.jpg
```

The grid image shows frames with labels (frame number + timestamp). Analyze:
- Overall flow and pacing
- Scene transitions
- Layout consistency
- Any obvious visual issues

### Step 4: Deep Dive Problem Areas

If you spot issues in a specific time range, extract more frames from that area:

```bash
# If issue appears around frame 150, analyze frames 120-180 closely
node ~/.claude/skills/remotion-visual-debug/scripts/render-frames.mjs --from 120 --to 180 -n 12 --grid --labels
```

### Step 5: Verify Fixes

After making code changes, re-render the affected range to verify the fix.

## Script Options Reference

### Frame Selection (mutually exclusive)
| Option | Description | Example |
|--------|-------------|---------|
| `-f, --frames` | Specific frame numbers | `-f 0,30,60,90` |
| `-t, --timestamps` | Specific timestamps (ms) | `-t 0,1000,2000` |
| `-i, --interval` | Every N milliseconds | `-i 500` |
| `--from/--to -n` | Uniform distribution in range | `--from 0 --to 300 -n 9` |
| `--ms` | Interpret from/to as milliseconds | `--from 5000 --to 10000 --ms` |

### Grid Options
| Option | Description | Example |
|--------|-------------|---------|
| `--grid, -g` | Create grid composite | `--grid` (auto), `--grid 3` (3 cols), `--grid 3x2` |
| `--labels, -l` | Add frame/timestamp labels | `--labels` |
| `--gap` | Gap between images (px) | `--gap 8` |

### Output Options
| Option | Description | Example |
|--------|-------------|---------|
| `-s, --scale` | Scale factor (default 0.5) | `-s 1` (full res) |
| `-q, --quality` | JPEG quality 0-100 | `-q 90` |
| `-o, --output` | Output directory | `-o ./debug-frames` |

### Project Options
| Option | Description | Example |
|--------|-------------|---------|
| `-p, --project` | Project directory | `-p /path/to/project` |
| `-c, --composition` | Composition ID | `-c MyScene` |
| `-e, --entry` | Entry point file | `-e src/Video.tsx` |

## Common Debugging Scenarios

### Animation Not Smooth
Extract many frames from the animation range to see individual steps:
```bash
node ~/.claude/skills/remotion-visual-debug/scripts/render-frames.mjs --from 50 --to 80 -n 15 --grid --labels
```

### Element Positioning Wrong
Render at full scale for pixel-accurate analysis:
```bash
node ~/.claude/skills/remotion-visual-debug/scripts/render-frames.mjs -f 100 -s 1 -q 95
```

### Scene Transition Issue
Focus on the transition frames:
```bash
# If Scene 1 ends at frame 150, check 140-160
node ~/.claude/skills/remotion-visual-debug/scripts/render-frames.mjs --from 140 --to 160 -n 10 --grid --labels
```

### Text Rendering/Font Issues
Render specific frames at full resolution:
```bash
node ~/.claude/skills/remotion-visual-debug/scripts/render-frames.mjs -f 30,60,90 -s 1 --grid
```

## Dependencies

The script requires these packages (install in any Remotion project):
- `@remotion/renderer`
- `@remotion/bundler`
- `sharp`

```bash
npm install @remotion/renderer @remotion/bundler sharp
```

## Tips for Effective Visual Debugging

1. **Start with overview** - Always render a full-video grid first
2. **Use labels** - The `--labels` flag helps correlate frames with code
3. **Iterate quickly** - Bundle caching makes subsequent renders fast
4. **Check boundaries** - Scene transitions and animation start/end points
5. **Verify at scale** - Use `-s 1` for pixel-accurate checks when needed
6. **Compare before/after** - Render same frames before and after fixes

Related Skills

a11y-debugging

16
from diegosouzapw/awesome-omni-skill

Uses Chrome DevTools MCP for accessibility (a11y) debugging and auditing based on web.dev guidelines. Use when testing semantic HTML, ARIA labels, focus states, keyboard navigation, tap targets, and color contrast.

3d-visualizer

16
from diegosouzapw/awesome-omni-skill

Expert in Three.js, 3D graphics, and interactive 3D visualizations

ux-visualizer

16
from diegosouzapw/awesome-omni-skill

Analyzes source code or requirements to generate high-fidelity screen and state transition diagrams. Specialized in SPA state mapping.

ui-visual-validator

16
from diegosouzapw/awesome-omni-skill

Rigorous visual validation expert specializing in UI testing, design system compliance, and accessibility verification.

browser-debugger

16
from diegosouzapw/awesome-omni-skill

Systematically tests UI functionality, validates design fidelity with AI visual analysis, monitors console output, tracks network requests, and provides debugging reports using Chrome DevTools MCP. Use after implementing UI features, for design validation, when investigating console errors, for regression testing, or when user mentions testing, browser bugs, console errors, or UI verification.

axiom-swiftui-debugging

16
from diegosouzapw/awesome-omni-skill

Use when debugging SwiftUI view updates, preview crashes, or layout issues - diagnostic decision trees to identify root causes quickly and avoid misdiagnosis under pressure

asyncredux-debugging

16
from diegosouzapw/awesome-omni-skill

Debug AsyncRedux applications effectively. Covers printing state with store.state, checking actionsInProgress(), using ConsoleActionObserver, StateObserver for state change tracking, and tracking dispatchCount/reduceCount.

todo-visualizer

16
from diegosouzapw/awesome-omni-skill

Read local Markdown TODO files (supports Chinese/English), analyze task completion status, and generate beautiful single-page HTML dashboards with timeline visualization, interactive task lists, and persistent progress tracking.

plotly-visualization

16
from diegosouzapw/awesome-omni-skill

Generate interactive Plotly and Matplotlib visualizations from DataFrames with configurable templates and multi-format support.

odoo-debugger

16
from diegosouzapw/awesome-omni-skill

Analyzes and resolves Odoo 16.0 issues including SVL linking problems, queue job failures, view errors, and business logic bugs. This skill should be used when the user reports problems such as "Debug this SVL linking issue" or "Queue job is failing" or "View not showing correctly" or "Figure out why this vendor bill isn't linking to stock moves".

json-visualization-dev

16
from diegosouzapw/awesome-omni-skill

Develop and maintain the JSON Visualization web application - a Next.js tool for visualizing JSON/YAML/CSV/XML data as interactive graphs. Use when working with this codebase, adding features, fixing bugs, or understanding the graph visualization, data conversion, or type generation systems.

iqair-airvisual-automation

16
from diegosouzapw/awesome-omni-skill

Automate Iqair Airvisual tasks via Rube MCP (Composio). Always search tools first for current schemas.