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_custom_effect is an official Exode MCP tool that allows AI coding assistants like Claude Code, Cursor, and Windsurf to 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' }.. 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 add_custom_effect to configure the motion properties in my active .exode workspace"Tool Parameters & Input Schema
| Parameter | Type | Required | Description |
|---|---|---|---|
| code | string | Yes | JavaScript defining function render(ctx, env). Module-level variables persist between frames. |
| name | string | Optional | The name parameter for add_custom_effect. |
| objectId | string | Yes | Object id or name |
| params | object | Optional | Values passed as env.params |
| path | string | Yes | The path parameter for add_custom_effect. |
| replace | boolean | Optional | Replace the object's existing CustomEffects instead of adding |
More Animation & Physics Tools
Build & Review Motion Visually
Let Claude or Cursor run add_custom_effect, then fine-tune timing, spring physics, and export ready-to-ship code in ExodeUI.