Entities & the Data Model

How Ordinary Animator organises your production data -- accounts, projects, the entity hierarchy, and properties.

Everything in Ordinary Animator is an entity. Entities have a type, an ID, and a set of properties. Understanding the entity model makes the navigation, the AI Assistant, and the data structure coherent.

Accounts and projects

You sign in with a Google account. Your account identifies you, but it doesn't hold content directly -- all content lives inside projects.

A project is the top-level container for a series. Every episode, character, location, recipe, and idea belongs to a project. Projects have an owner -- the account that created them. Ownership cannot be transferred.

Projects can be shared with other users. A shared user gets either read-only (Reviewer) or read-write (Contributor) access. The owner retains full control. See Sharing for how the invite flow works.

When you open Ordinary Animator, you see your own projects plus any projects shared with you.

The entity hierarchy

Project is the root entity. All other entities are descendants:

project
+-- episode
|   +-- scene
|       +-- shot
+-- character
+-- location
+-- prop
+-- agent
+-- recipe
|   +-- step
+-- idea
+-- swimlane
|   +-- arc

Narrative hierarchy -- the story structure flows through project -> episode -> scene -> shot. Each level is contained by the one above.

Asset entities -- character, location, and prop attach directly to the project and are reused across any number of episodes.

Planning entities -- idea, swimlane, and arc support story planning. Arcs live within swimlanes.

Configuration entities -- agent and recipe are project-level. Steps belong to a recipe.

Addressing entities

Behind the scenes, every entity has a hierarchical path (/project/{id}/character/{id}, and so on). You never need these in the app -- you navigate by menus. If you are driving Ordinary Animator from an AI tool such as Claude Code, the full path scheme is on the MCP Server page.

Entity properties

Every entity has core properties and metadata properties. Both are flat -- all values are simple types: strings, integers, or booleans. There are no nested objects within a property value.

Core properties are the primary identity fields present on every entity of that type:

  • name -- display name (string)
  • description -- short summary (string)
  • notes -- freeform notes (string)

Metadata properties are additional fields specific to the entity's role in production. They are organised into sections by production phase:

Section What it holds
Story Narrative details -- objective, background, relationships, world-building context
Appearance / Cinematic Look and framing -- physical description, style, lighting, composition notes
Performance Acting and audio notes -- tone, pacing, delivery
Editorial Post-production notes

All of these fields are strings. The platform doesn't interpret them structurally -- they provide context to you and to the AI Assistant.

Looks

A look is an alternate visual version of a character, location, or prop -- a different appearance of the same underlying thing. The entity is still the same entity; the look only changes how it presents on screen.

Use looks for:

  • Characters -- costume changes, state variations (normal vs injured), age
  • Locations -- time of day, weather or season, before vs after a story event
  • Props -- material or condition variants

How inheritance works

A look is a child of a base entity, and its properties split by kind:

  • Story properties are shared. A look inherits every Story property from its base and shows them read-only -- who a character is, a location's significance, a prop's backstory don't change just because the appearance does. Edit them on the base and every look sees the change.
  • Visual properties can be overridden. The Appearance properties (Cinematic, for props) are independent on each look. A look starts from the base's values and you override only what differs -- the evening outfit's colours, the night-time lighting -- without touching the base or the other looks.

This keeps a single source of truth for the story while letting each look carry just its visual differences. In the asset list a look appears as a child entry under its base, and you switch between a base and its looks from the Looks picker in the page header.

Entity IDs

Entity IDs use only lowercase letters, digits, and hyphens (1-50 characters). You supply the ID when creating an entity. IDs cannot be changed after creation and appear in the entity's path, so choose something meaningful and stable.