Camera control: a move without a camera
Why a generated dolly move is a painted impression, not a camera travelling through a space.
Think of a scene painter asked to produce twenty-four pictures a second of the same room as if a camera were tracking left. A good painter, having studied thousands of tracking shots, will shift the foreground faster than the background and slide the window frame across the wall convincingly. But there is no room. There is no camera, no nodal point, no 3D geometry being sampled. Each picture is painted from the memory of what tracking shots look like. If the painter forgets that the chair leg was occluding the skirting board in picture nine, nothing in the process catches the error. That is generative camera control.
Three mechanisms give you a handle on it. Prompt-level camera language is the shallowest: Veo's own prompt guide puts shot framing and camera motion first among its recommended prompt components, so terms like medium shot, low-angle view and pan across the scene do real work. Trajectory conditioning is the deeper one. CameraCtrl trains a plug-and-play camera pose control module on top of a frozen video diffusion model, feeding a parameterised camera trajectory, and its authors found that training data with diverse camera distributions improves both control and generalisation. MotionCtrl separates the two kinds of motion explicitly, driving camera motion from poses and trajectories and object motion separately, with conditions designed to be appearance-free so they change movement without reshaping objects. Third, learned motion priors: the model has absorbed which moves go with which framings, so asking for a handheld push on a two-shot pulls a whole correlated bundle of behaviour.
OpenAI's Sora report is candid about the status of this. It describes 3D consistency as an emergent property arriving "without any explicit inductive biases for 3D, objects, etc.", and says long-range coherence and object permanence hold "often, though not always". Parallax is a correlation the model learned, not a constraint it enforces.
Treat camera moves as art direction, not as a shot list you can pre-vis and hand over. Simple single-axis moves survive; a move whose point is a specific parallax relationship or a precise reveal timed to a line will not hold, so plan those as camera plates, 3D, or a static generated frame moved in post. When continuity between shots depends on a matched eyeline or a repeated crane, budget for selection passes rather than for a re-shoot, because there is no rig to reset.
What people get wrong
Each of these is a belief worth dropping, followed by what is actually happening.
- the model builds a 3D scene and renders a camera through it. It predicts pixels across space and time; the Sora report presents 3D consistency as an emergent behaviour of scale, not as an explicit geometric stage in the pipeline.
- naming a focal length in the prompt sets a focal length. It biases the image toward the compression, distortion and depth cues typical of images captioned that way, which is why 24mm and 85mm read differently even though no lens exists.
- trajectory conditioning guarantees the move you specified. Camera pose modules such as CameraCtrl markedly improve fidelity to a trajectory but sit on top of a frozen generator, so the move is followed approximately and degrades on trajectories unlike the training data.
- camera motion and subject motion are one control. MotionCtrl exists precisely because the two were conflated, and separating them was the contribution; in prompt-only workflows they still bleed into each other.
- a longer generation gives a longer move. Clip length is set by the model's token budget, and stitching two generations to extend a move gives you two similar moves, not one continuous one.
Terms this introduces
- Camera trajectory conditioning
- Supplying a sequence of camera poses as an explicit input so the generated clip approximates a specified move.
- Motion prior
- The statistical tendency a model has learned about how images move, which fills in everything the prompt and conditioning do not specify.
- Parallax
- The differential apparent motion of near and far objects under a moving viewpoint, which a generative model imitates rather than computes.
- Appearance-free condition
- A control signal such as a camera pose or trajectory chosen so it alters motion without changing the shape or look of objects.
Where this shows up in the directory
Models whose own documentation names this. It is evidence the vendor considers it relevant, not a judgement that the model is good or bad at it.
Whose job this changes
Craft roles whose page discusses this directly. Follow one to see what the person actually decides.