{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/arxiv-2601-13029","title":"Think3D: Thinking with Space for Spatial Reasoning","arxiv_id":"2601.13029","date":"2026-01-19","proceeding":null,"authors":["Zaibin Zhang","Yuhan Wu","Lianjie Jia","Yifan Wang","Zhongbo Zhang","Yijiang Li","Binghao Ran","Fuxi Zhang","Zhuohan Sun","Yizhuang Peng","Zhenfei Yin","Lijun Wang","Huchuan Lu"],"abstract":"While Vision-Language Models (VLMs) excel at 2D visual understanding, they remain constrained by 2D-centric paradigm that severely limits genuine 3D spatial reasoning. To bridge this gap, we introduce Think3D, a novel framework that equips VLM agents with interactive, 3D chain-of-thought reasoning capabilities. By integrating a suite of 3D manipulation tools, Think3D transforms perception into active spatial exploration, mirroring human geometric reasoning. Think3D consistently improves proprietary models, including GPT-4.1 and Gemini 2.5 Pro, across BLINK Multi-view, MindCube-1K, and VSI-Bench-Tiny. We further propose Think3D-RL to teach smaller open-weight models how to manipulate 3D space effectively. Using only final-answer rewards, without process supervision or handcrafted exploration trajectories, Think3D-RL enables Qwen3-VL-4B to autonomously learn effective 3D exploration strategies. After training, the model exhibits tool-use patterns similar to those of stronger proprietary models, while shifting the effect of 3D tool use on MindCube-1K from a performance drop to a substantial improvement. These results show that active exploration in 3D space provides an effective and general paradigm for improving spatial reasoning in multimodal agents. Code, models, and data are available at https://github.com/zhangzaibin/spagent.","url_abs":"https://arxiv.org/abs/2601.13029","url_pdf":"https://arxiv.org/pdf/2601.13029","source":{"archive":null,"snapshot":"2025-07-28","note":"not in the Papers with Code archive (frozen at the snapshot)","row_kind":"graph","title_abstract_authors_date":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)"},"code_links":[],"tasks":[],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":null,"atlas_url":"https://app.syntology.ai/?focus=2601.13029","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2601.13029"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"mentioned_in_github":null,"is_official":null,"provenance":"deterministic:regex_extraction","mentioned_in_paper":null,"url":"https://github.com/zhangzaibin/spagent","reach":{"status":"ok"}}],"summary":{"unverified":8},"by_repo_kind":{"found_in_text":{"samples":8,"ran":0,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":8,"samples":[{"code_sha256_prefix":"aa472b56593b4362","entry":"build_general_vision_continuation_hint","repo":"zhangzaibin/spagent","repo_kind":"found_in_text","path":"spagent/core/prompts.py","file_url":"https://github.com/zhangzaibin/spagent/blob/HEAD/spagent/core/prompts.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"aa472b56593b4362"}},{"code_sha256_prefix":"142f8fbcab99876a","entry":"build_system_prompt","repo":"zhangzaibin/spagent","repo_kind":"found_in_text","path":"spagent/core/prompts.py","file_url":"https://github.com/zhangzaibin/spagent/blob/HEAD/spagent/core/prompts.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"142f8fbcab99876a"}},{"code_sha256_prefix":"0d4cb21fbea625d7","entry":"build_tool_selection_guide","repo":"zhangzaibin/spagent","repo_kind":"found_in_text","path":"spagent/core/prompts.py","file_url":"https://github.com/zhangzaibin/spagent/blob/HEAD/spagent/core/prompts.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"0d4cb21fbea625d7"}},{"code_sha256_prefix":"e4fa47ea09c64176","entry":"legacy_projection","repo":"zhangzaibin/spagent","repo_kind":"found_in_text","path":"spagent/core/render.py","file_url":"https://github.com/zhangzaibin/spagent/blob/HEAD/spagent/core/render.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e4fa47ea09c64176"}},{"code_sha256_prefix":"e833109145ed934d","entry":"resolve_projection","repo":"zhangzaibin/spagent","repo_kind":"found_in_text","path":"spagent/core/render.py","file_url":"https://github.com/zhangzaibin/spagent/blob/HEAD/spagent/core/render.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"e833109145ed934d"}},{"code_sha256_prefix":"d28d579cb30a6c0d","entry":"standardized_projection","repo":"zhangzaibin/spagent","repo_kind":"found_in_text","path":"spagent/core/render.py","file_url":"https://github.com/zhangzaibin/spagent/blob/HEAD/spagent/core/render.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d28d579cb30a6c0d"}},{"code_sha256_prefix":"858a1b9bc6fe37f6","entry":"validate_payload","repo":"zhangzaibin/spagent","repo_kind":"found_in_text","path":"spagent/core/tool_result.py","file_url":"https://github.com/zhangzaibin/spagent/blob/HEAD/spagent/core/tool_result.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"858a1b9bc6fe37f6"}},{"code_sha256_prefix":"36c25f7ec7f61496","entry":"visualization_paths","repo":"zhangzaibin/spagent","repo_kind":"found_in_text","path":"spagent/core/tool_result.py","file_url":"https://github.com/zhangzaibin/spagent/blob/HEAD/spagent/core/tool_result.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"36c25f7ec7f61496"}}]},"arxiv_metadata":{"licence":"arXiv metadata, CC0 1.0 (https://info.arxiv.org/help/license)","fields":["title","abstract","authors","date"],"primary_category":"cs.CV","source":"arxiv_2026.jsonl"},"syntology_extracted_results":null}