---
license: apache-2.0
base_model:
- Qwen/Qwen2.5-VL-3B-Instruct
---
# SpatialEvo: Self-Evolving Spatial Intelligence via Deterministic Geometric Environments
## SpatialEvo-3B
This repository contains **SpatialEvo-3B**, introduced in [SpatialEvo: Self-Evolving Spatial Intelligence via Deterministic Geometric Environments](https://arxiv.org/abs/2604.14144).
## Model Description
SpatialEvo-3B is fine-tuned from **Qwen2.5-VL-3B-Instruct** using the SpatialEvo self-evolving framework. Instead of relying on manually annotated datasets or model voting to construct pseudo-labels, SpatialEvo leverages a **Deterministic Geometric Environment (DGE)** that programmatically computes exact ground truth from 3D point clouds and camera poses, enabling zero-noise online reinforcement learning across 16 spatial reasoning task categories.
A single shared-parameter policy co-evolves as both a **Questioner** and a **Solver** under GRPO optimization, while a lightweight **Task Scheduler** drives adaptive curriculum learning based on historical accuracy — without any manual stage design or human annotation.
## Performance
| Benchmark | Baseline | SpatialLadder | SpaceR | SpatialSSRL | **SpatialEvo (Ours)** |
|-----------|----------|---------------|--------|-------------|----------------------|
| VSI-Bench | 28.1 | **45.7** | 36.0 | 28.0 | 39.2 |
| RealWorldQA | 63.4 | 57.1 | 61.4 | 65.4 | **66.5** |
| EmbSpatial | 55.9 | 57.6 | 55.6 | 59.8 | **61.2** |
| SpatialViz | 24.2 | 28.6 | **31.9** | 25.9 | 25.4 |
| STARE | 33.1 | 26.4 | 36.8 | 36.8 | **36.9** |
| CoreCognition | 56.8 | **58.3** | 29.1 | 57.6 | 57.4 |
| ViewSpatial | 36.2 | 43.0 | 35.9 | 38.4 | **42.3** |
| V-STAR | 74.9 | 36.7 | 75.4 | **77.0** | 75.4 |
| MMStar | 54.6 | 45.8 | 44.9 | **56.5** | 55.2 |
| **AVG** | 47.5 | 44.4 | 45.2 | 49.5 | **51.1** |
All baselines are evaluated on Qwen2.5-VL-3B. **Bold** denotes the best result per benchmark.
## Usage
```python
from transformers import AutoProcessor, Qwen2_5_VLForConditionalGeneration
model = Qwen2_5_VLForConditionalGeneration.from_pretrained("lidingm/SpatialEvo-3B")
processor = AutoProcessor.from_pretrained("lidingm/SpatialEvo-3B")
```
## Citation
If you find SpatialEvo useful, please consider citing our work:
```bibtex
@misc{li2026spatialevoselfevolvingspatialintelligence,
title={SpatialEvo: Self-Evolving Spatial Intelligence via Deterministic Geometric Environments},
author={Dinging Li and Yingxiu Zhao and Xinrui Cheng and Kangheng Lin and Hongbo Peng and Hongxing Li and Zixuan Wang and Yuhong Dai and Haodong Li and Jia Wang and Yukang Shi and Liang Zhao and Jianjian Sun and Zheng Ge and Xiangyu Zhang and Weiming Lu and Jun Xiao and Yueting Zhuang and Yongliang Shen},
year={2026},
eprint={2604.14144},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2604.14144},
}
```
## Related Resources
- 📄 [Paper](https://arxiv.org/abs/2604.14144)
- 💻 [GitHub Repository](https://github.com/ZJU-REAL/SpatialEvo)
- 🤗 [SpatialEvo-7B](https://huggingface.co/lidingm/SpatialEvo-7B)
- 🤗 [SpatialEvo-160K Dataset](https://huggingface.co/datasets/lidingm/SpatialEvo-160K)