README.md

March 19, 2026 · View on GitHub

S-VGGT: Structure-Aware Subscene Decomposition for Scalable 3D Foundation Models

Paper PDF (Coming Soon) Project Page

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

S-VGGT Overview

📰 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.

S-VGGT Method

⚙️ 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 --merging parameter specifies the block index at which the merging strategy is applied, which is a parameter from FastVGGT. You can leave it with its default value None to inference and evaluate S-VGGT only, or you can use --merging 0 to use token merging from Block 0 to evaluate the orthogonality of S-VGGT and token-level acceleration method.
  • The --num_groups parameter overrides the number of subscene groups; None uses 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

⚖️ License

See the LICENSE file for details about the license under which this code is made available.