# MotionActor > A generator-driven actor runtime for deterministic, frame-based video. ## Docs - [Introduction](https://docs-blume.motion.actor/docs): A generator-driven actor runtime for deterministic, frame-based video. Author motion once as code; resolve any frame as a pure function. ## Start here - [Getting started](https://docs-blume.motion.actor/docs/getting-started): Install the packages, compile a scene, resolve a frame, and render it with Remotion. - [How it works](https://docs-blume.motion.actor/docs/mental-model): Compile records authored intent once. Resolution reconstructs actor state for any frame from that record. Nothing else may influence a frame. ## Reference ### Reactivity - [Reactivity](https://docs-blume.motion.actor/docs/reactivity): Writable state, computed reads, host-published values and coordination are separate primitives. Picking the right one is most of actor design. #### State - [Signals](https://docs-blume.motion.actor/docs/reactivity/signal): One writable value, and the five verbs that change it — set, tween, play, animate and transition. - [Reactive signals](https://docs-blume.motion.actor/docs/reactivity/reactive-signal): One nested writable state bag whose individual leaves can be animated independently. - [Groups](https://docs-blume.motion.actor/docs/reactivity/group): Namespaces related fields into one actor-facing surface. #### Computed values - [Derived values](https://docs-blume.motion.actor/docs/reactivity/derived): Read-only values computed from other actor reads, evaluated at resolution time. - [Overlay and offset signals](https://docs-blume.motion.actor/docs/reactivity/overlay-signal): Layer temporary or additive motion over a base value without touching the base. #### Inputs and coordination - [Channels](https://docs-blume.motion.actor/docs/reactivity/channel): The host-published live-value primitive. Something outside the timeline owns the value and publishes it; resolution reads the publication. - [Watch](https://docs-blume.motion.actor/docs/reactivity/watch): Actor-local reactive response — run code when a local read changes. - [Events and subscribe](https://docs-blume.motion.actor/docs/reactivity/events-and-subscribe): Typed semantic coordination between actors, without reaching through to write another actor's state. ### Runtime - [Runtime](https://docs-blume.motion.actor/docs/runtime): The scene APIs — authoring orchestration, frame resolution, the hosting model, effects and transitions. #### Scenes - [Scene orchestration](https://docs-blume.motion.actor/docs/runtime/scene-orchestration): Recording authored intent — spawning actors, consuming time, and composing concurrent work. - [Compiled scenes](https://docs-blume.motion.actor/docs/runtime/compiled-scene): Resolving frames, reading typed exports, looking up actors, memoizing, and reflecting for editors. - [Determinism](https://docs-blume.motion.actor/docs/runtime/determinism): What at(frame) may depend on, what breaks it, and how host-observed values enter without breaking it. #### Structure - [Structure and hosting](https://docs-blume.motion.actor/docs/runtime/structure-and-hosting): One hosting model — slots are named positions, child declarations are their occupants. - [Slots](https://docs-blume.motion.actor/docs/runtime/slots): Named positions where children can be placed. - [Children](https://docs-blume.motion.actor/docs/runtime/children): Declared occupants of slots, including owner-aware factories for live parent-to-child bindings. #### Effects and transitions - [Effects](https://docs-blume.motion.actor/docs/runtime/effects): Typed timeline records the renderer reads as overlays, with normalized progress resolved per frame. ### Actors - [Actors](https://docs-blume.motion.actor/docs/actors): The two base classes, the built-in primitive actors, and the decorator that makes a command editor-facing. #### Base classes - [Actor](https://docs-blume.motion.actor/docs/actors/actor): The root runtime unit — state, commands, events, lifecycle hooks, and orchestration helpers. - [LayoutActor](https://docs-blume.motion.actor/docs/actors/layout-actor): The default base class for renderable actors — canonical layout, transform, appearance and item groups, plus measured geometry. #### Built-in actors - [ClockActor](https://docs-blume.motion.actor/docs/actors/clock-actor): The built-in timer actor from @motionactor/primitives — elapsed time, stopwatch, pause and resume. - [Camera2D](https://docs-blume.motion.actor/docs/actors/camera2d): The built-in 2D scene camera from @motionactor/primitives — pan, zoom, rotation, focus and follow. - [ComponentActor](https://docs-blume.motion.actor/docs/actors/component-actor): The render-callback bridge from @motionactor/primitives, for drawing that does not warrant its own actor family. - [Audio and sound effects](https://docs-blume.motion.actor/docs/actors/audio): The audio family from @motionactor/media — Audio for long-form clips, AudioManager and AudioTrack for one-shot sound effects. #### Authoring - [@command](https://docs-blume.motion.actor/docs/actors/command): Marks a generator method as an editor-facing command, with labels, typed parameter metadata and duration defaults. ## Build ### Guides - [Guides](https://docs-blume.motion.actor/docs/guides): Task-shaped walkthroughs — authoring an actor, rendering a scene, and testing without a renderer. - [Creating actors](https://docs-blume.motion.actor/docs/guides/creating-actors): Where an actor belongs, how to lay out its state, what its render path must be, and the rules that keep it reusable. - [Rendering](https://docs-blume.motion.actor/docs/guides/rendering): Turning a compiled scene into pixels — SceneRenderer, defineSceneComposition, and the backend seam. - [Testing](https://docs-blume.motion.actor/docs/guides/testing): Compile a real scene, resolve frames, assert on resolved actors — and never hand-build a fixture. ### Examples - [Examples](https://docs-blume.motion.actor/docs/examples): Two worked examples — a minimal complete composition, and one real library actor exercising every core pattern. - [Remotion card](https://docs-blume.motion.actor/docs/examples/remotion-card): A complete composition in two files — slots, a declared child, a channel, derived state, scene exports and the Remotion seam. Typechecked and behavior-checked in CI. - [Desktop](https://docs-blume.motion.actor/docs/examples/desktop): One real library actor end to end — writable state, derived presentation, slot hosting, and generator commands. ## Ecosystem - [Packages](https://docs-blume.motion.actor/docs/packages): What each @motionactor/* package owns, and which ones an application actually installs. - [Component library](https://docs-blume.motion.actor/docs/component-library): The MotionActor actor families, distributed as a shadcn registry you install into your own repo. ## Agent skills - [motionactor](https://docs-blume.motion.actor/.well-known/agent-skills/motionactor/SKILL.md): Read the MotionActor docs instead of answering from memory. A generator-driven actor runtime for deterministic, frame-based video. Use when a task involves MotionActor: how it works, how to set it up or configure it, or its API. ## Agent resources - [llms-full.txt](https://docs-blume.motion.actor/llms-full.txt): The full Markdown of every page in one file. - [Page Markdown](https://docs-blume.motion.actor/index.md): Append `.md` to any page URL to fetch that page as raw Markdown. - [JSON API](https://docs-blume.motion.actor/api/docs/pages.json): Page index of the JSON docs API; each entry links the page's JSON and Markdown forms. Described by the OpenAPI document at https://docs-blume.motion.actor/openapi.json. - [MCP server](https://docs-blume.motion.actor/mcp): Streamable HTTP Model Context Protocol server with search_docs, get_page, list_pages, and get_navigation tools, plus every page as a resource. Discovery document: https://docs-blume.motion.actor/.well-known/mcp.json - [Agent skills](https://docs-blume.motion.actor/.well-known/agent-skills/index.json): Agent Skills discovery index of the skills this site publishes. - [API catalog](https://docs-blume.motion.actor/.well-known/api-catalog): RFC 9727 linkset of the APIs documented here. - [AI catalog](https://docs-blume.motion.actor/.well-known/ai-catalog.json): ARD manifest of the agent-facing resources on this site (MCP server, skills, APIs). - [agent-readability.json](https://docs-blume.motion.actor/agent-readability.json): Manifest of every agent-facing artifact on this site. - [Sitemap](https://docs-blume.motion.actor/sitemap.xml): Every indexable page URL with its last-modified date.