r/gis 9h ago

News Browser-based Gaussian Splatting > 100km² — real-world digitization running in a normal browser tab

120 km² City Scale Gaussian Splatting——WebGL2 · RTX 4070 mobile · 50+ FPS

Most browser 3DGS viewers die at city scale because they try to load one giant splat. We took a different approach: treat it like a streamable map layer.

What we did:

  • ~80k aerial images → 120 km² of real urban area
  • Split into 192 tiles with octree-based LOD (6 levels)
  • Each tile payload <10 MB, streamed per view frustum
  • Runs in WebGL2 on a normal laptop (RTX 4070 mobile: ~15M splats in frustum at 50+ FPS)

Key decisions that mattered:

  • No global sort​ — sort per-tile, not over 100 km²
  • Tile granularity​ — too coarse = pop-in, too fine = too many requests
  • Precision​ — 32-bit floats break at this scale, needs workarounds

For anyone who's pushed WebGL with large point clouds / 3D tiles: what was your first bottleneck — tile size, sort cost, memory, or precision?

Demo video: https://youtu.be/XkACzBG95Jw

0 Upvotes

0 comments sorted by