Vk gaussian splatting
Advanced viewer implementing several rendering methods for 3D gaussians using Vulkan API
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.
Vulkan Gaussian Splatting

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.
- Download the latest release for your OS
- decompress the archive
- run the executable vk_gaussian_splatting[.exe]
- Download this small 3DGS flowers model
- decompress the archive
- drag and drop the file flowers_1.ply into the app viewport
- Happy splatting!
Documentation
Please consult the documentation to browse:
- Release Notes — with feature videos for novelties
- Getting Started — get up and running, download pre-builds or build from source, and open your first scene
- 🔥Sample Projects — ready-made scenes showcasing the renderer, with image comparisons
- Datasets — download links and recommended settings for additional sample models
- User Guides — walkthrough of the UI, rendering settings, and tools
- Deep Dives — in-depth technical presentation of the rendering implementations and features:
- References — bibliography
If you are working offline, you can browse the documentation markdown pages in the docs folder.

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
| Library | URL | License |
|---|---|---|
| miniply | https://github.com/vilya/miniply | MIT |
| vrdx | https://github.com/jaesung-cs/vulkan_radix_sort | MIT |
| spz | https://github.com/nianticlabs/spz | MIT |
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:
| Project | URL | License |
|---|---|---|
| vkgs | https://github.com/jaesung-cs/vkgs | MIT |
| GaussianSplats3D | https://github.com/mkkellogg/GaussianSplats3D | MIT |
Additional 3rd-Party software is listed in nvpro_core2/third_party.
Contributors
Showing top 6 contributors by commit count.
