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 agent, 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.
All entity types and their paths
The AI agent and entity API address every entity by a hierarchical path. project (bare) lists all your projects; all other paths start with /:
| Entity | Path |
|---|---|
| All projects | project |
| Project | /project/{projectId} |
| Episode | /project/{projectId}/episode/{episodeId} |
| Scene | /project/{projectId}/episode/{episodeId}/scene/{sceneId} |
| Shot | /project/{projectId}/episode/{episodeId}/scene/{sceneId}/shot/{shotId} |
| Character | /project/{projectId}/character/{characterId} |
| Location | /project/{projectId}/location/{locationId} |
| Prop | /project/{projectId}/prop/{propId} |
| Agent | /project/{projectId}/agent/{agentId} |
| Recipe | /project/{projectId}/recipe/{recipeId} |
| Step | /project/{projectId}/recipe/{recipeId}/step/{stepId} |
| Idea | /project/{projectId}/idea/{ideaId} |
| Swimlane | /project/{projectId}/swimlane/{swimlaneId} |
| Arc | /project/{projectId}/swimlane/{swimlaneId}/arc/{arcId} |
The AI agent uses these paths to navigate ("go to character kira"), fetch data, and create entities.
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 |
| Visual / Cinematic | Appearance 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 agent.
Variants
Characters, locations, and props support variants — alternate versions of a base entity. A variant inherits all Story properties from its base (read-only) and can independently override Visual or Cinematic properties.
Use variants for costume changes, time-of-day lighting conditions, or story-state differences (before vs after an event).
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.