Skip to content
This repository was archived by the owner on Jul 19, 2026. It is now read-only.

Repository files navigation

WebGPU Gaussian Splatting Renderer

A real-time 3D Gaussian Splatting renderer that runs in the browser, written in JavaScript and WGSL on WebGPU.

Features

  • GPU-driven tile-based Gaussian splatting rasterizer
  • GPU radix sort over per-tile splat instances, with a parallel prefix-sum scan
  • Full spherical harmonics (degree 3) evaluated per frame from the view direction
  • Load user input .ply model by file picker or drag-and-drop
  • Live per-pass GPU timings, splat count, and FPS graph via Tweakpane

Optimization

Per-frame averages from the in-app GPU pass (ms) panel. The count, scan*, and reorder rows are summed across all four radix passes, since the profiler accumulates per label per frame.

Single Work Group Scan

Step ms
preprocess 0.25
offset scan 3.888
emit 0.053
indirect arg 0.002
count 0.16
scan 1414.27
reorder 0.39
tile ranges 0.027
raster 0.774
blit 0.008
TOTAL 1419.821

Parallel Scan

Step Time (ms)
preprocess 0.727
offset scan 4.782
emit 0.309
indirect arg 0.003
count 0.689
scan local 4.389
scan block sums 4.745
scan add offset 3.989
reorder 3.372
tile ranges 0.061
raster 1.202
blit 0.007
TOTAL 24.274

Screenshots

Strawbery Castle

Models

Reference

About

A real-time 3D Gaussian Splatting renderer that runs in the browser

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages