gsplat

Example training image

Overview

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

  • gsplat is developed with efficiency in mind. Comparing to the official implementation, gsplat enables up to 4x less training memory footprint, and up to 15% less training time on Mip-NeRF 360 captures, and potential more on larger scenes. See Evaluation for details.

  • gsplat is designed to support extremely large scene rendering, which is magnitudes faster than the official CUDA backend diff-gaussian-rasterization. See Render a Large Scene for an example.

  • gsplat offers many extra features, including batch rasterization, N-D feature rendering, depth rendering, sparse gradient, multi-GPU distributed rasterization etc. See Rasterization for details.

  • gsplat is equipped with the latest and greatest 3D Gaussian Splatting techniques, including absgrad, anti-aliasing, 3DGS-MCMC etc. And more to come!

Installation

gsplat is available on PyPI and can be installed with pip:

pip install gsplat

To get the latest features, it can also be installed from source:

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

Contributing

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):

Citations

[1]

Bernhard Kerbl, Georgios Kopanas, Thomas Leimkühler, and George Drettakis. 3d gaussian splatting for real-time radiance field rendering. ACM Transactions on Graphics, July 2023. URL: https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/.