compose motion
Place a motion graphic on its own visual 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 and what compiles but is wrong. No frame is drawn: inspect_timeline shows the result. 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 key's own.
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.
Place 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. Each call adds its own overlay lane. 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
