compose motion
Place a motion graphic on a graphics track over the stack, from Remotion JSX or from a template, or rewrite the graphic on clip_id in place, keeping its lane, timing and settings. Code: a component named DynamicAnimation, plain JSX, no imports, against the fixed runtime scope and CONTROLS convention skill-motion-graphics lists (manage_skills get), animated from useCurrentFrame (rendering is frame-deterministic). template places a ready graphic or one saved in this workspace; save_as keeps what this call made under a name. The response says what it made, its controls as set and what the code gets wrong. No frame is drawn, so overflowing or wrapping text is not measured: inspect_timeline on a frame of the clip notes it. Free.
Authorizations
An API key (es_live_…) from Settings, under API keys, or an OAuth access token.
Headers
Retry a paid dispatch safely: the same key returns the job already dispatched instead of charging again.
The workspace this one call acts in, when it is not the default: for a key or a connected agent, one of the workspaces the user allowed it.
Body
The timeline id.
Remotion JSX source (the server compiles it; never pass compiled code). Leave out when placing a template, or when only saving the graphic already on clip_id.
200000Place this instead of source_code: a graphic saved in this workspace (name or id), with its saved settings and length, or a ready graphic by the id get_templates returns. The code is then the clip's own.
120Knob values by CONTROLS name, set on the clip with the code: words, colors, a picture knob's library ref. Over a template they change only what they name.
Save the graphic this call leaves on the timeline under this name for the workspace, its code, settings and length together; an existing name is overwritten. With clip_id and nothing else, saves that clip as it is.
60Rewrite the graphic on this clip instead of adding another. It keeps its place, its length, its lane and its fades, and the knobs a user has turned stay turned. This is how a graphic is revised.
Where a new clip lands: { from (frame, default 0), duration_frames (default the saved graphic's length, else three seconds) }, or from_seconds and duration_seconds. Lands on the top graphics lane when free. Not with clip_id.
Only description is read, as the clip's label. Values live in the source; the ones worth changing later go in its CONTROLS list, set with values here or later with edit_timeline updateClip {values}.
Optional: one sentence shown to the user beside this action.
600
