This repository contains InstantSplat++, an improved extension of InstantSplat for sparse-view large-scale scene reconstruction with Gaussian Splatting.
InstantSplat++ preserves the original InstantSplat design and supports 3D-GS, 2D-GS, and Mip-Splatting.
If you use this repository in your research, please also cite the original InstantSplat paper and codebase: NVlabs/InstantSplat.
free_view_rendering.mp4
InstantSplat++ is built on top of the original InstantSplat codebase.
This guide provides a reproducible conda setup (recommended).
git clone --recursive https://github.com/phai-lab/InstantSplatPP.git
cd InstantSplatPP
mkdir -p mast3r/checkpoints/
wget https://download.europe.naverlabs.com/ComputerVision/MASt3R/MASt3R_ViTLarge_BaseDecoder_512_catmlpdpt_metric.pth \
-P mast3r/checkpoints/conda create -n instantsplatPP python=3.10.13 cmake=3.14.0 -y
conda activate instantsplatPP
# PyTorch + CUDA runtime (12.1)
conda install pytorch==2.1.2 torchvision pytorch-cuda=12.1 -c pytorch -c nvidia -y
python -m pip install -U pipNOTE: We pin
numpy<2to avoid ABI issues with compiled CUDA extensions.
pip install -r requirements.txt
python -m pip uninstall -y numpy opencv-python
python -m pip install --no-cache-dir "numpy<2" "opencv-python<4.12"pip install -v --no-build-isolation ./submodules/simple-knn
pip install -v --no-build-isolation ./submodules/diff-gaussian-rasterization
pip install -v --no-build-isolation ./submodules/fused-ssimcd croco/models/curope/
python setup.py build_ext --inplace
cd ../../../If you want to run with PRIOR_MODEL_TYPE=mapanything, install MapAnything from third_party/.
MapAnything may change dependencies (e.g. upgrade NumPy), so we install it with constraints and then rebuild CUDA submodules.
# constraints: keep NumPy < 2 and OpenCV compatible
cat > constraints.txt << 'EOF'
numpy<2
opencv-python<4.12
EOF
# install from local repo (already under third_party/)
pip install -e third_party/mapanything -c constraints.txt
# enforce NumPy<2 (in case it was upgraded), then rebuild CUDA submodules
python -m pip install --no-cache-dir "numpy<2"
rm -rf submodules/simple-knn/build \
submodules/diff-gaussian-rasterization/build \
submodules/fused-ssim/build
pip install -v --no-build-isolation ./submodules/simple-knn
pip install -v --no-build-isolation ./submodules/diff-gaussian-rasterization
pip install -v --no-build-isolation ./submodules/fused-ssimDownload our pre-processed data from:
Place your data under assets/examples/<scene_name>/images (or follow the same folder structure).
# Train + render (no GT reference, interpolate camera trajectory)
bash scripts/run_infer.sh
# Train + evaluate (with GT reference)
bash scripts/run_eval.sh
# Run with prior models (e.g., VGGT / MapAnything)
bash scripts/run_all_prior_model.bashThis work is built on many amazing research works and open-source projects. Thanks to all the authors for sharing!
- InstantSplat (original framework)
- Gaussian Splatting and diff-gaussian-rasterization
- DUSt3R
- MASt3R
- MapAnything
- VGGT
If you find our work useful, please consider giving a star ⭐ and citing:
@misc{fan2025instantsplatsparseviewgaussiansplatting,
title={InstantSplat: Sparse-view Gaussian Splatting in Seconds},
author={Zhiwen Fan and Wenyan Cong and Kairun Wen and Kevin Wang and Jian Zhang and Xinghao Ding and Danfei Xu and Boris Ivanovic and Marco Pavone and Georgios Pavlakos and Zhangyang Wang and Yue Wang},
year={2025},
eprint={2403.20309},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2403.20309},
}Note: InstantSplat++ is an extension of the original InstantSplat framework. Please cite the paper above and acknowledge the original codebase: https://github.com/NVlabs/InstantSplat