FilmFlow: Agentic System for 3D Virtual Film Cinematography
Organizations: Cornell University · Shanghai Jiao Tong University · University of California, Los Angeles · Shanghai Artificial Intelligence Laboratory
Abstract
Complex camera motion is central to visual storytelling, yet translating cinematographic intent into controllable, executable camera trajectories remains challenging. We introduce FilmFlow, an agentic framework that converts natural-language instructions or reference videos into explicit camera trajectories for dynamic 3D environments. To generate these trajectories, a Director agent constructs executable camera plans by composing high-level motions from concurrent atomic operations that jointly control translation, rotation, and framing. The Director is supported by three specialized agents: an Interpreter that extracts scene-grounded cinematographic intent, a Scout that selects initial viewpoints, and a Critic that evaluates rendered results and provides visual feedback for iterative plan refinement. We also introduce CinemaBench, comprising 150 Blender scenes from self-created and licensed sources, with five camera instructions per scene for 750 text-directed tasks and 60 reference videos associated with a subset of scenes. CinemaBench supports evaluation of both text-directed camera generation and video reference-directed camera generation. Across a diverse set of evaluated baselines, FilmFlow achieves the strongest benchmark performance and the highest user preference, demonstrating effective spatial reasoning, temporal coordination, and visual composition for executable 3D cinematography.
Figures & tables
| Function | Operations |
|---|---|
| Position | Dolly In, Dolly Out, Truck, Pedestal Up, Pedestal Down, Orbit, Path Follow, Position Follow, Height Follow, Distance Follow |
| Orientation | Pan, Tilt, Aim Follow, Screen Position Lock, Roll, Horizon Lock |
| Framing | Zoom, Frame Subject |
| Focus | Focus Pull, Focus Follow |
| Perturbation | Shake / Handheld |
| Hold | Static Shot |
| T2V | V2V | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Method | Align. | Quality | Motion | Probe | Method | Align. | Quality | Motion | Probe |
| LAMP | -1.747 | 41.54 | 0.209 | 0.564 | Zero-shot VLM | -1.417 | 35.86 | 0.041 | 0.502 |
| GenDoP | -1.768 | 39.63 | 0.257 | 0.597 | LingBot-Map | -1.472 | 35.55 | 0.278 | 0.521 |
| CinemaTraj | -1.788 | 44.65 | -0.068 | 0.618 | VGGT- | -1.491 | 34.88 | 0.176 | 0.533 |
| FilmFlow | -1.461 | 47.60 | 0.555 | 0.829 | FilmFlow | -1.224 | 41.77 | 0.289 | 0.750 |
| T2V | V2V | |||||||
|---|---|---|---|---|---|---|---|---|
| Variant | Align. | Quality | Motion | Probe | Align. | Quality | Motion | Probe |
| w/o Scout | -1.542 | 46.11 | 0.387 | 0.770 | -1.344 | 40.77 | 0.243 | 0.673 |
| Sequential-only Operations | -1.547 | 45.06 | 0.536 | 0.775 | -1.314 | 40.78 | 0.278 | 0.717 |
| w/o Critic | -1.499 | 45.25 | 0.430 | 0.770 | -1.288 | 37.21 | 0.191 | 0.716 |
| w/o ICL | -1.474 | 46.12 | 0.447 | 0.724 | -1.296 | 39.04 | 0.172 | 0.766 |
| Full FilmFlow | -1.461 | 47.60 | 0.555 | 0.829 | -1.224 | 41.77 | 0.289 | 0.750 |
| T2V | V2V | ||||
|---|---|---|---|---|---|
| Method | Pass Rate | Top-1 Rate | Method | Pass Rate | Top-1 Rate |
| LAMP | 42.1% | 12.1% | Zero-shot VLM | 63.0% | 2.3% |
| GenDoP | 46.2% | 5.7% | LingBot-Map | 77.3% | 17.4% |
| CinemaTraj | 63.8% | 21.2% | VGGT- | 73.3% | 17.1% |
| FilmFlow | 84.3% | 61.0% | FilmFlow | 82.1% | 63.2% |
| T2V | V2V | ||||||
|---|---|---|---|---|---|---|---|
| Method | Align. | Quality | Motion | Method | Align. | Quality | Motion |
| LAMP | 2.6 | 2.9 | 2.7 | Zero-shot VLM | 2.5 | 2.8 | 2.7 |
| GenDoP | 2.8 | 3.0 | 2.9 | LingBot-Map | 3.2 | 3.5 | 3.3 |
| CinemaTraj | 3.5 | 3.7 | 3.6 | VGGT- | 3.4 | 3.6 | 3.5 |
| FilmFlow | 4.2 | 4.4 | 4.3 | FilmFlow | 4.0 | 4.3 | 4.0 |
Appendix figures & tables9 assets
Supplementary material from the paper’s appendix.
Appendix
| Operation | Effect | Parameters (defaults) |
|---|---|---|
| Dolly In | Move toward the starting target anchor. | distance_scale=0.72 ( ). |
| Dolly Out | Move away from the starting target anchor. | distance_scale=1.35 ( ). |
| Truck | Translate along the initial camera-right axis. | distance_scale=0.75 ; direction=right . |
| Pedestal Up | Translate along world . | height_scale=0.65 . |
| Pedestal Down | Translate along world . | height_scale=-0.55 . |
| Orbit | Circle a target in the world plane. | orbit_angle_deg=28 ; direction=right ; radius_scale=1.0 . |
| Dev | Test | Total | |
| Scenes (dynamic / static) | 27 / 23 | 46 / 54 | 73 / 77 |
| T2V tasks (easy / medium / hard) | 50 / 100 / 100 | 100 / 200 / 200 | 150 / 300 / 300 |
| V2V tasks | 20 | 40 | 60 |
| Human-written instructions | 20 | 30 | 50 |