cinemabot
A constraint-aware, taste-driven camera agent.
cinemabot is a real-time camera controller that behaves like an autonomous cinematographer. It continuously evaluates possible viewpoints and drifts toward the most compelling framing under constraints — while allowing temporary user control.
Unlike traditional cameras that follow rules or optimize metrics, cinemabot expresses preference over possibility space.
What It Is
cinemabot is a perspective engine.
It does not:
- control the subject
- alter the world
- issue commands
It only decides:
"How should this moment be seen?"
Core Concepts
1. Camera as Agent
The camera is modeled as an independent agent with:
- its own state (position, orientation, velocity)
- its own goals (composition, visibility, majesty)
- its own constraints (occlusion, geometry, motion)
2. Pose, Not Action
Traditional agents choose actions.
cinemabot chooses poses.
A pose represents:
- where the camera is
- what it’s looking at
- how it frames the subject and environment
Each frame, cinemabot selects a preferred pose and moves toward it.
3. Preference, Not Optimization
cinemabot does not compute a global optimum.
Instead, it:
- generates candidate poses
- evaluates them using heuristics and constraints
- selects a preferred pose based on bias and context
This produces:
- variation
- style
- non-deterministic framing
4. Constraint Field (Machtspielraum)
cinemabot uses a constraint model derived from the Creature system:
- freedom → how many viewpoints are viable
- encumbrance → occlusion and spatial restriction
- anxiety → motion, instability, chaos
- reserve → how bold the camera can be
These values shape what the camera can and should do.
5. Elastic Control (User Override)
User input is always respected — temporarily.
- input immediately overrides camera motion
- override decays over time
- camera drifts back to its preferred framing
This creates:
consent without surrender
6. Drift (The Soul of the System)
cinemabot never snaps.
It:
- continuously moves toward a target pose
- blends between states
- preserves visual continuity
The result feels:
- intentional
- smooth
- alive
Architecture
CameraController
├── PoseGenerator → produces candidate camera poses
├── DomainBuilder → computes constraint field
├── Creature (Decision) → selects preferred pose
├── DriftEngine → moves camera over time
└── UserOverride → temporary input control
Relationship to Creature
cinemabot uses the Creature pattern as its thinking layer.
Mapping:
| Creature Concept | cinemabot Equivalent |
|---|---|
| Action | Camera Pose |
| Inventory | Pose Candidates |
| Machtspielraum | Camera Constraint Field |
| Strategy Bias | Cinematography Style |
| DecisionEngine | Pose Selection |
The Creature does not control movement — it expresses taste.
Behavior
At runtime, cinemabot operates as a loop:
- Sense the world (subject, motion, environment)
- Generate candidate poses
- Evaluate poses under constraints
- Select a preferred pose
- Blend with user input (if any)
- Drift toward target
Design Principles
- Perspective over control
- Preference over optimization
- Continuity over correctness
- Constraint-aware, not rule-bound
- Collaborative with user, not subordinate
Non-Goals
cinemabot is not:
- a physics-accurate camera simulator
- a film-grade cinematography system
- a deterministic or rule-based camera
- a replacement for manual control