Open-source code for the first-place solution of the [SIGGRAPH Asia 2025 3DGS Challenge](https://gaplab.cuhk.edu.cn/projects/gsRaceSIGA2025/index.html).
Python
69
83 commits
updated Jan 28, 2026
Ziyu Zhang, Tianle Liu, Diantao Tu, Shuhan Shen $^\dagger$
Institute of Automation, Chinese Academy of Sciences; Wuhan University
We present a fast 3DGS reconstruction pipeline designed to converge within one minute, developed for the SIGGRAPH Asia 3DGS Fast Reconstruction Challenge. Our solution includes several key points:
duplicateWithKeys();In addation, We tried using Neural Gaussians to replace original 3DGS for fast convergence with few parameters. Switch to the use_scaffold_release branch for details.
# 1) Create and activate a Conda environment
conda create -n 3dv_gs python=3.10
conda activate 3dv_gs
# 2) Install xFormers built for your CUDA
# Replace the URL with the one matching your local CUDA version. We use CUDA 12.4 and torch 2.5.1
# xformers==0.0.29 will automatically pull torch==2.5.1 as a dependency.
pip install -U xformers==0.0.29 --index-url https://download.pytorch.org/whl/cu124
# 3) Install torchvision that matches your torch
# torch 2.5.1 pairs with torchvision 0.20.1. We recommend using a prebuilt wheel:
# https://download.pytorch.org/whl/torchvision/
wget <the-correct-torchvision-wheel-from-the-link-above>
pip install torchvision-xxxx.whl
# 4) Verify versions and pin them
# Run `pip list` to confirm the installed torch/torchvision versions,
# then put those exact versions into constraints.txt.
# 5) Install project requirements with pinned versions (no build isolation)
pip install -r requirements.txt -c constraints.txt --no-build-isolation
# 6) Install local extensions (no build isolation)
pip install submodules/diff-gaussian-rasterization \
submodules/simple-knn \
submodules/fused-ssim \
submodules/lanczos-resampling \
--no-build-isolation
Also download the following weights/configs:
./anySplat/ckpt./vggt./metric3D/weightEdit .vscode/full_train_and_eval.sh:
BASE_DIR to the root directory containing all scenes.EXP_DIR to your experiment output directory.Then run training script for all scenes:
chmod +x .vscode/full_train_and_eval.sh
.vscode/full_train_and_eval.sh
Per-scene quantitative results are aggregated in ${EXP_DIR}/metrics_train.json, which records the rendering metrics and training time for all scenes.
$EXP_DIR
├── <scene_1>
...
├── <scene_n>
└── metrics_train.json
...
$BASE_DIR
└── <scene_1>
├── images
├── sparse/0
└── train_test_split.json
The file structure of train_test_split.json:
{
"train": [
"000000.png",
"000003.png",
...,
"000199.png"
],
"test": [
"000001.png",
"000002.png",
...,
"000193.png"
]
}
$iterations according to your device, so that the overall training time is about one minute.Edit .vscode/full_eval.sh:
DATA_PATH to the root directory containing all scenes.EVALUATE_DIR to same experiment output directory as above.Then run eval script for all scenes:
chmod +x .vscode/full_eval.sh
.vscode/full_eval.sh
Please refer to metrics.json for the final time metrics and PSNR metrics.
We thank the above excellent open source repositories for sharing and the support of the competition organizers.
@article{zhang2026fastconverging3dgaussian,
title={Fast Converging 3D Gaussian Splatting for 1-Minute Reconstruction},
author={Ziyu Zhang and Tianle Liu and Diantao Tu and Shuhan Shen},
journal={arXiv preprint arXiv:2601.19489},
year={2026},
}
Open-source code for the first-place solution of the [SIGGRAPH Asia 2025 3DGS Challenge](https://gaplab.cuhk.edu.cn/projects/gsRaceSIGA2025/index.html).
Python
69
83 commits
updated Jan 28, 2026
Ziyu Zhang, Tianle Liu, Diantao Tu, Shuhan Shen $^\dagger$
Institute of Automation, Chinese Academy of Sciences; Wuhan University
We present a fast 3DGS reconstruction pipeline designed to converge within one minute, developed for the SIGGRAPH Asia 3DGS Fast Reconstruction Challenge. Our solution includes several key points:
duplicateWithKeys();In addation, We tried using Neural Gaussians to replace original 3DGS for fast convergence with few parameters. Switch to the use_scaffold_release branch for details.
# 1) Create and activate a Conda environment
conda create -n 3dv_gs python=3.10
conda activate 3dv_gs
# 2) Install xFormers built for your CUDA
# Replace the URL with the one matching your local CUDA version. We use CUDA 12.4 and torch 2.5.1
# xformers==0.0.29 will automatically pull torch==2.5.1 as a dependency.
pip install -U xformers==0.0.29 --index-url https://download.pytorch.org/whl/cu124
# 3) Install torchvision that matches your torch
# torch 2.5.1 pairs with torchvision 0.20.1. We recommend using a prebuilt wheel:
# https://download.pytorch.org/whl/torchvision/
wget <the-correct-torchvision-wheel-from-the-link-above>
pip install torchvision-xxxx.whl
# 4) Verify versions and pin them
# Run `pip list` to confirm the installed torch/torchvision versions,
# then put those exact versions into constraints.txt.
# 5) Install project requirements with pinned versions (no build isolation)
pip install -r requirements.txt -c constraints.txt --no-build-isolation
# 6) Install local extensions (no build isolation)
pip install submodules/diff-gaussian-rasterization \
submodules/simple-knn \
submodules/fused-ssim \
submodules/lanczos-resampling \
--no-build-isolation
Also download the following weights/configs:
./anySplat/ckpt./vggt./metric3D/weightEdit .vscode/full_train_and_eval.sh:
BASE_DIR to the root directory containing all scenes.EXP_DIR to your experiment output directory.Then run training script for all scenes:
chmod +x .vscode/full_train_and_eval.sh
.vscode/full_train_and_eval.sh
Per-scene quantitative results are aggregated in ${EXP_DIR}/metrics_train.json, which records the rendering metrics and training time for all scenes.
$EXP_DIR
├── <scene_1>
...
├── <scene_n>
└── metrics_train.json
...
$BASE_DIR
└── <scene_1>
├── images
├── sparse/0
└── train_test_split.json
The file structure of train_test_split.json:
{
"train": [
"000000.png",
"000003.png",
...,
"000199.png"
],
"test": [
"000001.png",
"000002.png",
...,
"000193.png"
]
}
$iterations according to your device, so that the overall training time is about one minute.Edit .vscode/full_eval.sh:
DATA_PATH to the root directory containing all scenes.EVALUATE_DIR to same experiment output directory as above.Then run eval script for all scenes:
chmod +x .vscode/full_eval.sh
.vscode/full_eval.sh
Please refer to metrics.json for the final time metrics and PSNR metrics.
We thank the above excellent open source repositories for sharing and the support of the competition organizers.
@article{zhang2026fastconverging3dgaussian,
title={Fast Converging 3D Gaussian Splatting for 1-Minute Reconstruction},
author={Ziyu Zhang and Tianle Liu and Diantao Tu and Shuhan Shen},
journal={arXiv preprint arXiv:2601.19489},
year={2026},
}