vkSplatting: NVIDIA’s Open Source Vulkan Renderer for 3DGS Exploration

an exciting repo from NVIDIA to lift the hood on 3DGS.

an exciting repo from NVIDIA to lift the hood on 3DGS.

Michael Rubloff

Michael Rubloff

Michael is the Founder and Managing Editor of Radiancefields.com

Tags

vkSplatting

Developed as an exploratory testbed by NVIDIA’s DesignWorks sample team, this open-source Vulkan renderer is a toolkit for understanding the full technical spectrum of what makes 3DGS work in real-time.

We have profiled other helpful tools such as Florian Barthel’s Splatviz and NVIDIA’s vk_gaussian_splatting, which I will refer to as vkSplatting, is similarly an incredibly useful tool. 

vkSplatting is designed to compare different strategies for rendering 3D Gaussian splats in real-time, all within the Vulkan graphics API. The implementation allows developers and researchers to experiment with various shader types, sorting methods, and data layouts, revealing the subtle trade-offs that shape real-time performance and visual fidelity.

Two rendering pipelines are provided, one using traditional vertex shaders, the other leveraging mesh shaders. Since 3DGS relies on accurate alpha blending, the project also explores two sorting approaches. There is a GPU-based radix sort and a multi-threaded CPU-based alternative. By toggling between these configurations, users can see first-hand how storage mode, shader type, and sort timing impact both speed and quality.

What makes vkSplatting particularly compelling is how much control it hands over to the user. Almost every stage of the rendering pipeline is configurable, from how splat attributes are stored in memory to how spherical harmonics (SH) coefficients are compressed. A built-in interface provides panels for tweaking rendering parameters, monitoring performance, and analyzing memory usage in real time.

Want to test how Float16 SH values compare to UInt8? Or see how mesh shaders hold up against vertex shaders on your specific GPU? It’s great to be able to rapidly get feedback. The renderer also supports indirect draw calls that adapt dynamically based on the number of visible splats, ensuring efficient GPU-driven execution without needing round-trips to the CPU.

One of the most critical challenges in 3DGS is sorting splats back-to-front to ensure proper blending. vkSplatting implements both GPU and CPU approaches to this problem. The GPU-based method uses a fast radix sort, keeping the entire operation on the graphics card and minimizing synchronization delays. The CPU alternative runs in parallel and updates asynchronously. 

Interestingly, the GPU path also includes early frustum culling in its compute shaders to avoid wasting resources on invisible splats. The CPU path, by contrast, skips culling to avoid visual artifacts caused by latency during sort updates. The two methods serve different performance profiles, and vkSplatting lets you observe both in action.

vkSplatting is already robust, but there is still more to come. The team plans to incorporate the recently open sourced 3D Gaussian Ray Tracing (3DGRT) using the Vulkan Ray Tracing API. We’ll have to see if they will also include 3D Gaussian Unscented Transform, included with the 3DGRT release. Two other methods they are planning to incorporate are Stop the Pop and Sort-free 3DGS, which solve popping problems. 

To set up vkSplatting, you’ll need the Vulkan SDK and optionally CUDA for GPU monitoring. Once built, the application can load compatible .ply files (like those from Postshot or Nerfstudio) and immediately begin rendering. Models can be opened via the command line, file menu, or even by drag-and-drop. The app’s interface makes it easy to browse the scene, toggle parameters, and dive into the rendering flow in real time.

vkSplatting is Apache 2.0 licensed and free to use from the NVIDIA GitHub repository

Featured

Recents

Platforms

Spatial Film 9.2 Adds a Gaussian Splat Player With Insta360 Spatial Capture Links

Spatial Film 9.2 adds a free Splat Player to Apple Vision Pro, opening 3D Gaussian Splat .ply files up to 400,000 splats and Insta360 Spatial Capture links.

Michael Rubloff

Sep 22, 2026

Platforms

Spatial Film 9.2 Adds a Gaussian Splat Player With Insta360 Spatial Capture Links

Spatial Film 9.2 adds a free Splat Player to Apple Vision Pro, opening 3D Gaussian Splat .ply files up to 400,000 splats and Insta360 Spatial Capture links.

Michael Rubloff

Platforms

