README.md
March 19, 2026 · View on GitHub
S-VGGT: Structure-Aware Subscene Decomposition for Scalable 3D Foundation Models
Xinze Li1, Pengxu Chen1,2, Yiyuan Wang1,3, Weifeng Su1,4,Wentao Cheng1†
1Beijing Normal University–Hong Kong Baptist University 2Jilin University 3Hong Kong Baptist University 4Guangdong Provincial Key Laboratory of Interdisciplinary Research and Application for Data Science
†Corresponding Author
Contact: t330026083@mail.bnbu.edu.cn
📰 News
- [Mar 19, 2026] Paper Released on Arxiv
- [Mar 18, 2026] Code Released
- [Mar 17, 2026] 🎉 S-VGGT has been accepted to ICME 2026.
🔭 Overview
S-VGGT identifies structural redundancy across frames and reorganizes dense scenes into balanced subscenes with a shared reference frame, enabling highly efficient parallel 3D reconstruction with strong acceleration and no loss in fidelity.
⚙️ Environment Setup
First, create a virtual environment using Conda, clone this repository to your local machine, and install the required dependencies.
conda create -n svggt python=3.10
conda activate svggt
git clone https://github.com/Powertony102/S-VGGT.git
cd S-VGGT
pip install -r requirements.txt
Next, prepare the ScanNet dataset: http://www.scan-net.org/ScanNet/
We follow the preprocessing method to ScanNet by choosing 50 scenes following FastVGGT, where we implement a tool to assist you. Please refer to Xinze Li: ScanNet-Process-Python3 for more details.
Finally, configure the dataset path. For example:
parser.add_argument(
"--data_dir", type=Path,
default="/home/jovyan/shared/xinzeli/scannetv2/process_scannet"
)
parser.add_argument(
"--gt_ply_dir",
type=Path,
default="/home/jovyan/shared/xinzeli/scannetv2/scannet",
)
Note that, we build our implementation based on FastVGGT, where we observe that the default value of --depth_conf_thresh is too high for VGGT output. We suggest to configure it by a value which is lower that 1.0.
🤖 Usage
ScanNet
Evaluate S-VGGT on the ScanNet dataset with various input sequence lengths.
- The
--mergingparameter specifies the block index at which the merging strategy is applied, which is a parameter from FastVGGT. You can leave it with its default valueNoneto inference and evaluate S-VGGT only, or you can use--merging 0to use token merging from Block 0 to evaluate the orthogonality of S-VGGT and token-level acceleration method. - The
--num_groupsparameter overrides the number of subscene groups;Noneuses auto selection
python eval/eval_scannet.py --input_frame 1000
7 Scenes & NRGBD
Evaluate across two datasets, sampling keyframes every 3 frames:
python eval/eval_7andN.py --kf 3
🍺 Acknowledgements
-
Thanks to these great repositories: VGGT, Dust3r, Fast3R, CUT3R, MV-DUSt3R+, StreamVGGT, VGGT-Long, FastVGGT and many other inspiring works in the community.
-
Special thanks to our supervisor Dr. Wentao Cheng for consistent suggestions and efforts to this work.
⚖️ License
See the LICENSE file for details about the license under which this code is made available.