Awesome
3D Gaussian Splatting Renderer implemented in WebGPU (WGPU) and Rust
This code implements a renderer for the reconstructions obtained with 3D Gaussian Splatting
👉 Click to run the web demo 👈
Build
First, install the Rust compiler (e.g. with rustup)
Clone the repository and run
cargo build --release --bin viewer
Run
Use the point_cloud.ply
and cameras.json
files generated by 3D Gaussian Splatting:
cargo run --release --bin viewer point_cloud.ply cameras.json
To load compressed npz files the npz
feature must be enabled:
cargo run --release --features npz --bin viewer point_cloud.npz cameras.json
<details>
<summary>Usage</summary>
3D Gaussian Splatting Viewer
Usage: viewer [OPTIONS] <INPUT> [SCENE]
Arguments:
<INPUT> Input file
[SCENE] Scene json file
Options:
--no-vsync
-h, --help Print help
-V, --version Print version
</details>
About
Splat Sorting : We ported the Fuchsia RadixSort 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}
}