SplatsThe evolution of media, in brief
RSS

To put splats on the globe, he replaced the renderer

Key art for the plugin: a Gaussian-splat capture of a derelict stone barn with a corrugated roof, sitting on a white tile and surrounded by scattered blue and purple splat points, with the wireframe box of its tile bounds drawn around it

Image: 3D-Tiles-RendererJS-3DGS-Plugin · Tools

Amara Osei

Amara Osei

Aug 28, 2026, 3:35 PM ET-Tools

Two standards have been circling each other for most of a year. Khronos defined how a Gaussian splat lives inside a glTF file; the OGC's 3D Tiles defines how you stream a planet's worth of glTF to a browser. A plugin published this morning puts them together, and the interesting part is what its maintainer had to throw away to do it.

Why it matters: 3D Tiles is how large geospatial scenes actually get delivered — a spatial hierarchy of tiles, fetched on demand, disposed when they leave view. It is the format behind most serious terrain and city streaming on the web, and `3d-tiles-renderer`, maintained under NASA-AMMOS, is its three.js implementation.

Until now splats have mostly arrived as single monolithic files: one capture, one scene, load it all. Making a splat a tile payload means it inherits everything the tiling ecosystem already knows how to do — hierarchical refinement, memory accounting, disposal, fading between levels — and it means a splat capture can sit on a globe next to terrain and photogrammetry rather than in its own viewer.

The plugin reads glTF tiles carrying `KHR_gaussian_splatting` compressed with `KHR_gaussian_splatting_compression_spz_2`. That is Khronos's splat extension and Niantic's SPZ codec, arriving inside an OGC transport, which is about as much standards-stack composition as this field has managed so far.

What changed today: Version 0.2.0 replaced `@sparkjsdev/spark` — World Labs' widely used three.js splat renderer — with `gaussian-splat-lite`, a renderer the same author wrote. The stated reasons are native large-coordinate precision, faster sorting, and faster and more accurate raycasting, at similar CPU and GPU memory cost.

The precision point is the substantive one, and it is a problem geospatial developers will recognise immediately. Earth-centred, Earth-fixed coordinates put every object several million metres from the origin. At that magnitude single-precision floats quantise to something like half a metre, so geometry jitters as the camera moves. The standard fix is to render relative to the camera rather than the origin, and a splat renderer built for object-scale captures has no particular reason to do that. One built for the globe has to.

The rest of 0.2.0 is architectural: applications now own the lifecycle of the scene-level renderer instead of the plugin owning it, and splat tiles construct meshes directly from SPZ bytes. It is a breaking change and ships with a migration guide. A follow-up hours later fixed splat tiles losing sync when an ancestor transform changed.

Yes, but: This is one developer's project. The plugin has 120 stars and 17 forks — real traction for a single-maintainer library, and nothing like an institutional commitment. The renderer it now depends on is days old and effectively unknown, which trades a mature dependency for one with a single set of eyes on it.

The precision rationale is the maintainer's own, stated in a changelog. It is technically coherent and matches a well-documented problem, but nobody has published a comparison showing Spark failing at ECEF scale, and I have not measured one.

The supported surface is also narrow by design. Tiles must be glTF or GLB, must carry `KHR_gaussian_splatting`, and must use SPZ v2 compression — raw Gaussians and other compression schemes are simply not handled. That is a reasonable line for a small project to draw, and it means the plugin only works on content produced by a fairly specific pipeline.

The big picture: The week's pattern is browser stacks discovering that splats need the same infrastructure everything else already has. luma.gl added out-of-core paging with a residency budget; Babylon.js added a render budget and multi-camera LOD; this adds tiling and disposal by inheriting them wholesale from a geospatial standard.

The recurring lesson is that the general-purpose splat renderers are object-scale tools. Every project that tries to put a capture somewhere real — a city, a survey, a globe — ends up either extending one or, as here, writing its own.

Go deeper:

  • 3d-tiles-rendererjs-3dgs-plugin on npm
  • The plugin on GitHub
  • 3DTilesRendererJS, maintained under NASA-AMMOS
⟵ Back to the brief

More stories

The SuperSplat 3.3.0 editor with a Gaussian splat capture of a street cafe loaded — furled yellow umbrellas over metal tables, parked cars and a tree-lined street behind. The scene manager and transform panels sit at the left, the tool strip along the bottom, and the status bar reads two million splats

SuperSplat rewrote itself on WebGPU and deleted the fallback

Today

Two rows of photoacoustic reconstructions of a branching vascular phantom, shown for SlingBAG, for PAGS, and as the ground-truth digital phantom. The SlingBAG panels carry a mottled noise floor around the vessels; the PAGS panels are cleaner, with the vessel network closer to the crisp white tracery of the phantom

Splatting, but the light is sound and the camera is a transducer

Sep 1, 2026

A schematic of a scene divided into a wireframe grid of cells against black. One cell is outlined in yellow and holds a sharp green cylinder; a blurred blue slab sits behind it and a red slab in front, standing in for the frozen regions flattened into single background and foreground images

Their trick makes VRAM independent of scene size. The test scenes were too small to show it.

Aug 31, 2026

A fairground drop-tower ride rendered twice: on the left from a degraded reconstruction, where the tower and foliage dissolve into white streaks and smears, and on the right after refinement, sharp and photographic against a clear sky

Give it scattered keypoints and it matches a full splat reconstruction

Aug 29, 2026

splats

Short daily briefs on the evolution of media — gaussian splats, volumetric video, dome theaters, headsets, and the research underneath.

Newsroom

  • Latest
  • All stories
  • RSS feed
© 2026 Splats · Terms · Privacy