Three.js r186 Brings Native 3D Gaussian Splatting to the Web

Three.js r186, released in September 2026, marks the first time the library ships a native 3D Gaussian Splatting renderer. For a framework that has defined how the web handles 3D graphics for over a decade, this is a notable addition — one that brings a genuinely different rendering paradigm into the standard toolkit.

What Gaussian Splatting Actually Is

Traditional 3D scenes use meshes: geometry defined by polygons, with textures and shaders applied on top. Gaussian Splatting works differently. You start from a set of photographs, run a training process (based on the original INRIA research), and get back a point cloud where each point is a 3D Gaussian — a soft, ellipsoidal blob with its own color, opacity, and shape. Rendering sorts these blobs by depth and composites them front-to-back. The result can look remarkably photorealistic for captured real-world scenes: furniture, faces, outdoor environments. The trade-off is that the files are large and editing the geometry is not straightforward, but for view-synthesis and scene capture it outperforms traditional photogrammetry on visual quality.

What r186 Adds

The r186 release ships two things for Gaussian Splatting: a native splat renderer and splat raycasting. The renderer handles loading and rendering .splat files without third-party plugins. Raycasting means you can do intersection tests against the splat cloud — clicking on objects in a scene, hover interactions, picking — which was the main obstacle to building interactive applications with splat content before this.

The release also includes improvements to the WebGPU renderer path and the compileComputeAsync() utility for pre-compiling compute shaders, reducing first-render hitches in WebGPU-heavy applications. The SunLight addon with cascaded shadow maps also landed, giving scene-scale directional lighting a more physically plausible falloff.

Why This Matters for the Web

Until r186, using Gaussian Splatting in a Three.js project meant either reaching for standalone libraries or managing the renderer yourself. Native support lowers the floor significantly: the integration fits the existing Three.js scene graph, loaders, and event system. A developer who already knows Three.js can add a captured scene in roughly the same amount of code as adding a GLTF model.

The broader implication is that photogrammetric scene capture — scanning a space with a phone camera and publishing a realistic 3D version on the web — becomes a more accessible workflow. Real estate, e-commerce, cultural heritage, and interactive documentaries are the obvious immediate use cases, but the technique generalizes.

The Conference That Happened Around It

September also brought the first Three.js Conference in Paris, held at Maison de la Chimie on September 10–11 with around 550 attendees. Mr.doob, the library's creator, spoke on creative tooling and AI-assisted development. The fact that the community can fill a venue of that size for a single JavaScript graphics library reflects how large the creative coding and WebGL ecosystem has become. If r186 is the technical milestone, the conference was the social one.

Three.js releases on a roughly quarterly cadence in 2026. The project's release history is on GitHub.