We place 2nd on RoboSpatial-Home — zero-shot, no fine-tuning — by keeping two
open-weight models fixed and eliciting the spatial skills they already have.
A reasoner (Qwen3-VL-32B-Thinking) and a pointing specialist (RoboBrain2.5-8B-MT)
are combined through per-task inference choices — a reference-frame prompt,
decoding, a reasoning-trust parser, and a complementary two-model union.
The right setting is task-specific: the same knob that helps one task can hurt another
(greedy wins Configuration, sampling wins Compatibility). Every choice is grounded in what the
models reveal — in their reasoning traces and in how they fail.
The benchmark
Three spatial tasks
Configuration
directional yes/no
Does a directional relation hold? e.g. “Is the monitor behind the sofa?”
91.5%
Compatibility
fit yes/no
Does an object fit in a space? e.g. “Can the wok fit above the fridge?”
79.1%
Context
pointing · point-in-mask
Point at a described region (≤2 points). Correct if a point lands in the GT mask.
78.7%
Our goal
Don’t train the model — elicit what it already knows
A pretrained VLM already carries much of the ability these spatial tasks demand — the real question is how to elicit it.
Treating the model as fixed, we ask: what did it actually learn from pretraining, what tendencies and biases does it carry,
and how do we draw out the right behavior through prompting and inference-time choices alone? This report is that exploration.
We hope the analysis and recipe are complementary — a way to elicit more from other well-trained models,
and to decide where additional training would actually help.
Design space
Six axes we tune — no training, just choices
The whole recipe is choosing a setup along these axes — and the best choice
flips per task: the same knob that helps one task hurts another. So every choice is task-specific, backed by analysis.
① Model · which base model
Depending on their training data, models specialize in different spatial tasks. We pair a spatial reasoner (Qwen3-VL-Thinking) with a pointing specialist (RoboBrain2.5-8B-MT).
② Reasoning · Thinking vs Instruct checkpoint
Qwen3-VL ships as two separate checkpoints — Thinking emits <think> traces and avoids defaulting to a prior. Reasoning is asymmetric: it helps the reasoner (Qwen keeps it even for pointing) but derails RoboBrain’s pointing.
③ Decoding · greedy vs sampling
How token probabilities become an answer. Greedy always takes the single most-likely token — fast and deterministic; sampling draws from the distribution, exploring alternatives and recovering minority answers greedy skips (at some variance).
④ Frame prompt · none / ego / object / world
Naming a reference frame disciplines directional reasoning — but for size/fit it can’t supply reliable size or clearance, and forcing a full frame mapping only distracts.
⑤ Parser · trust reasoning vs final token
The final yes/no token can contradict the reasoning; trusting the reasoning’s conclusion recovers stray flips.
⑥ Union · single vs two-model
For pointing, union two models whose mistakes barely overlap — a question counts if either model’s point lands inside (≤2 points total). Complementary errors → far more coverage than either model alone.
Our recipe
The setup each task lands on
Micro = plain accuracy · Macro = balanced over Yes/No for VQA, mean over the 6 relations for pointing.
| Task | Approach · no training | Micro | Macro |
| Configuration · relational | Qwen3-VL-32B-Thinking · object-frame prompt · greedy · reasoning · parser | 91.53 | 91.9 |
| Compatibility · fit | Qwen3-VL-32B-Thinking · no-frame · sampling · reasoning · parser | 79.05 | 74.1 |
| Context · pointing | RoboBrain2.5-8B-MT (greedy, no reasoning) ⊕ Qwen (sampling, object, reasoning) → 2-point union | 78.69 | 72.3 |
| Overall | zero-shot · no training | 83.09 → 2nd 🥈 | 79.4 |
Results
Leaderboard — ahead of every published baseline
| Model |
Config (micro / macro) |
Compat (micro / macro) |
Context (micro / macro) |
Overall |
| Ours — Qwen3-VL-32B-Thinking ⊕ RoboBrain2.5-8B-MT · union recipe |
91.5 / 91.9 |
79.1 / 74.1 |
78.7 / 72.3 |
83.1 |
| RoboBrain2.5-8B-MT · pointing specialist, alone | 89.8 / 88.1 | 59.0 / 64.3 | 66.4 / 61.0 | 71.7 |
| Qwen3-VL-32B-Thinking · reasoner, alone | 84.8 / 86.3 | 68.6 / 59.0 | 59.8 / 55.1 | 71.1 |
| RoboRefer-8B-SFT | 84.8 / 82.0 | 30.5 / 44.8 | 61.5 / 58.7 | 58.9 |
| RoboPoint-13B | 71.2 / 65.0 | 71.4 / 54.1 | 27.9 / 26.8 | 56.8 |
| LLaVA-NeXT | 71.2 / 64.2 | 70.5 / 44.7 | 0.0 / 0.0 | 47.2 |
| Qwen2-VL | 83.0 / 79.8 | 45.7 / 49.6 | 1.6 / 1.1 | 43.4 |
| SpatialVLM | 59.3 / 51.8 | 42.9 / 47.9 | 4.1 / 4.0 | 35.4 |
| Molmo-7B | 62.7 / 67.5 | 18.1 / 50.6 | 7.4 / 5.7 | 29.4 |
| Qwen3-VL 235B-A22B Thinking · published, not run by us | — | — | — | 73.9 |
| GPT-5 · published, API | — | — | — | 52.5 |
Micro (before the “/”) = plain accuracy; macro (after) = balanced accuracy over Yes/No for Configuration & Compatibility (guards against the 83% Yes-prior), and the mean over the 6 spatial relations (left / right / front / behind / above / below) for Context. Overall = mean of the three tasks; our macro overall is 79.4.
Every non-grey row is our own run through RoboSpatial-Eval, the challenge’s official evaluation. Neither base model alone clears ~72 — the per-task tuning and the two-model union add +11.5. General VLMs collapse on pointing (LLaVA-NeXT / Qwen2-VL ≈ 0) or on Compatibility (Molmo 18). Grey rows are published reference numbers for models we did not run.
Zero-shot, open-weight. Fill baseline column with leaderboard references.