MCPcopy
hub / github.com/nerfstudio-project/gsplat

github.com/nerfstudio-project/gsplat @v1.5.3 sqlite

repository ↗ · DeepWiki ↗ · release v1.5.3 ↗
327 symbols 1,411 edges 50 files 157 documented · 48%
README

gsplat

Core Tests. Docs

http://www.gsplat.studio/

gsplat is an open-source library for CUDA accelerated rasterization of gaussians with python bindings. It is inspired by the SIGGRAPH paper 3D Gaussian Splatting for Real-Time Rendering of Radiance Fields, but we’ve made gsplat even faster, more memory efficient, and with a growing list of new features!

News

[May 2025] Arbitrary batching (over multiple scenes and multiple viewpoints) is supported now!! Checkout here for more details! Kudos to Junchen Liu.

[May 2025] Jonathan Stephens makes a great tutorial video for Windows users on how to install gsplat and get start with 3DGUT.

[April 2025] NVIDIA 3DGUT is now integrated in gsplat! Checkout here for more details. [NVIDIA Tech Blog] [NVIDIA Sweepstakes]

Installation

Dependence: Please install Pytorch first.

The easiest way is to install from PyPI. In this way it will build the CUDA code on the first run (JIT).

pip install gsplat

Alternatively you can install gsplat from source. In this way it will build the CUDA code during installation.

pip install git+https://github.com/nerfstudio-project/gsplat.git

We also provide pre-compiled wheels for both linux and windows on certain python-torch-CUDA combinations (please check first which versions are supported). Note this way you would have to manually install gsplat's dependencies. For example, to install gsplat for pytorch 2.0 and cuda 11.8 you can run

pip install ninja numpy jaxtyping rich
pip install gsplat --index-url https://docs.gsplat.studio/whl/pt20cu118

To build gsplat from source on Windows, please check this instruction.

Evaluation

This repo comes with a standalone script that reproduces the official Gaussian Splatting with exactly the same performance on PSNR, SSIM, LPIPS, and converged number of Gaussians. Powered by gsplat’s efficient CUDA implementation, the training takes up to 4x less GPU memory with up to 15% less time to finish than the official implementation. Full report can be found here.

cd examples
pip install -r requirements.txt
# download mipnerf_360 benchmark data
python datasets/download_dataset.py
# run batch evaluation
bash benchmarks/basic.sh

Examples

We provide a set of examples to get you started! Below you can find the details about the examples (requires to install some exta dependencies via pip install -r examples/requirements.txt)

Development and Contribution

This repository was born from the curiosity of people on the Nerfstudio team trying to understand a new rendering technique. We welcome contributions of any kind and are open to feedback, bug-reports, and improvements to help expand the capabilities of this software.

This project is developed by the following wonderful contributors (unordered):

We also have a white paper with about the project with benchmarking and mathematical supplement with conventions and derivations, available here. If you find this library useful in your projects or papers, please consider citing:

@article{ye2025gsplat,
  title={gsplat: An open-source library for Gaussian splatting},
  author={Ye, Vickie and Li, Ruilong and Kerr, Justin and Turkulainen, Matias and Yi, Brent and Pan, Zhuoyang and Seiskari, Otto and Ye, Jianbo and Hu, Jeffrey and Tancik, Matthew and Angjoo Kanazawa},
  journal={Journal of Machine Learning Research},
  volume={26},
  number={34},
  pages={1--17},
  year={2025}
}

We welcome contributions of any kind and are open to feedback, bug-reports, and improvements to help expand the capabilities of this software. Please check docs/DEV.md for more info about development.

Core symbols most depended-on inside this repo

_make_lazy_cuda_func
called by 27
gsplat/cuda/_wrapper.py
step
called by 11
gsplat/optimizers/selective_adam.py
backward
called by 11
gsplat/cuda/_wrapper.py
apply_float_colormap
called by 11
examples/utils.py
cli
called by 10
gsplat/distributed.py
_make_lazy_cuda_obj
called by 10
gsplat/cuda/_wrapper.py
rasterization
called by 8
gsplat/rendering.py
pack_unorm
called by 8
gsplat/exporter.py

Shape

Function 186
Method 104
Class 37

Languages

Python100%

Modules by API surface

gsplat/cuda/_wrapper.py58 symbols
examples/lib_bilagrid.py24 symbols
gsplat/cuda/_torch_impl.py16 symbols
examples/utils.py15 symbols
gsplat/compression/png_compression.py14 symbols
gsplat/strategy/ops.py12 symbols
gsplat/exporter.py12 symbols
examples/simple_trainer.py12 symbols
examples/datasets/traj.py12 symbols
examples/simple_trainer_2dgs.py11 symbols
tests/test_basic.py9 symbols
tests/_test_distributed.py8 symbols

Used by 2 indexed graphs manifest dependencies, hub-wide

Dependencies from manifests, versioned

tyro0.8.8 · 1×

For agents

$ claude mcp add gsplat \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact