Packages

What each @motionactor/* package owns, and which ones an application actually installs.

The @motionactor/* line is published to GitHub Packages. Most applications install two packages: the runtime and one backend. The actor families themselves are not on this list — they are copied into your repo from the component library.

pnpm add @motionactor/core @motionactor/dom

Runtime

@motionactor/core

Actors, signals, scene compilation, deterministic frame resolution. Everything on the Reactivity and Runtime pages lives here.

@motionactor/primitives

Generic built-in actors — ClockActor, Camera2D, ComponentActor — and their helpers.

@motionactor/renderers

Renderer families and renderer systems: the dispatch layer a backend plugs into.

@motionactor/schema

Shared TypeScript schema and type contracts for scenes and actors.

Backends

A backend turns resolved actor state into pixels. The release target is DOM/React through Remotion; the others are retained while their longer-term ownership is undecided.

@motionactor/dom

DOM backend: actor renderers, the SceneRenderer wrapper, the DOM effect compositor, and defineSceneComposition.

@motionactor/react

React renderer surface. Currently re-exports the DOM backend, so importing either is equivalent.

@motionactor/three

Three.js renderer backend for 3D scenes.

@motionactor/pixi

Pixi backend — layer host plus the cross-renderer surface contract.

@motionactor/skia

Skia backend — layer host.

Integration and support

@motionactor/remotion

Remotion adapters: FrameSource, FrameGate, composition helpers. The only package that imports from remotion.

@motionactor/physics

Headless Rapier physics with record/replay primitives, so simulation stays deterministic under seeking.

@motionactor/contracts

Cross-repo integration seam: the frozen authoring-export allowlist and the serializable render-output manifest.

@motionactor/test-utils

Shared test utilities — synthetic actors and scene fixtures.

@motionactor/shared

Shared utility helpers used across the line.

Only one package touches Remotion

@motionactor/remotion is the sole importer of remotion. Everything else — including the core runtime — is renderer- and host-agnostic, which is what allows a scene to be resolved and asserted in a plain unit test.

Where other things live

This repository is the runtime. Two sibling repositories own the rest:

the runtime, backends, Remotion integration, the published package line

A runtime change a family needs lands and publishes here first; the library then bumps its pin. Because the library builds against published versions rather than linked sources, every library build re-tests the packaging seam.

On this page