3D Gaussian Splatting has been the hottest technique in photorealistic scene reconstruction for the past two years — and until recently, getting it into a Three.js project meant pulling in a third-party library, managing your own WebGPU pipeline, or working around significant compatibility quirks. That's about to change. The Three.js r186 development branch has merged a native Gaussian Splat renderer for WebGPU, making 3DGS a first-class primitive in the library.
What is 3D Gaussian Splatting?
Gaussian Splatting (3DGS) is a real-time radiance field rendering technique. You feed it a set of photos or video frames of a real scene, run a training process, and get back a collection of millions of small, semi-transparent Gaussian ellipsoids ("splats") that collectively represent the scene's volume and appearance. Render those splats from any viewpoint, and you get photorealistic results in real time.
The key advantage over NeRF-style approaches is speed: 3DGS renders at interactive framerates without neural network inference at render time. The catch has been that integrating it into existing WebGL pipelines required significant custom code — which is exactly what this Three.js merge addresses.
What the r186 integration adds
The native renderer in r186 is built for WebGPU, which means it targets the modern graphics API now shipping in Chrome, Edge, and Firefox Nightly. Specific capabilities include:
- Loading standard
.splatand.plyGaussian files directly via Three.js loaders - Depth-sorting via compute shaders (critical for correct alpha compositing of splats)
- Integration with Three.js's existing scene graph, camera, and post-processing stack
- Compositing with other Three.js objects — you can mix splat scenes with traditional meshes, lights, and effects in the same render
Why this matters for web 3D developers
Until now, the workflow for a web developer who wanted to include a Gaussian Splat scene was essentially: fork a specialized library, hope it plays nicely with your existing Three.js code, manage separate render passes, and debug WebGPU compatibility yourself. The friction was real enough that most web projects stayed with traditional photogrammetry or hand-modeled assets even when 3DGS would have been the better choice.
Native Three.js support removes that friction. Once r186 ships as stable, adding a photorealistic scan of a real-world space to a Three.js scene becomes about as complex as adding any other asset. This has obvious implications for architectural visualization, virtual tours, product showcases, and cultural heritage documentation.
The Three.js roadmap context
r186 builds on a period of sustained WebGPU investment in Three.js. The current stable release, r185, introduced Three Shading Language (TSL) as the default shader authoring layer — a unified shader syntax that compiles to either WGSL (WebGPU) or GLSL (WebGL) depending on the renderer. The r183 RenderPipeline replaced EffectComposer as the modern post-processing foundation.
Gaussian Splatting support is the natural next step: TSL handles shaders portably, RenderPipeline handles compositing, and now the splat renderer handles the data. It's a coherent stack finally clicking into place.
r186 is currently in development. If you want to try it ahead of the stable release, the dev branch is available on GitHub. Stable release timing hasn't been announced, but Three.js has been shipping roughly one major release per month.