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.
Table of Contents
Free-view Rendering
free_view_rendering.mp4Get Started
InstantSplat++ is built on top of the original InstantSplat codebase.
This guide provides a reproducible conda setup (recommended).
Installation
1) Clone the repository + download the pre-trained model
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/2) Create conda environment
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 pip3) Install Python dependencies (keep NumPy < 2)
NOTE: 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"
4) Build & install CUDA submodules
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-ssim
5) (Optional) Compile RoPE CUDA kernels (CroCo v2)
cd croco/models/curope/ python setup.py build_ext --inplace cd ../../../
6) (Optional) MapAnything prior (third_party)
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-ssim
Usage
1) Data preparation
Download our pre-processed data from:
Place your data under assets/examples/<scene_name>/images (or follow the same folder structure).
2) Commands
# 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.bash
Acknowledgement
This 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
Citation
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