Skip to main content

3DGS.cpp

v0.1.0

Cross-platform high-performance 3D Gaussian Splatting renderer written in C++ with Vulkan Compute for real-time viewing on any GPU vendor

Gaussian SplattingNeural
C++/Vulkan
MIT
Active
GPU: Vulkan
Stars
1.0k
Latest Release0.1.0
Release DateMar 2024
Contributors10
Forks70
At a Glance
Technique
Gaussian Splatting, Neural
Language
C++/Vulkan
License
MIT
Platforms
Linux
macOS
Windows
GPU Support
Yes (Vulkan)
CPU Support
No
Scene Formats
PLY
Output Formats
PNG
First Release
Oct 2023
Latest Release
0.1.0 — Mar 2024
Best For
Viewing pre-trained Gaussian Splatting models on non-NVIDIA hardware, deploying 3DGS viewers in cross-platform applications, and developers needing a C++/Vulkan-based 3DGS rendering library

Development Activity

Commit activity data is not available for this renderer.

1.0k
Stars
0.1.0
2 years ago
10
Contributors
View on GitHub

Overview

Best for

Viewing pre-trained Gaussian Splatting models on non-NVIDIA hardware, deploying 3DGS viewers in cross-platform applications, and developers needing a C++/Vulkan-based 3DGS rendering library

Not ideal for

Training Gaussian Splatting models, NeRF workflows, tasks requiring Python or PyTorch integration, or rendering on hardware without Vulkan support

Strengths

  • Cross-platform GPU support via Vulkan — runs on NVIDIA, AMD, Intel, and Apple Silicon GPUs, making it the most hardware-portable 3DGS viewer available
  • Pure C++ implementation without Python or CUDA dependency makes deployment simpler and the binary smaller than PyTorch-based alternatives
  • Real-time rendering performance competitive with CUDA-based viewers on equivalent hardware
  • Can load standard PLY files from any 3DGS training framework (INRIA, gsplat, Nerfstudio), serving as a universal viewer for the Gaussian Splatting ecosystem
  • MIT license and clean C++ codebase make it suitable for integration into custom applications and commercial products

Limitations

  • Viewer only — does not include 3DGS training, so users must train models with separate CUDA-based tools before viewing
  • Vulkan dependency requires relatively modern GPU drivers and does not work on older hardware without Vulkan support
  • Smaller community and less documentation than the original INRIA implementation or Nerfstudio
  • May not support all variants and extensions of 3DGS (anti-aliased 3DGS, 2DGS, etc.) that specialized training frameworks produce
  • No built-in video or batch image export pipeline — primarily designed for interactive viewing sessions

Background

3DGS.cpp is a C++ implementation of 3D Gaussian Splatting rendering that uses Vulkan Compute shaders for the splatting pipeline, making it one of the only 3DGS viewers capable of running on non-NVIDIA hardware. While the vast majority of Gaussian Splatting tools require CUDA and are limited to NVIDIA GPUs, 3DGS.cpp leverages the cross-platform Vulkan API to support NVIDIA, AMD, Intel, and Apple Silicon GPUs (via MoltenVK on macOS).

Designed primarily as a real-time viewer for pre-trained Gaussian Splatting models, 3DGS.cpp loads standard PLY files exported by the original INRIA implementation, gsplat, Nerfstudio, and other training frameworks. The Vulkan Compute-based sorting and rendering pipeline delivers performance competitive with CUDA-based viewers on equivalent hardware. The implementation focuses on rendering quality and interactivity rather than training — it does not include 3DGS optimization or training capabilities.

3DGS.cpp fills a critical gap in the Gaussian Splatting ecosystem. The CUDA requirement of most 3DGS tools has been a significant barrier for researchers and developers with AMD or Apple hardware. By providing a portable, high-performance viewer with a clean C++ codebase and MIT license, 3DGS.cpp enables broader adoption of Gaussian Splatting technology and serves as a foundation for integrating 3DGS viewing into custom applications and products that need cross-platform GPU support.

Quick Start

git clone https://github.com/shg8/3DGS.cpp && cd 3DGS.cpp && cmake -B build && cmake --build build

Community & Resources

Tutorials & Resources

Performance Benchmarks

No benchmark data available for 3DGS.cpp yet.

Benchmarks will be added as more renderers are tested across our standard scene suite.

Learn about our methodology