SpatialThinker: Reinforcing 3D Reasoning in Multimodal LLMs via Spatial Rewards

Hunar Batra, Haoqin Tu, Hardy Chen, Yuanze Lin, Cihang Xie +1 more
11/10/2025
cs.CVcs.AIcs.CL

No official code found. Best implementation: hunarbatra/SpatialThinker (40 stars, last commit 2026-01-28).

Abstract

Multimodal large language models (MLLMs) have achieved remarkable progress in vision-language tasks, but they continue to struggle with spatial understanding. Existing spatial MLLMs often rely on explicit 3D inputs or architecture-specific modifications, and remain constrained by large-scale datasets or sparse supervision. To address these limitations, we introduce SpatialThinker, a 3D-aware MLLM trained with RL to integrate structured spatial grounding with multi-step reasoning. The model simulates human-like spatial perception by constructing a scene graph of task-relevant objects and spatial relations, and reasoning towards an answer via dense spatial rewards. SpatialThinker consists of two key contributions: (1) a data synthesis pipeline that generates STVQA-7K, a high-quality spatial VQA dataset, and (2) online RL with a multi-objective dense spatial reward enforcing spatial grounding. SpatialThinker-7B outperforms supervised fine-tuning and the sparse RL baseline on spatial understanding and real-world VQA benchmarks, nearly doubling the base-model gain compared to sparse RL, and surpassing GPT-4o. These results showcase the effectiveness of combining spatial supervision with reward-aligned reasoning in enabling robust 3D spatial understanding with limited data and advancing MLLMs towards human-level visual reasoning.

View on arXivView PDF

Code Implementations(1)

SpatialThinker: Reinforcing 3D Reasoning in Multimodal LLMs via Spatial Rewards

401Shell, PythonMar 20, 20258 months ago

Cite this paper

@article{batra2025spatialthinker,
  title  = {SpatialThinker: Reinforcing 3D Reasoning in Multimodal LLMs via Spatial Rewards},
  author = {Hunar Batra and Haoqin Tu and Hardy Chen and Yuanze Lin and Cihang Xie and Ronald Clark},
  year   = {2025},
  eprint = {2511.07403},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2511.07403v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2511.07403.svg)](https://codeofpaper.com/paper/2511.07403)

Discussion