The one-paragraph version
S-Agent 2.0 is a system for answering hard 3D questions from images and video — for example, “when lying in bed, where is the parking lot relative to you?” — by letting a general-purpose coding assistant use 3D measuring tools. The authors argue that previous tool-using systems failed not because the tools measured wrong, but because the loop was left open: the model would get a correct number and then misread it, use the wrong reference direction, or ignore it and just eyeball the pictures. S-Agent 2.0 closes that loop with a simple command-line toolkit plus a persistent memory. The toolkit builds one shared 3D scene, remembers every object by name, and answers every measurement already translated into plain words like “3.67 meters in front, 3.15 meters to the right — overall front-right.” With no extra training, this setup lifts a 27-billion-parameter open model and a stronger closed model well above both single-pass models and the specialized spatial agent SpatialClaw on five benchmarks.
The problem they're solving, and why it matters
Spatial reasoning, here meaning the ability to work out where things are in three-dimensional space, how they relate, and how they move, is essential for any system that has to act in the physical world. A chatbot can guess from one picture, but questions like “if I stand by the projector facing the sink, is the clock to my left, right, or back?” or “in which direction is the dog walking across these two frames?” require combining evidence across views and over time.
Recent agentic VLMs — where VLM means vision-language model, a model that takes images plus text and produces text — improved this by letting the model call 3D perception tools during reasoning instead of answering in one shot. S-Agent and SpatialClaw are examples. But the paper diagnoses a remaining gap between model and tools:
First, misreading: the tool returns the right position, but the model flips left and right, mixes up which way is forward, or applies a correct vector in the wrong coordinate frame. The paper shows cases where SpatialClaw correctly computes that a projection is positive to the right, then convinces itself that right should be calculated the other way and answers left.
Second, non-use: the measurement sits in the workspace while the final answer is made from a fresh look at the pictures, or a correct reading is discarded for an unrelated reason. For example, the tools correctly show the camera moved backward, but a second opinion from a picture-describer says “road markings get bigger so it must be forward,” and the model follows the pictures.
In other words, acquisition — getting the measurement — was rarely the failure. Remembering it until answer time and interpreting it in the terms the question uses were.
The key idea, in plain words
Use a stock coding agent as the brain, and put all the cleverness into the tool interface so that every measurement is acquired, remembered, and interpreted.
A general coding agent, meaning harnesses like OpenHands, Codex, or Claude Code that were originally built for software engineering with a shell, files, code execution, and long tool loops, already has two useful habits. Viewing an image is just opening a file in the same conversation as tool replies, so what the model sees itself and what the tools measure interleave naturally. And inspecting an output and revising is a reflex: view, correct, rerun.
S-Agent 2.0 keeps that harness unchanged and adds perception as ordinary shell commands. The design principle is called closing the evidence loop:
Acquire together: what the tools measure and what the model itself recognizes or imagines — like “a person lying in bed with head at the headboard” or “an observer standing by the projector” — enter the same geometric scene.
Remember without effort: everything measured persists in a scene memory outside the model’s chat transcript, queryable later just by name like “clock” or “observer.”
Interpret on arrival: no bare arrays. Every reply comes back with numbers plus units plus a one-sentence conclusion in ordinary spatial words, naming who the measurement is relative to and in which frame.
How it actually works, step by step
Imagine the office example from the paper: you are standing somewhere facing a table corner with chairs around you, and you must find the TV and leave. The agent follows the same taught workflow every time: decide what evidence is needed, acquire it through the toolkit, check the toolkit outputs visually, answer from the readings.
First, build the scene. The recon command takes all frames and runs frozen off-the-shelf models — Depth Anything 3 for metric depth, a model called pi-three for motion masks, GeoCalib for which way is down due to gravity, and SAM 3 for promptable segmentation — and fuses them into one metric, gravity-aligned point cloud. A point cloud here just means a large set of 3D points representing surfaces, in real meter scale, with up truly up. Every camera position is registered as camera:f0, camera:f1, and so on.
Second, bind the references. The segment command takes the model’s own words as a prompt, for example --prompt "red chair" or --prompt "table", and finds those masks in the named frames, lifts them onto the point cloud, and registers them as named instances with a position, an extent (which points belong to it), and optionally a 6-degree-of-freedom pose (position plus orientation).
Crucially, the model can also write its own perception. With add_instance, it can create something that exists only in the question — for instance, --name observer --at-map f28:650,340 --facing table_corner meaning “a person standing at that spot on the top-down map, facing the table corner,” or “a lying person with head at headboard, facing the ceiling point.” The toolkit then treats that imagined observer like any real object. With drop, the model can delete a tool mistake, like a mask on a reflection, after looking at the overlay image. Both kinds of perception land on one geometric footing.
All of this lives in the scene memory, conceptually frames plus point cloud plus a registry of named instances. You do not need to carry numbers in chat; you just remember names.
Third, query the evidence. Readout commands compute in closed form from stored geometry — meaning directly looked up and calculated from the memory, not guessed. Examples are distance --a observer --b tv, side --observer observer --of clock which returns forward, right, and up offsets plus an eight-way word like front-right or rear-right, elevation, depth, motion --of camera:f0 --of camera:f1, compass for anchoring north and asking cardinal directions, bev for a top-down map with cameras as wedges and observers as diamonds with facing arrows, and list_instance.
Each reply has the same anatomy: typed numbers in meters, a units note about scale, and a conclusion sentence. A real example quoted in the paper: “desk is 1.04 m in FRONT of sitting_person, 1.03 m to its LEFT and 0.21 m ABOVE it — overall to its FRONT-LEFT.” The full masks and maps stay on disk for the agent to open with its normal file viewer and cross-check before trusting the registry.
The loop repeats: the model reads each interpreted reply back into its plan for what evidence is still missing and into the arguments of the next call, until it writes the answer.
What they showed — results, honestly, with limitations
The evaluation covers five multi-view and video benchmarks. MMSI-Bench tests positional relations, geometric attributes, motion, and multi-step reasoning across images. MindCube tests mental models from sparse views. SPAR-Bench spans basic metric perception to multi-view relations. ReVSI tests 3D reasoning from video where no single frame suffices. MMSI-Video-Bench extends to long videos and route planning.
On MMSI-Bench with the primary open backbone, Qwen3.8-27B, S-Agent 2.0 reaches 66.5% average accuracy versus 62.6% for SpatialClaw on the same backbone and same perception backends, and versus 50.4% for the backbone alone and 52.6% for the same coding agent without tools. With the stronger Gemini-3.8-Flash backbone it reaches 74.1% versus 67.0% for SpatialClaw and 60.0% for the backbone alone, the highest average in their table except GPT-6 still leads on a few subtypes like region-to-region relations and camera motion.
On ReVSI the gap is larger: 82.3% versus 74.5% for SpatialClaw on Qwen3.8-27B, and 90.5% versus 79.7% on Gemini-3.8-Flash, with the largest wins on relative direction and route planning. The one subtype where S-Agent 2.0 trails SpatialClaw on both backbones is absolute distance, which is also where GPT-6 scores relatively low — the paper notes this but does not fully explain why.
The tool gain persists as the backbone gets stronger, which the authors highlight: on ReVSI SpatialClaw’s gain over no-tools shrinks from +13.2 points on Qwen to +2.7 on Gemini, while theirs stays at +9.6. On MMSI their gain is +13.9 on Qwen and +11.2 on Gemini. They also show the same workspace and toolkit work under OpenHands, Codex, and Claude Code with similar scores.
Ablations that remove one piece at a time support the diagnosis. Removing the interpreted readout costs least, about 1.2-1.3 points. Removing scene memory costs more, 2.5-3.5 points, because readings carried only in chat get lost. Removing the model-perception interface — no adding or dropping instances — costs most, 5.9-8.8 points. Transplanting only their readouts into SpatialClaw helps slightly but does not reach S-Agent 2.0, suggesting memory and joint perception matter too.
Limitations, stated plainly: what remains is grounding the question into a measurement. Two failure examples are a wrongly imagined viewpoint — placing an observer on a wall facing the camera instead of walking down to the stairs — and a wrong-sense quantity — measuring elevation above the floor when the question asked for the object’s own height. The paper is also unclear on compute cost and number of tool steps per question in the main claims, though appendix usage tables show building the scene with reconstruction, segmentation, and top-down maps happens in over 90% of episodes. All backbones and baselines are 2026-era models this reader cannot independently verify.
Why this might matter to me
For spatial reasoning in LLMs and VLMs, this is evidence that interface wording matters as much as tool power: returning “front-right in the observer’s gravity-aligned frame, copy this, do not re-derive” prevents sign flips and frame mix-ups that even strong models make with raw vectors.
For world models, the scene memory is a minimal explicit world model — a persistent metric point cloud plus a named object registry with poses that both perception and imagination can write to. That separation of durable state in the environment versus transient reasoning in context is a pattern you could reuse beyond question answering.
For text-to-CAD and parametric geometry, the add_instance idea is suggestive: let language decide what to name and roughly where — “table corner at this pixel,” “observer facing that object” — while a geometric backend lifts it to exact 3D and keeps it editable and queryable by name. That division by competence, semantics to the model and measurement to tools, maps closely to sketch-then-constrain CAD workflows.
For 3D generation and scene representation, the lesson is to keep every reading grounded in stored geometry and to return language surfaces alongside numbers. A top-down map, segmentation overlays, and a conclusion sentence make the representation inspectable and revisable by both model and human, rather than a hidden vector the model must trust blindly.
Terms worth knowing
- Spatial reasoning: working out positions, directions, distances, sizes, and motions in 3D, especially across multiple views or video frames.
- VLM (vision-language model): a model that takes images or video plus text as input and produces text, for example describing a relation or choosing an answer option.
- Agentic VLM / coding agent: a VLM wrapped in a loop that can act — run shell commands, write code, open files, call tools — observe results, and continue for many steps. OpenHands, Codex, and Claude Code are harnesses for this.
- Evidence loop: the paper’s term for acquire a measurement, remember it while gathering the rest, and interpret it into understanding. A loop is closed only when the answer is actually drawn from the readings.
- Scene memory: the persistent store kept by the toolkit: raw frames, fused point cloud, and a registry mapping names like “clock” or “observer” to geometry.
- Point cloud (metric, gravity-aligned): a set of 3D points reconstructing surfaces, scaled in meters, rotated so up is truly up.
- Pose (6-DoF): an object’s position plus orientation in space, six numbers for three shifts and three rotations.
- Segmentation (promptable): delineating which pixels belong to which object given a text prompt like “bed” or “dog.” SAM 3 is the tool used here.
- Readout: a query command like
side,distance,motion,compass, orelevationthat computes a relation from the scene memory and returns both numbers and a plain-language conclusion. - Tool perception vs. model perception: tool perception is what dedicated vision models measure; model perception is what the language model itself contributes by adding an imagined observer or deleting a wrong mask, both registered in the same scene.