Skip to content

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:

  1. Sense the world (subject, motion, environment)
  2. Generate candidate poses
  3. Evaluate poses under constraints
  4. Select a preferred pose
  5. Blend with user input (if any)
  6. 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