Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 3 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 (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-03-29T18:40:06.000Z (8 months ago)
- Last Synced: 2024-04-24T13:29:28.363Z (7 months ago)
- Topics: gaussian, graphics, nerf, rust, web, webgpu, wgpu
- Language: Rust
- Homepage: https://keksboter.github.io/web-splat/demo.html
- Size: 21.8 MB
- Stars: 69
- Watchers: 5
- Forks: 4
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-3D-gaussian-splatting - WebGPU Viewer 3
README
![Example Render generated by the renderer](img/example.png)
# 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 ViewerUsage: viewer [OPTIONS] [SCENE]
Arguments:
Input file
[SCENE] Scene json fileOptions:
--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}
}
```