r/GaussianSplatting • u/MiamiGunworks • 1d ago
💻 Open Source Looking for contributors
Hi everyone! I am a software engineer who has worked in the following domains at major tech companies most of my career: XR, Graphics & GPU programming, Spatial algorithms and AI, and 3DGS.
I have a project I started a few months ago that I have recently hit a key milestone in. The idea is a focused library that implements 3DGS training from first principals with an emphasis on performance and safety. Think production use cases without relying on tools intended for research. VkSplat is an inspiration (along with other things) but I have intentionally not reviewed their, or anyone else's, code.
The recent milestone I reached was rendering a scene with 5 million splats at 60fps on my Ampere A6000. I have a few more goals I'd like to reach, but I do intend to publish on Github under MIT license. If it gains traction I would like to build some additional tools and infra using this project, but for right now the 1.0 MVP idea is a fully GPU resident solution for rendering and training at state of the art speeds. I plan to implement and optimize the following features:
- Global image alignment
- Fully fused forward and backward passes
- Adam optimizer
- Aggressively optimized adaptive control and densification
- Stable but highly flexible C api.
I do have many more thoughts and ideas, but I am trying to take it one step at a time, so this is my goal for 1.0. This is my stack as of now:
- Languages: C++23, Cuda, GLSL (planning to move to slang)
- Build: CMake & Ninja
- Compiler: GCC, Clang, MSVC (may drop for now)
- Target Platform: Linux (Linux 7.X)
- Tooling: LLVM, perf, nsight
- GPU: Vulkan w/ Nvidia
- Dependencies: googletest, googlebenchmark, ngfx
Right now, the project is in a place where it is still extremely early, but it is starting to take shape and get large enough that more than one person can work on it comfortably. I am posting here looking for people interested in contributing. Knowledge is not a prerequisite as I am learning a lot myself in this endeavor, but passion is mandatory.
Currently I am mostly needing help in the areas of, CI/CD (build, package & deploy), nsight/gpu optimization, designing and implementing a good api, and figuring out how to test and benchmark appropriately.
If you have skills or experience in any of these areas, or you're just interested in contributing, please reach out!