Classical structure-from-motion reconstruction proceeds iteratively, refining camera poses and scene geometry from a current estimate. This allows maps to easily expand without recomputing already computed views, or geometry estimates to improve as more observations are provided. Most geometric foundation models, however, predict entire geometry in a single forward pass or update a recurrent state as frames arrive sequentially, making this expansion and refinement non-trivial. We introduce Solv3R, a looped transformer that learns to continue solving multi-view geometry from its current state. Importantly, its update operator is independent of the iteration count, allowing previously refined and newly introduced views to be jointly updated regardless of how “solved” they are. We train the operator to preserve accurate reconstructions under continued iteration and correct inaccurate states, enabling refinement of fixed image collections and integration of new observations. Representations of solved views can also be cached once and reused as geometric context across iterations, enabling compact and efficient key-value caching. We analyze the solver dynamics and compare it with the state-of-the-art, demonstrating that a single learned solver supports offline reconstruction, incremental reconstruction, relocalization, and streaming without task-specific training or modules.
One model. One block. One solve.
A geometric foundation model makes one prediction for a fixed set of photos. Solv3R keeps solving. The panels below play by themselves and show what this changes.
One solver, whether views arrive all at once, in batches, or in any order.
The same learned update, regardless of when views arrive or how far they have been refined. Decoding the states gives each view's camera and depth at any call. The update does not depend on the call index, so new views can join while the others are being solved.

Solv3R stays accurate beyond its training horizon and stops when its state stabilizes. DéjàView degrades beyond its fixed schedule.
ETH3D, DTU, ScanNet++ and Tanks and Temples windows, the protocol of the paper's stability analysis.
New views join the ongoing solve and improve earlier camera estimates. DéjàView fails to jointly refine new and previously solved views.








New observations can improve earlier estimates, even after the initial solve has stabilized.
Because the update does not depend on the step, one call can refine frames at different stages. A video can then flow through a fixed window. Each call adds the newest frame and releases the oldest one, which has had its 16 calls. A step-conditioned solver keeps all frames at the same step, so it solves the window again for every new frame. Solv3R thus releases a frame at every call, 16× throughput at the same latency.
With KV caching, solved views can stay fixed as reusable context. Layer-wise models need one cache per layer, and DéjàView one per step. Solv3R reuses the same cache at every call.
Every scene below was solved by the same model from images alone, whether the photos came all at once, as a video, or in any order.
We thank Zan Gojcic, Haithem Turki, and Dmytro Mishkin for their valuable feedback on the paper.
@article{solv3r2026,
title = {Solv3R: 3D Looped Transformer as a Multi-view Solver},
author = {Kwak, Jeong-gi and Tagliasacchi, Andrea and Kagami, Sho and Ono, Yuki and Yi, Kwang Moo},
journal = {arXiv preprint},
year = {2026}
}