dorkhub

web-splat

3D Gaussian Splatting Renderer implemented in WebGPU (WGPU) and Rust

KeKsBoTer
Rust28933 forksApache-2.0updated 4 months ago
visit the demogit clone https://github.com/KeKsBoTer/web-splat.gitKeKsBoTer/web-splat

Example Render generated by the renderer

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
Usage 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

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}
}

more like this

anne-key

Firmware for Anne Pro Keyboard written in Rust

Rust572

TachiSnap

TachiSnap — Pixel Snapper for animation pixel artists. Rust + WebAssembly client-side tool for cleaning up AI-generated…

HTML50

urge

The Universal Ruby Game Engine (URGE) Project

C++50

bit_gossip

Pathfinding library for calculating all node pairs' shortest paths in an unweighted undirected graph.

Rust50

search

search projects, people, and tags