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.
- 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!
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
- User Guides — walkthrough of the UI, rendering settings, and tools
- Deep Dives — in-depth technical presentation of the rendering implementations and features:
- Datasets — download links and recommended settings for sample models
- References — bibliography
If you are working offline, you can browse the documentation markdown pages in the docs folder.
- [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)
- [2026/03] 🔥Release 2026.1
- Multi-instance splat set architecture with global index tables and unified sorting
- Centralized bindless asset management with a root bindless scene assets buffer
- Multi-light lighting system (point / spot / directional, ray traced hard / soft shadows)
- Front-to-back rasterization with depth consolidation for lighting
- Deferred shading for rasterized Gaussian splats
- GPU-built particle acceleration structures with multi-TLAS / multi-BLAS chunking and VRAM budget pre-checking
- Ray tracing now supports very large models and updates faster
- Stochastic splat sorting and Monte Carlo trace strategy for enhanced interactivity
- DLSS Ray Reconstruction for anti-aliasing, upscaling and denoising
- Expanded visualization modes in ray tracing and hybrid pipelines (normals, depth, DLSS buffers, splat ID)
- UI / UX enhancements (summary overlay, shader feedback and ray hit profile, editing mode)
- 3D transform and infinite grid visual helpers
- Runtime image comparison tool with MSE / PSNR / FLIP metrics
- Added new models from teleportour.com. Thanks to Andrii Shramko. See Datasets page.
- [2025/10] Migration from GLSL to SLANG.
- [2025/09] Added Unscented Transform (3DGUT) and hybrid rendering (3DGUT/3DGRT) pipelines, with support for fisheye and depth of field.
- [2025/09] Added import of .spz file format from nianticlabs.
- [2025/08] Added depth of field to raytracing (3DGRT) pipeline.
- [2025/08] Added raytracing (3DGRT) and hybrid rendering (3DGS/3DGRT) pipelines + 3DGRT dataset.
- [2025/08] Added compositing with meshes and project save/load functionality.
- [2025/06] Ported to new NVIDIA DesignWorks nvpro_core2.
- [2025/03] Added new models from 3ds-scan.de. Thanks to Christian Rochner.
- [2025/03] First release with 3DGS rasterization.
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.
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!
[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.
| 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.

