Skip to main content
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →
Animation & Physics · MCP Tool

export_animation

Renders an .exode/.bexode file to a real video file on the Exode engine (headless Chrome + ffmpeg): MP4 (H.264), WebM (VP9, alpha with transparent), GIF, MOV (ProRes 4444 with alpha) or a PNG sequence. Frames are stepped on a virtual clock, so output is smooth and deterministic. Returns the file info and a poster frame. Check the piece with preview_frames first.

Tool Overview & Agent Execution

export_animation is an official Exode MCP tool that allows AI coding assistants like Claude Code, Cursor, and Windsurf to renders an .exode/.bexode file to a real video file on the exode engine (headless chrome + ffmpeg): mp4 (h.264), webm (vp9, alpha with transparent), gif, mov (prores 4444 with alpha) or a png sequence. frames are stepped on a virtual clock, so output is smooth and deterministic. returns the file info and a poster frame. check the piece with preview_frames first.. 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:

prompt
"Use export_animation to configure the motion properties in my active .exode workspace"

Tool Parameters & Input Schema

ParameterTypeRequiredDescription
animationIdstringOptionalPlay only this animation (id or name). Default: the file's state machine; files without one play every animation
durationnumberOptionalSeconds. Default: one pass of the longest animation, or 6 s for effect-only scenes
fitstringOptionalHow the artboard fits the frame. Default Contain; Layout reflows responsive artboards to the output size
formatstringOptionalDefault: from outputPath's extension, else mp4
fpsnumberOptionalFrames per second. Default 60 (GIF caps at 30)
heightnumberOptionalOutput height in CSS px (default: artboard height)
inputsobjectOptionalState machine input values to apply before the first frame, e.g. {"speed": 1.5, "isOpen": true}
outputPathstringOptionalWorkspace-relative output (.mp4 .webm .gif .mov, or a folder for PNGs). Default exports/<name>.<format>
pathstringYesWorkspace-relative .exode or .bexode file
pointerstringOptionalVirtual cursor for interactive scenes: 'none' | 'orbit' | 'sweep' | 'figure8' | 'drift', or keyframes [{t, x, y, down?}] in 0-1 frame coordinates
qualitystringOptionaldraft encodes fast for checking. Default high
scalenumberOptionalPixel density; 2 = Retina-sharp. Default 1
screenstringOptionalScreen id or name, for multi-screen project files
seednumberOptionalSeed for Math.random inside the scene. Default 1
transparentbooleanOptionalDrop the artboard background (alpha kept in webm, mov and png)
warmupnumberOptionalSeconds simulated before the first frame (for simulations that need to settle)
widthnumberOptionalOutput width in CSS px (default: artboard width)

More Animation & Physics Tools

add_animation
RECOMMENDED PRIMARY MOTION PRIMITIVE: Adds an animation object with multi-track keyframes. Preferred over heavy effects for 60fps performance and zero filter memory bloat.
add_code_animation
Adds procedural motion to a normal object: `function animate(t, o, params, ctx)` runs every frame; set o.x/o.y/o.rotation/o.skewX/o.skewY (added), o.scale/o.scaleX/o.scaleY/o.opacity (multiplied), o.text, o.color. Offsets apply to the object's static transform and override its keyframed transform, so to combine with keyframes put the keyframes on a parent Frame (not a Group, which re-centres on its moving child). Use for orbits, wobble, noise drift, counters and seamless loops while the object stays editable.
add_custom_effect
Attaches drawing code to an object: `function render(ctx, env)` runs every frame and paints into the object's box (origin at its centre; env has width, height, time, params, inputs, pointer). Use for generative motion: particles, flow fields, metaballs, procedural type, 3D projection, textures. Put full-bleed pieces on an artboard-sized Rectangle. Code is syntax-checked and linted for minifier and determinism problems. See get_motion_skill { topic: 'effect-code' }.
add_effect
Adds a visual effect to an object (blur, backdropBlur, glow, dropShadow, innerShadow, etc.). ⚠️ PERFORMANCE & MEMORY NOTICE: Visual effects cause heavy GPU/canvas rasterization filter passes and high memory consumption during animation. NEVER use effects as a substitute for motion, states, or interactions. Always build dynamic behaviors using (1) Animations (animate_properties, create_timeline), (2) State Variables (add_input, bind_variable), and (3) Project / Interaction Rules (add_object_interaction, setup_project_rules). Use add_effect sparingly for subtle static aesthetic styling only.

Build & Review Motion Visually

Let Claude or Cursor run export_animation, then fine-tune timing, spring physics, and export ready-to-ship code in ExodeUI.