CinemaTraj: Composing Atomic Camera Trajectories for 3D Scenes with LLM Agents
Abstract
Automatically generating cinematically expressive camera trajectories through 3D scenes from natural language descriptions is a challenging task of high practical value, with applications ranging from real-estate advertising to virtual tour creation. Existing methods either lack true 3D spatial awareness by relying on 2D image priors, or treat trajectory generation as a geometric path planning problem divorced from cinematographic semantics. We present CinemaTraj, a framework that reframes camera trajectory planning as a language-grounded spatial reasoning problem. Given a set of RGB-D images and a user prompt, CinemaTraj equips an LLM agent with a structured 3D scene graph: the agent decomposes the prompt into a sequence of atomic cinematographic movements (dolly, orbit, crane, pan, tilt, zoom, arc). Each movement is instantiated via a novel parametric trajectory representation that is both cinematographically expressive and optimizable for collision avoidance. The scene graph acts as a structured spatial prior, grounding the agent's reasoning in accurate geometric and semantic knowledge of the environment. CinemaTraj further generates synchronized voiceover and subtitles aligned with camera motion, producing narrated cinematic video outputs. We evaluate CinemaTraj on real-world ScanNet++ environments, and show that it produces prompt-faithful, collision-free trajectories with high cinematographic quality, outperforming existing approaches on prompt alignment, trajectory quality, and safety metrics.
Cite
@article{arxiv.2607.26910,
title = {CinemaTraj: Composing Atomic Camera Trajectories for 3D Scenes with LLM Agents},
author = {Qianru Li and Xuyang Chen and Erkin Türköz and Lu Liu and Xuqin Wang and Liqiu Meng and Tao Wu and Yanfeng Zhang},
journal= {arXiv preprint arXiv:2607.26910},
year = {2026}
}
Comments
17 pages, including 8-page main paper, references, and supplementary material; project page: https://cinematraj.github.io/