Yuan Yin1, Elias Ramzi1, Marc Lafon1, Valentin Charraut2, Victor Bares2, Yihong Xu1,
Éloi Zablocki1, Alexandre Boulch1, Thibault Buhet2, Andrei Bursuc1, Matthieu Cord1,3
1valeo.ai, Paris, France · 2Valeo Brain, Créteil, France · 3Sorbonne Université, CNRS, ISIR, Paris, France
Driving policies trained by self-play directly from rendered camera views, with no privileged observation of the surroundings.
Project page · Paper · Videos
Code coming by September 2026.
One frame the policy learns from. Traffic lights, vehicles, pedestrians, parked cars and walls are all simulation primitives drawn by Pictura's CUDA rasterizer, inside the training loop.
Self-play in simulation produces robust driving policies at scale. Demonstrations of such behavior have been made using privileged vectorized observations such as exact poses and velocities, even for occluded agents. This assumes that perception is solved and introduces a representation gap with the partial observation of a deployed agent driving from the perspective view of egocentric cameras. A common fix, distilling the privileged policy into a camera-input student, leaves the student imitating decisions its own view cannot justify.
Instead, we establish perspective-view self-play as a practical training regime. We introduce Pictura1, a GPU-accelerated multi-agent driving simulator that renders each agent's egocentric view at every step, mitigating the representation gap at its source. Pictura sustains up to 500 K agent-steps/s (2 M images/s) on a single H100. Using Pictura, we train Alberti by self-play with plain PPO. It is the first large-scale driving self-play policy trained directly from perspective images, without privileged observations. Training spans 50 B agent steps for ~35 M km of driving. It approaches the driving performance of its privileged vectorized counterpart, and transfers zero-shot to Waymo Open Motion Dataset layouts re-rendered in Pictura, where it outperforms privileged vectorized agents.
| 50 B agent steps | one training run |
| 200 B camera frames | rendered inside the loop (four-camera rig) |
| 35 M km driven | ≈ 91 trips to the Moon |
| 1750 years of driving | the same distance in human terms, at 20 K km/year |
| 13 h on 32 H100s | at ~1.3 M steps/s |
Pictura's CUDA rasterizer is 1.4–4.1× faster than the best prior perspective renderer and gets faster on newer training hardware, keeping rendering to about 10% of a training step rather than the bottleneck. See the project page for the throughput, grounding and rollout results.
Every agent acts, is rendered for its neighbors, and learns from what it sees, all within one closed loop. Perception and control are learned jointly.
Pictura couples a vectorized simulator with a custom GPU rasterizer that renders the simulator state into each agent's egocentric perspective view. The observation feeds Alberti, the policy, and, together with the action and the reward, forms the rollout that PPO turns into a policy update.
@article{yin2026pictura,
title = {Pictura: Perspective-View Self-Play at Scale for Driving},
author = {Yin, Yuan and Ramzi, Elias and Lafon, Marc and Charraut, Valentin
and Bares, Victor and Xu, Yihong and Zablocki, {\'E}loi and Boulch, Alexandre
and Buhet, Thibault and Bursuc, Andrei and Cord, Matthieu},
year = {2026},
eprint = {2607.26005},
archivePrefix = {arXiv},
primaryClass = {cs.CV}
}Pictura is built on PufferDrive 2.0 (Cornelisse et al., 2025), the open-source driving simulator written with PufferLib, and to our knowledge the best public starting point for vectorized self-play RL in driving. From it Pictura inherits a fast C multi-agent driving core, a PyTorch PPO training loop, support for over a thousand agents per environment, and the hand-authored CARLA maps it distributes. The world design follows GigaFlow; real-world layouts come from the Waymo Open Motion Dataset.
Footnotes
-
Pictura is named after Leon Battista Alberti's De Pictura (1435), the treatise that first formalized the mathematical rules of linear perspective. ↩
