https://github.com/KeKsBoTer/web-splat
3D Gaussian Splatting Renderer implemented in WebGPU (WGPU) and Rust
https://github.com/KeKsBoTer/web-splat
gaussian graphics nerf rust web webgpu wgpu
Last synced: 12 months ago
JSON representation
3D Gaussian Splatting Renderer implemented in WebGPU (WGPU) and Rust
- Host: GitHub
- URL: https://github.com/KeKsBoTer/web-splat
- Owner: KeKsBoTer
- Created: 2023-09-21T21:17:26.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-03-20T20:03:54.000Z (about 1 year ago)
- Last Synced: 2025-03-20T21:41:10.869Z (about 1 year ago)
- Topics: gaussian, graphics, nerf, rust, web, webgpu, wgpu
- Language: Rust
- Homepage: https://web-splat.niedermayr.dev
- Size: 21.7 MB
- Stars: 151
- Watchers: 5
- Forks: 11
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-3D-gaussian-splatting - WebGPU Viewer 3
- awesome-3D-gaussian-splatting - WebGPU Viewer 3
README

# 3D Gaussian Splatting Renderer implemented in WebGPU (WGPU) and Rust
This code implements a renderer for the reconstructions obtained with [3D Gaussian Splatting](https://github.com/graphdeco-inria/gaussian-splatting)
[👉 Click to run the web demo 👈](https://keksboter.github.io/web-splat/demo.html)
## Build
First, install the Rust compiler (e.g. with [rustup](https://rustup.rs/))
Clone the repository and run
```bash
cargo build --release --bin viewer
```
## Run
Use the `point_cloud.ply` and `cameras.json` files generated by [3D Gaussian Splatting](https://github.com/graphdeco-inria/gaussian-splatting):
```
cargo run --release --bin viewer point_cloud.ply cameras.json
```
To load [compressed npz files](https://github.com/KeKsBoTer/c3dgs) the `npz` feature must be enabled:
```
cargo run --release --features npz --bin viewer point_cloud.npz cameras.json
```
Usage
3D Gaussian Splatting Viewer
Usage: viewer [OPTIONS] [SCENE]
Arguments:
Input file
[SCENE] Scene json file
Options:
--no-vsync
-h, --help Print help
-V, --version Print version
## About
**Splat Sorting**
: We ported the [Fuchsia RadixSort](https://fuchsia.googlesource.com/fuchsia/+/refs/heads/main/src/graphics/lib/compute/radix_sort/) to WGPU for sorting the splats on the GPU.
**Performance**: The renderer reaches >200 FPS on a `NVIDIA 3090 RTX` and ~130 FPS on a `AMD Radeon R9 380 Series` (8 years old). Measurements where taken for the bonsai scene at 1200x799 resolution.
## Citation
If you find our work useful, please cite:
```
@misc{niedermayr2023compressed,
title={Compressed 3D Gaussian Splatting for Accelerated Novel View Synthesis},
author={Simon Niedermayr and Josef Stumpfegger and Rüdiger Westermann},
year={2023},
eprint={2401.02436},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
```