Skip to content

phai-lab/InstantSplatPP

Repository files navigation

arXiv Gradio Home Page X YouTube YouTube

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

Get 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 pip

3) Install Python dependencies (keep NumPy < 2)

NOTE: We pin numpy<2 to 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!


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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages