File size: 6,606 Bytes
ddfa402 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | ---
license: cc-by-nc-4.0
library_name: pytorch
pipeline_tag: image-to-3d
base_model: veichta/zipsplat
base_model_relation: finetune
tags:
- applied-intuition
- 3d-reconstruction
- gaussian-splatting
- novel-view-synthesis
- streaming
- feed-forward
- arxiv:2610.08978
paper: 2610.08978
---
<p align="center">
<img src="https://huggingface.co/AppliedIntuitionResearch/S2Tok/resolve/main/assets/icon.svg" width="120"/>
</p>
# S2Tok: Streaming 3D Gaussian Reconstruction with Persistent Spatial Tokens
<p align="center">
<a href="https://arxiv.org/abs/2610.08978"><img src="https://img.shields.io/badge/arXiv-2610.08978-b31b1b.svg" alt="arXiv"></a>
<a href="https://s2tok.github.io/"><img src="https://img.shields.io/badge/Project-Website-blue" alt="Project Page"></a>
<a href="https://github.com/Applied-Intuition-Open-Source/S2Tok"><img src="https://img.shields.io/badge/GitHub-Code-black?logo=github" alt="Code"></a>
<a href="https://creativecommons.org/licenses/by-nc/4.0/"><img src="https://img.shields.io/badge/License-CC%20BY--NC%204.0-lightgrey" alt="License"></a>
</p>
S2Tok reconstructs a scene as 3D Gaussians from an uncalibrated image stream, one frame at a time.
It keeps a persistent, size-adaptive set of spatial tokens as its scene state: each new frame
updates the existing tokens, and a learned admission module adds new tokens only for content that
is not yet represented. A hierarchical decoder turns the tokens into non-pixel-aligned Gaussians,
so the scene can be rendered from new views at any point of the stream without keeping past frames.
> ⚠️ **Research release.** This model is released for research purposes under the terms below. It is not a production system and does not include any Applied Intuition proprietary data, product code, or production checkpoints.
## Model Details
| | |
|---|---|
| **Developed by** | Applied Intuition — AI Research |
| **Model type** | Streaming feed-forward transformer (DA3-Giant ViT-G/14 backbone) with a persistent token memory, a learned admission module and a 3D Gaussian decoder |
| **Paper** | [S2Tok: Streaming 3D Gaussian Reconstruction with Persistent Spatial Tokens](https://arxiv.org/abs/2610.08978) |
| **Code** | https://github.com/Applied-Intuition-Open-Source/S2Tok |
| **Project page** | https://s2tok.github.io/ |
| **Initialized from** | [ZipSplat](https://huggingface.co/veichta/zipsplat) (CC BY-NC 4.0), itself initialized from [DA3-Giant](https://huggingface.co/depth-anything/DA3-GIANT) (CC BY-NC 4.0) |
| **Training data** | [DL3DV-10K](https://github.com/DL3DV-10K/Dataset) and [RealEstate10K](https://google.github.io/realestate10k/) |
| **License (weights)** | [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/) — see [WEIGHTS_LICENSE.md](WEIGHTS_LICENSE.md) |
| **Contact** | GitHub Issues on the code repo |
## Checkpoints
| Checkpoint | Description | Size | Link |
|---|---|---|---|
| `s2tok_252.pt` | 1.72B params. 252x252 input, trained on 12–24 frame sequences from RealEstate10K and DL3DV-10K. | 6.87 GB | [s2tok_252.pt](s2tok_252.pt) |
The file holds `model` (inference weights) and `config` (architecture settings), and loads with
`torch.load(..., weights_only=True)`. SHA-256 checksums are in [SHA256SUMS](SHA256SUMS).
## Intended Use & Limitations
**Intended use:** research on streaming and feed-forward 3D reconstruction and novel-view
synthesis.
**Out of scope / limitations:**
- Frames are center-cropped and resized to 252x252. Gaussians are expressed in the camera frame of
the first image, up to a global scale.
- The memory holds at most 4,000 tokens (128k Gaussians); once it is full, no new content is
admitted.
- Trained on 12–24 frame sequences of static scenes and evaluated at 12 and 50 views; retention
over much longer streams is not established.
**Commercial use is not permitted** under CC BY-NC 4.0. The weights are also subject to the terms
of their upstream model and datasets (see [License](#license)).
## How to Use
```python
from huggingface_hub import hf_hub_download
from s2tok import load_model
path = hf_hub_download("AppliedIntuitionResearch/S2Tok", "s2tok_252.pt")
model = load_model(path, device="cuda")
memory = model.init_memory()
for image in frames: # [3, 252, 252] RGB tensors in [0, 1]
out, memory = model.step(image.cuda(), memory)
out.gaussians.save_ply("scene.ply") # Gaussians after the last frame (3DGS PLY)
```
Streaming demo with an interactive viewer:
```bash
python demo.py --model_path s2tok_252.pt --seq_path path/to/video.mp4 --output_dir outputs/my_scene
```
Full installation and usage instructions: see the [GitHub repository](https://github.com/Applied-Intuition-Open-Source/S2Tok).
## License
The weights are released under [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/),
**non-commercial use only** ([WEIGHTS_LICENSE.md](WEIGHTS_LICENSE.md), full text in
[LICENSE](LICENSE)). The non-commercial restriction is also required by their upstream sources:
- fine-tuned from the released [ZipSplat](https://github.com/cvg/ZipSplat) checkpoint
([CC BY-NC 4.0](https://huggingface.co/veichta/zipsplat)), which is initialized from
[DA3-Giant](https://huggingface.co/depth-anything/DA3-GIANT) (CC BY-NC 4.0); depth labels for
training were produced with [DA3-Nested-Giant-Large](https://huggingface.co/depth-anything/DA3NESTED-GIANT-LARGE)
(CC BY-NC 4.0);
- trained on [DL3DV-10K](https://github.com/DL3DV-10K/Dataset) (DL3DV-10K Terms of Use and
CC BY-NC 4.0: non-commercial research and education only) and
[RealEstate10K](https://google.github.io/realestate10k/) (Google; frames from YouTube videos).
Use of the weights must also comply with the terms of these models and datasets. No training
data is included in this repository.
## Citation
```bibtex
@article{li2026s2tok,
title = {S2Tok: Streaming 3D Gaussian Reconstruction with Persistent Spatial Tokens},
author = {Li, Fang and Yenphraphai, Jiraphon and Herau, Quentin and Meng, Depu and Hu, Yihan and Xu, Tianshuo and Ahuja, Narendra and Zhan, Wei},
journal = {arXiv preprint arXiv:2610.08978},
year = {2026}
}
```
## Acknowledgments
This model builds on [ZipSplat](https://github.com/cvg/ZipSplat) (code Apache-2.0, weights
CC BY-NC 4.0), [Depth Anything 3](https://github.com/ByteDance-Seed/Depth-Anything-3) and
[DINOv2](https://github.com/facebookresearch/dinov2) (Apache-2.0). It is trained on
[DL3DV-10K](https://github.com/DL3DV-10K/Dataset) and
[RealEstate10K](https://google.github.io/realestate10k/). We thank the authors for making their
work available.
|