GitPedia

Vk gaussian splatting

Advanced viewer implementing several rendering methods for 3D gaussians using Vulkan API

From nvpro-samples·Updated June 18, 2026·View on GitHub·

This project is a **testbed** to explore and compare various approaches to **real-time visualization** of **3D Gaussian Splatting (3DGS) [[Kerbl2023](https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/)]** and related evolutions. The project is written primarily in C++, distributed under the Apache License 2.0 license, first published in 2025. Key topics include: 3d-gaussians, gaussian-splatting, hybrid-rendering, mesh-shaders, rasterization.

Latest release: 2026.2.0
June 4, 2026View Changelog →

Vulkan Gaussian Splatting

License
Download
Documentation

image showing the rendering modes on the train 3DGS model

This project is a testbed to explore and compare various approaches to real-time visualization of 3D Gaussian Splatting (3DGS) [Kerbl2023] and related evolutions.

This project is not a 3DGS reconstruction tool — it is a viewer. It does not generate or train models, only tries to visualize them at the highest possible speed.

By evaluating various techniques and optimizations, we aim to provide valuable insights into performance, quality, and implementation trade-offs when using the Vulkan API.

This project implements several rendering pipelines based on rasterization, ray tracing, and hybrid approaches. It can be used as a lab for developers or as a day-to-day viewer for your splats.

Quick Start

Requirements: NVIDIA GPU or Full Vulkan 1.4 enabled GPU, 64-bit Windows or Linux.

  1. Download the latest release for your OS
    • decompress the archive
    • run the executable vk_gaussian_splatting[.exe]
  2. Download this small 3DGS flowers model
    • decompress the archive
    • drag and drop the file flowers_1.ply into the app viewport
  3. Happy splatting!

Documentation

Please consult the documentation to browse:

If you are working offline, you can browse the documentation markdown pages in the docs folder.

Implemented pipelines features

News

  • [2026/06] 🔥Release 2026.2
    • GGX PBR materials (metallic-roughness) replacing Phong, with indirect lighting for splat sets
    • glTF/GLB mesh loading with full PBR textures, emissive, and scene-graph flattening
    • Physically-based lighting: IBL environment maps, physical sky background, and NEE + BRDF path tracing with MIS
    • Tone mapping and auto-exposure integrated from nvpro_core2
    • Billboard ray tracing path with intersection shaders and selectable TLAS bounding modes
    • Sphere primitive mode via VK_NV_ray_tracing_linear_swept_spheres
    • Shared TLAS for per-particle RTX with reduced VRAM and fewer acceleration-structure rebuilds
    • DLSS improvements: motion vectors for meshes and splat sets, hardware depth, firefly clamp
    • Renderer UI rework with Denoising / Rasterization / Raytracing tabs
    • Save / Save As projects including renderer and tonemapping settings
    • Samples folder with an asset-download build script and new sample projects
    • Billboard benchmark suite and headless mode with an expanded CLI
    • Platform: HardwareSupport capability registry, Intel Arc and Linux build fixes, upgraded nvpro_core2
    • Release Notes
  • [2026/04] Release 2026.1.7
    • Pre-built binaries available on GitHub Releases page
    • New online documentation website — user guides, technical deep dives, and references now available as a browsable site
    • Simplified root README.md (this file)
    • Rendering pipeline selector added to the menu bar
    • Navigation mode icons in toolbar with improved camera controls
    • Fix profiler reporting during camera drag in raster/hybrid pipelines
    • Fix 32-bit addressing overflow in sorting buffers by converting to LargeBuffer (supports larger models)

For earlier releases and full details, see the Release Notes page.

Support and Feedback

For bug reports and feature requests, please use the GitHub Issues page.

For general questions and discussions, please use the GitHub Q&A Discussions page.

We would be very happy to get feedback from you, to know whether you use the software to learn, teach, apply to your own renderer, or just use it as a viewer. Please do not hesitate to give feedback and send screenshots in the GitHub Show and Tell Discussions page.

Contributing

