Journey9ni/SpatialStack-Qwen3.5-4B
<div align="center">
๐ SpatialStack-Qwen3.5-4B
Layered Geometry-Language Fusion for 3D VLM Spatial Reasoning
CVPR 2026
<a href="https://arxiv.org/abs/2603.27437"><img src="https://img.shields.io/badge/๐Paper-arXiv-b31b1b.svg"></a> <a href="https://spatial-stack.github.io/"><img src="https://img.shields.io/badge/๐Project-Site-4CAF50.svg"></a> <a href="https://github.com/jzh15/SpatialStack"><img src="https://img.shields.io/badge/๐ปCode-GitHub-181717.svg"></a> <a href="https://huggingface.co/datasets/Journey9ni/SpatialStackData"><img src="https://img.shields.io/badge/๐ฆData-HuggingFace-FFD21E.svg"></a> <a href="https://huggingface.co/Journey9ni/SpatialStack-Qwen3.5-4B"><img src="https://img.shields.io/badge/๐คModel-HuggingFace-FF9D00.svg"></a> <img src="https://img.shields.io/badge/License-Apache2.0-blue.svg">
</div>
<div align="center"> <img src="https://spatial-stack.github.io/static/images/fig1teaserv6.png" alt="SpatialStack Teaser" width="85%"> </div>
๐ Overview
SpatialStack-Qwen3.5-4B is a geometry-augmented vision-language model designed for 3D spatial reasoning. It extends Qwen3.5-4B with a parallel VGGT-1B geometry stream, using a novel layered geometry-language fusion mechanism that progressively aligns multi-level geometric and language features across model layers.
Geometry features from encoder layers [11, 17, 23] are projected and injected into decoder layers [0, 1, 2], preserving both fine local structure and higher-level spatial context.
๐๏ธ Architecture
<div align="center"> <img src="https://spatial-stack.github.io/static/images/fig2archv1.png" alt="SpatialStack Architecture" width="85%"> </div>
<table> <tr><td><b>Component</b></td><td><b>Detail</b></td></tr> <tr><td>Base Model</td><td><a href="https://huggingface.co/Qwen/Qwen3.5-4B">Qwen/Qwen3.5-4B</a></td></tr> <tr><td>Geometry Encoder</td><td><a href="https://huggingface.co/facebook/VGGT-1B">facebook/VGGT-1B</a></td></tr> <tr><td>Encoder Layers</td><td>[11, 17, 23]</td></tr> <tr><td>Fusion Layers</td><td>[0, 1, 2]</td></tr> <tr><td>Fusion Method</td><td>DeepStack Language-Add</td></tr> <tr><td>Geometry Merger</td><td>MLP</td></tr> <tr><td>Precision</td><td>bfloat16</td></tr> </table>
๐ Benchmark Results
Results from the SpatialStack project page and paper.
๐ Quick Start
Installation
git clone https://github.com/jzh15/SpatialStack.git
cd SpatialStack
pip install -e . --no-depsFor full environment setup (PyTorch, flash_attn, Qwen3.5 dependencies), see the repo README.
Single-Image Inference
python scripts/inference/infer.py \
--model-path Journey9ni/SpatialStack-Qwen3.5-4B \
--image assets/sofas.jpg \
--prompt "Describe this scene in a few complete sentences." \
--disable-thinking \
--max-new-tokens 128VSI-Bench Evaluation
MODEL_PATH=Journey9ni/SpatialStack-Qwen3.5-4B \
MODEL_IMPL=qwen3_5 \
MODEL_ARGS_BASE="pretrained=Journey9ni/SpatialStack-Qwen3.5-4B,use_flash_attention_2=true,max_num_frames=32,max_length=12800,geometry_encoder_path=facebook/VGGT-1B,disable_thinking=true" \
OUTPUT_ROOT=logs/eval/spatialstack_qwen35_4b \
BENCHMARKS="vsibench" \
bash scripts/evaluation/eval.shโ ๏ธ Limitations
- Requires a separate geometry encoder (VGGT-1B) alongside the vision-language backbone.
- Optimized for spatial reasoning benchmarks; not intended for general-purpose multimodal chat.
- Not validated for safety-critical use, robotics deployment, or real-world decision making.
๐ Citation
@article{zhang2026spatialstack,
title={SpatialStack: Layered Geometry-Language Fusion for 3D VLM Spatial Reasoning},
author={Zhang, Jiang and Zhou, Shijie and Liu, Bangya and Kadambi, Achuta and Fan, Zhiwen},
journal={arXiv preprint arXiv:2603.27437},
year={2026}
}