Nest one project inside another

A composition layer plays another project inside the one you’re editing. Animate the piece on its own, then drop it onto the host timeline.

Use this to:

  • Build a hero from smaller animations
  • Reuse a finished project without copying keys
  • Time when the nested piece plays on the host

The host keeps a link to the other project. It doesn’t paste a second copy of the file. Export combines both into one animation.

Add a composition

  1. Keep the other project open in a tab, or saved.
  2. On the host, open Add layer → Composition.
  3. Pick a project from Open tabs or Saved projects.
  4. Drag the Project Bar start and end handles to set when it plays.

Outside that bar, the nested graphic is hidden. If the source is missing, the layer keeps its name and offers relink — import or pick a saved project.

Tip: Double-click does not open the nested project. Switch to its tab to edit the inner animation.

Move the wrapper

Expand the composition layer to key position, scale, rotation, opacity, ease, repeater, and link. There are no fill or stroke rows on the wrapper.

The canvas gizmo moves the whole composition, not the layers inside it. Inner motion keeps playing inside the bar. Wrapper keys run on the host timeline.

Script console and WebMCP

The same steps run in Edit → Scripting and through WebMCP. Agents run a script with pureanim_run_script or window.pureanim.run().

WebMCP tools:

  • pureanim_get_state
  • pureanim_list_commands
  • pureanim_run_script
  • pureanim_set_time
api.createCompositionLayer({ sourceProjectId, sourceDurationSec, label });
api.getComposition();
api.getComposition({ layer });
api.setCompositionRange({ layer, startPct, endPct });
api.setCompositionDuration({ layer, seconds });
api.resetCompositionDuration({ layer, sourceDurationSec });
api.deleteCompositionLayer({ layer });

deleteCompositionLayer removes the layer on the host, not the source project. Pass sourceDurationSec on create if you want the bar sized from the source length.

Full command reference: scripting.md. Agent loop: agents.md.