preview_frames
Look at an animation before delivering it: renders chosen moments on the real engine and returns them as one contact-sheet image (with timestamps) plus any errors the scene threw. Use after every significant change: a 9-frame sheet across the duration, then stills at specific beats.
preview_frames is an official Exode MCP tool that allows AI coding assistants like Claude Code, Cursor, and Windsurf to look at an animation before delivering it: renders chosen moments on the real engine and returns them as one contact-sheet image (with timestamps) plus any errors the scene threw. use after every significant change: a 9-frame sheet across the duration, then stills at specific beats.. It directly inspects and modifies local .exode JSON files with precision without manual UI tweaking.
Example Prompt for Claude Code & Cursor
Give this instruction to your AI coding agent to execute this tool on your active .exode workspace:
"Use preview_frames to configure the motion properties in my active .exode workspace"Tool Parameters & Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
| animationId | string | Optional | Play only this animation (id or name). Default: the file's state machine; files without one play every animation |
| count | number | Optional | Evenly spaced frames when times is omitted. Default 9, max 16 |
| duration | number | Optional | Seconds. Default: one pass of the longest animation, or 6 s for effect-only scenes |
| fit | string | Optional | How the artboard fits the frame. Default Contain; Layout reflows responsive artboards to the output size |
| height | number | Optional | Output height in CSS px (default: artboard height) |
| inputs | object | Optional | State machine input values to apply before the first frame, e.g. {"speed": 1.5, "isOpen": true} |
| path | string | Yes | Workspace-relative .exode or .bexode file |
| pointer | string | Optional | Virtual cursor for interactive scenes: 'none' | 'orbit' | 'sweep' | 'figure8' | 'drift', or keyframes [{t, x, y, down?}] in 0-1 frame coordinates |
| scale | number | Optional | Pixel density; 2 = Retina-sharp. Default 1 |
| screen | string | Optional | Screen id or name, for multi-screen project files |
| seed | number | Optional | Seed for Math.random inside the scene. Default 1 |
| sheetPath | string | Optional | Optional workspace-relative path to also save the sheet PNG |
| sheetWidth | number | Optional | Contact sheet width in px. Default 1400 |
| times | array | Optional | Seconds to capture, e.g. [0, 0.4, 1.2, 3] |
| transparent | boolean | Optional | Drop the artboard background (alpha kept in webm, mov and png) |
| warmup | number | Optional | Seconds simulated before the first frame (for simulations that need to settle) |
| width | number | Optional | Output width in CSS px (default: artboard width) |
More Export & Runtimes Tools
Build & Review Motion Visually
Let Claude or Cursor run preview_frames, then fine-tune timing, spring physics, and export ready-to-ship code in ExodeUI.