MCPcopy Index your code
hub / github.com/KeKsBoTer/web-splat

github.com/KeKsBoTer/web-splat @v1.0.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.0 ↗ · + Follow
220 symbols 421 edges 15 files 14 documented · 6% updated 3mo agov1.0.0 · 2024-01-18★ 28612 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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

Build

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

Usage

3D Gaussian Splatting Viewer

Usage: viewer [OPTIONS] <INPUT> [SCENE]

Arguments:
<INPUT> Input ply file
[SCENE] Scene json file

Options:
--max-sh-deg <MAX_SH_DEG> maximum allowed Spherical Harmonics (SH) degree [default: 3]
--sh-dtype <SH_DTYPE> datatype used for SH coefficients [default: byte] [possible values: float, half, byte]
--no-vsync
-h, --help Print help
-V, --version Print version

Controls

Use the mouse and WASD + Shift + Space to navigate the camera.

If a scene (cameras.json) file is provided:

  • The keys 0-9 can be used to select the views 0-9
  • Pressing the R key will select a random view
  • Next/Previous view can be selected with Page Up/Down
  • N snaps to nearest view
  • T starts the tracking shot that visits the test views

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.

TODO

  • better camera controls
  • make it work in the browser

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 132
Function 48
Class 34
Interface 4
Enum 2

Languages

Rust87%
TypeScript13%

Modules by API surface

src/pointcloud.rs29 symbols
src/gpu_rs.rs29 symbols
public/web_splats.js29 symbols
src/renderer.rs23 symbols
src/lib.rs17 symbols
src/utils.rs15 symbols
src/camera.rs15 symbols
src/uniform.rs11 symbols
src/scene.rs11 symbols
src/animation.rs11 symbols
src/controller.rs8 symbols
src/ply.rs7 symbols

For agents

$ claude mcp add web-splat \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page