Carveout Segments and Labels Objects Inside Trained Gaussian Splatting Scenes

Carveout segments and labels objects inside already trained 3D Gaussian Splatting scenes with SAM 3, exporting each object as its own .ply with no retraining.

Michael Rubloff

Sep 22, 2026

Platforms

Carveout Segments and Labels Objects Inside Trained Gaussian Splatting Scenes

Carveout segments and labels objects inside already trained 3D Gaussian Splatting scenes with SAM 3, exporting each object as its own .ply with no retraining.

Michael Rubloff

Platforms

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph Intro: Babylon.js 9.27.1 adds Gaussian splats to the frame graph geometry renderer, writing GLSL and WGSL prepass outputs for depth, normal, albedo and velocity.

Michael Rubloff

Sep 19, 2026

Platforms

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph Intro: Babylon.js 9.27.1 adds Gaussian splats to the frame graph geometry renderer, writing GLSL and WGSL prepass outputs for depth, normal, albedo and velocity.

Michael Rubloff

Platforms

Niantic Spatial Launches Gaussian Splat Relighting

Niantic Spatial opens a design-partner beta for Gaussian splat relighting, using the aligned mesh and precomputed radiance transfer to vary sun, sky and rain.

Michael Rubloff

Sep 19, 2026

Platforms

Niantic Spatial Launches Gaussian Splat Relighting

Niantic Spatial opens a design-partner beta for Gaussian splat relighting, using the aligned mesh and precomputed radiance transfer to vary sun, sky and rain.

Michael Rubloff

Trending Articles
  1. TRENDING
    Loading...
  2. TRENDING
    Loading...
  3. TRENDING
    Loading...
Michael Rubloff

Written by Michael Rubloff

Michael is the Founder and Managing Editor of Radiancefields.com

More from Michael Rubloff

More from Michael Rubloff

Platforms

Spatial Film 9.2 Adds a Gaussian Splat Player With Insta360 Spatial Capture Links

Spatial Film 9.2 adds a free Splat Player to Apple Vision Pro, opening 3D Gaussian Splat .ply files up to 400,000 splats and Insta360 Spatial Capture links.

Michael Rubloff

Sep 22, 2026

SpatialFilm

Platforms

Spatial Film 9.2 Adds a Gaussian Splat Player With Insta360 Spatial Capture Links

Michael Rubloff

Sep 22, 2026

SpatialFilm

Platforms

Spatial Film 9.2 Adds a Gaussian Splat Player With Insta360 Spatial Capture Links

Spatial Film 9.2 adds a free Splat Player to Apple Vision Pro, opening 3D Gaussian Splat .ply files up to 400,000 splats and Insta360 Spatial Capture links.

Michael Rubloff

Sep 22, 2026

SpatialFilm

Platforms

Carveout Segments and Labels Objects Inside Trained Gaussian Splatting Scenes

Carveout segments and labels objects inside already trained 3D Gaussian Splatting scenes with SAM 3, exporting each object as its own .ply with no retraining.

Michael Rubloff

Sep 22, 2026

Carveout

Platforms

Carveout Segments and Labels Objects Inside Trained Gaussian Splatting Scenes

Michael Rubloff

Sep 22, 2026

Carveout

Platforms

Carveout Segments and Labels Objects Inside Trained Gaussian Splatting Scenes

Carveout segments and labels objects inside already trained 3D Gaussian Splatting scenes with SAM 3, exporting each object as its own .ply with no retraining.

Michael Rubloff

Sep 22, 2026

Carveout

Platforms

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph Intro: Babylon.js 9.27.1 adds Gaussian splats to the frame graph geometry renderer, writing GLSL and WGSL prepass outputs for depth, normal, albedo and velocity.

Michael Rubloff

Sep 19, 2026

Babylon.js

Platforms

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph

Michael Rubloff

Sep 19, 2026

Babylon.js

Platforms

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph

Babylon.js 9.27.1 Puts Gaussian Splats in Frame Graph Intro: Babylon.js 9.27.1 adds Gaussian splats to the frame graph geometry renderer, writing GLSL and WGSL prepass outputs for depth, normal, albedo and velocity.

Michael Rubloff

Sep 19, 2026

Babylon.js

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.