luma.gl 9.4.0 Beta Adds a GPU Gaussian Splat Renderer

vis.gl publishes @luma.gl/splats as a 9.4.0 beta, a GPU-native Gaussian splat renderer with WebGPU hierarchy traversal, bounded residency, and Spark RAD paging.

vis.gl publishes @luma.gl/splats as a 9.4.0 beta, a GPU-native Gaussian splat renderer with WebGPU hierarchy traversal, bounded residency, and Spark RAD paging.

Michael Rubloff

Michael Rubloff

Michael is the Founder and Managing Editor of Radiancefields.com

luma.gl

vis.gl has published @luma.gl/splats, an experimental GPU-native gaussian splat rendering module, to npm as a 9.4.0 beta.

luma.gl is the WebGL and WebGPU rendering library that deck.gl is built on. This is not related to the cloud based reconstruction platform, Luma AI. The modules/splats directory first landed in on 4 August 2026, and the package reached npm on 21 August as 9.4.0-beta.1, followed by 9.4.0-beta.2 roughly two hours later. Both GitHub releases are tagged prerelease, and the stable luma.gl line remains 9.3.6.

The module owns prepared splat data, directional spherical harmonics, semantic filtering, GPU picking, hierarchy traversal, bounded residency, covariance projection, depth ordering and render models without depending on Apache Arrow, loaders.gl, glTF packages or deck.gl. The graph renderer, GPU ordering, hierarchy traversal and storage backed features require WebGPU, and SplatRenderer's prepared path is the WebGL 2 fallback.

makeGPUSplatDataFromGLTF and loadGPUSplatDataFromGLTF consume decoded glTF primitives declaring KHR_gaussian_splatting, validating POINTS primitives, ellipse kernel, color space, projection and sorting method, converting glTF XYZW quaternions to renderer WXYZ order, and packing degree one through degree three RGB coefficient bands. Authored EXT_mesh_features identifiers become stable source semantic IDs. Compressed KHR_gaussian_splatting_compression_spz_2 payloads go to a caller owned decoder, and the documentation states that the renderer does not parse SPZ or fetch 3D Tiles itself. three.js merged its own native splat renderer for r186 and subsequently added SH support.

SplatResidencyManager budgets on maxGpuBytes, maxResidentSplats and maxResidentChunks, displaces lower priority chunks before falling back to least recently used eviction, supports pinning, and never repacks or concatenates GPU buffers. SplatHierarchyManager exposes maximumScreenSpaceError, maxConcurrentLoads and a foveation center, radius and strength, culls bounding spheres conservatively, and cancels requests that leave the current view. SplatRADHierarchyManager and GPUPagedSplatRenderer implement Spark's RAD row-level hierarchies at a pageSize of 65,536, preserving page-local childCounts and source-global childStarts alongside lodSplatScale, lodRenderScale, lodOpacity and coneFov0 controls.

The interactive viewer streams the 750K train capture, with Truck, Dr Johnson and Playroom in the same catalog, and the showcase reads ply, splat, ksplat, spz and rad. Its default residency window retains at most one million original source rows, tunable through a residentSplats URL parameter. RAD chunk decoding runs in a bounded module-worker pool that serializes to transferable Arrow IPC, with an explicit main-thread fallback.

End to end Gaussian 3D Tiles are not finished. The missing pieces are currently the loader owned KHR runtime handlers, SPZ v2 decoding and per-page model transforms, where Gaussian splat 3D Tiles carry an XL cost estimate on the watch list.

@luma.gl/splats is MIT licensed and open source. It installs with yarn add @luma.gl/splats.

You can learn more here.

Featured

Recents

News

Framestore Details Its Superman 4D Splatting Pipeline

Framestore's Superman talk details its 4D Gaussian splatting pipeline, from a 192-camera, 88-second take trained in Postshot to per-shot PLY files in Houdini.

Michael Rubloff

Oct 23, 2026

News

Framestore Details Its Superman 4D Splatting Pipeline

Framestore's Superman talk details its 4D Gaussian splatting pipeline, from a 192-camera, 88-second take trained in Postshot to per-shot PLY files in Houdini.

Michael Rubloff

Platforms

TuttiCam Syncs Up to 8 Cameras for Gaussian Splat Capture

TuttiCam is a free iOS and open-source Android app that syncs up to eight phones and cameras and can fire only when every phone holds still, for 3DGS capture.

