splatter
Splatter is a WebGPU based gaussian splatting engine written in Rust
Rust★ 76⑂ 2 forksMITupdated 2 years ago
git clone https://github.com/Lichtso/splatter.gitLichtso/splatterREADME.mdfork it — it’s yours
Splatter
Inspired by gaussian-splatting but using a somewhat different approach to rendering.
Features
- Correctly computes the perspective projection of ellipsoids by intersecting the bounding elliptic cone with the view plane
- Uses the rasterizer instead of a tiled compute shader
- Rasterizes rotated rectangles instead of axis aligned squares
- GPU depth sorting using onesweep radix sort (except that the block sort is not WLMS because WebGPU does not support subgroup operations yet)
- CPU depth sorting as a fallback
- Frustum culling (optionally using stream compaction via indirect drawing)
- File parser and progressive loading via segmentation in chunks
- Lots of rendering configuration parameters to customize
Dependencies
Dependencies of the Library
- Graphics API: wgpu
- Geometric Algebra: geometric_algebra
Dependencies of the Example
Example
You can download some pre-trained models from the original paper here.
cargo run --example showcase -- models/garden/point_cloud/iteration_7000/point_cloud.ply
Controls
- A / D: Move left / right
- W / S: Move forward / backward
- Q / E: Move up / down
- Z / X: Roll left / right
- Mouse: Pitch and yaw
more like this
TachiSnap
TachiSnap — Pixel Snapper for animation pixel artists. Rust + WebAssembly client-side tool for cleaning up AI-generated…
HTML★ 50
bit_gossip
Pathfinding library for calculating all node pairs' shortest paths in an unweighted undirected graph.
Rust★ 50