Merge requests to vk_gaussian_splatting are welcome, and use the Developer Certificate of Origin (https://developercertificate.org included in CONTRIBUTING).

When committing, please certify that your contribution adheres to the DCO and use git commit --sign-off. Thank you!

References

[Zwicker2002]. EWA Splatting. E., Zwicker, M., Pfister, H., Van Baar, J., Gross, M.H., Zwicker, M., Pfister, H., Van Baar, J., & Gross, M.H. (2002). IEEE Transactions on Visualization and Computer Graphics.

[Enderton2010]. Stochastic transparency. Eric Enderton, Erik Sintorn, Peter Shirley, and David Luebke. In Proc. Symposium on Interactive 3D Graphics and Games (I3D), pages 157–164, 2010.

[Kerbl2023] 3D Gaussian Splatting for Real-Time Radiance Field Rendering. Kerbl, B., Kopanas, G., Leimkuehler, T., & Drettakis, G. (2023). ACM Transactions on Graphics (TOG), 42, 1 - 14.

[Yu2023] Mip-Splatting: Alias-Free 3D Gaussian Splatting.. Yu, Z., Chen, A., Huang, B., Sattler, T., & Geiger, A. (2023). 2024 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), 19447-19456.

[Radl2024] StopThePop: Sorted Gaussian Splatting for View-Consistent Real-time Rendering. Radl, L., Steiner, M., Parger, M., Weinrauch, A., Kerbl, B., & Steinberger, M. (2024). ACM Trans. Graph., 43, 64:1-64:17.

[Moënne-Loccoz2024] 3D Gaussian Ray Tracing: Fast Tracing of Particle Scenes. Moënne-Loccoz, N., Mirzaei, A., Perel, O., Lutio, R.D., Esturo, J.M., State, G., Fidler, S., Sharp, N., & Gojcic, Z. (2024). ACM Trans. Graph., 43, 232:1-232:19.

[Hou2024] Sort-free Gaussian Splatting via Weighted Sum Rendering. Hou, Q., Rauwendaal, R., Li, Z., Le, H., Farhadzadeh, F., Porikli, F.M., Bourd, A., & Said, A. (2024). ArXiv, abs/2410.18931.

[Morgenstern2024] Compact 3D Scene Representation via Self-Organizing Gaussian Grids. Wieland Morgenstern, Florian Barthel, Anna Hilsmann, Peter Eisert. ECCV 2024.

[Wu2024] 3DGUT: Enabling Distorted Cameras and Secondary Rays in Gaussian Splatting. Wu, Q., Esturo, J.M., Mirzaei, A., Moënne-Loccoz, N., & Gojcic, Z. (2024). ArXiv, abs/2412.12507. CVPR 2025.

[3DGRUT] This repository provides the official implementations of 3D Gaussian Ray Tracing (3DGRT)[Moënne-Loccoz2024] and 3D Gaussian Unscented Transform (3DGUT)[Wu2024].

[Kheradmand2025] “StochasticSplats: Stochastic Rasterization for Sorting-Free 3D Gaussian Splatting.”. Kheradmand Shakiba, Delio Vicini, George Kopanas, Dmitry Lagun, Kwang Moo Yi, Mark J. Matthews and Andrea Tagliasacchi. ICCV 2025.

3rd-Party Licenses

LibraryURLLicense
miniplyhttps://github.com/vilya/miniplyMIT
vrdxhttps://github.com/jaesung-cs/vulkan_radix_sortMIT
spzhttps://github.com/nianticlabs/spzMIT

Some parts of the current implementation are strongly inspired by, and in some cases incorporate, source code and comments from the following third-party projects:

ProjectURLLicense
vkgshttps://github.com/jaesung-cs/vkgsMIT
GaussianSplats3Dhttps://github.com/mkkellogg/GaussianSplats3DMIT

Additional 3rd-Party software is listed in nvpro_core2/third_party.

Contributors

Showing top 6 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from nvpro-samples/vk_gaussian_splatting via the GitHub API.Last fetched: 6/18/2026