Michael Rubloff

Oct 23, 2026

Platforms

TuttiCam Syncs Up to 8 Cameras for Gaussian Splat Capture

TuttiCam is a free iOS and open-source Android app that syncs up to eight phones and cameras and can fire only when every phone holds still, for 3DGS capture.

Michael Rubloff

News

Tommy Oshima Turns Kenji Kohiyama's Macro Insect Photogrammetry Into Gaussian Splats

Tommy Oshima rebuilt Kenji Kohiyama's macro insect photogrammetry as Gaussian splats, recovering hairs and wings, now showing at the Okayama Prefectural Museum.

Michael Rubloff

Oct 23, 2026

News

Tommy Oshima Turns Kenji Kohiyama's Macro Insect Photogrammetry Into Gaussian Splats

Tommy Oshima rebuilt Kenji Kohiyama's macro insect photogrammetry as Gaussian splats, recovering hairs and wings, now showing at the Okayama Prefectural Museum.

Michael Rubloff

News

CHCNAV CoCloud Adds a New Gaussian Splat Renderer

CHCNAV CoCloud adds a 3DGS rendering engine that CHCNAV says preloads models up to 5 GB in seconds, plus 20% faster processing and AI pedestrian filtering.

Michael Rubloff

Oct 23, 2026

News

CHCNAV CoCloud Adds a New Gaussian Splat Renderer

CHCNAV CoCloud adds a 3DGS rendering engine that CHCNAV says preloads models up to 5 GB in seconds, plus 20% faster processing and AI pedestrian filtering.

Michael Rubloff

Michael Rubloff

Written by Michael Rubloff

Michael is the Founder and Managing Editor of Radiancefields.com

More from Michael Rubloff

More from Michael Rubloff

News

Framestore Details Its Superman 4D Splatting Pipeline

Framestore's Superman talk details its 4D Gaussian splatting pipeline, from a 192-camera, 88-second take trained in Postshot to per-shot PLY files in Houdini.

Michael Rubloff

Oct 23, 2026

Superman splats

News

Framestore Details Its Superman 4D Splatting Pipeline

Michael Rubloff

Oct 23, 2026

Superman splats

News

Framestore Details Its Superman 4D Splatting Pipeline

Framestore's Superman talk details its 4D Gaussian splatting pipeline, from a 192-camera, 88-second take trained in Postshot to per-shot PLY files in Houdini.

Michael Rubloff

Oct 23, 2026

Superman splats

Platforms

TuttiCam Syncs Up to 8 Cameras for Gaussian Splat Capture

TuttiCam is a free iOS and open-source Android app that syncs up to eight phones and cameras and can fire only when every phone holds still, for 3DGS capture.

Michael Rubloff

Oct 23, 2026

TuttiCam

Platforms

TuttiCam Syncs Up to 8 Cameras for Gaussian Splat Capture

Michael Rubloff

Oct 23, 2026

TuttiCam

Platforms

TuttiCam Syncs Up to 8 Cameras for Gaussian Splat Capture

TuttiCam is a free iOS and open-source Android app that syncs up to eight phones and cameras and can fire only when every phone holds still, for 3DGS capture.

Michael Rubloff

Oct 23, 2026

TuttiCam

News

Tommy Oshima Turns Kenji Kohiyama's Macro Insect Photogrammetry Into Gaussian Splats

Tommy Oshima rebuilt Kenji Kohiyama's macro insect photogrammetry as Gaussian splats, recovering hairs and wings, now showing at the Okayama Prefectural Museum.

Michael Rubloff

Oct 23, 2026

News

Tommy Oshima Turns Kenji Kohiyama's Macro Insect Photogrammetry Into Gaussian Splats

Michael Rubloff

Oct 23, 2026

News

Tommy Oshima Turns Kenji Kohiyama's Macro Insect Photogrammetry Into Gaussian Splats

Tommy Oshima rebuilt Kenji Kohiyama's macro insect photogrammetry as Gaussian splats, recovering hairs and wings, now showing at the Okayama Prefectural Museum.

Michael Rubloff

Oct 23, 2026

New to Gaussian Splatting? Start here

Radiance fields, explained from the ground up: what a Gaussian splat is, how to capture one, and which tools and gear to start with.

Newsletter

Keep up with the field.

New research, tools and captures from the Radiance Fields newsroom, in your inbox. Free, no spam.