A lightweight radiance field renderer and training platform client that supports flexible editing tools for editing and cropping trained Gaussian splats for export, as well as rendering them to images or videos.
It originated from a 2023 paper gaussian-splatting. Initially, it was created for learning purposes to implement this paper in C++, aiming to build a real-time visualization training tool similar to instantngp. After the emergence of SuperSplat, I was inspired to expand its functionality. After 2 years of spare time development, it has now become a comprehensive and practical tool.
- UserGuide user documentation
Note: Please ensure you update to the latest graphics card driver, otherwise there may be some issues.
Explanation: The current program consists of 2 parts: the training part and the rendering/editing part. These two parts are relatively independent and decoupled. Currently, the open-source code includes the rendering and editing part, which is written using Vulkan and C++, meaning it can be compiled and run on multiple platforms. The training part is implemented using libtorch C++ and CUDA, which requires running on NVIDIA graphics cards. Although CUDA can be run on AMD graphics cards through the AMD HIP technology framework, this requires additional development time and will be completed in the future.
Operating systems:
- Windows
- Mac (Will be in future)
- Linux (Will be in future)
Note: Currently refactoring a new framework to support multi-platform training, planned to be named RadField Studio. It will become a professional scanning tool for CG workflows. Stay tuned!
| Directory | Details |
|---|---|
| /diverse | the core rendering lib including render lib an other useful function |
| /application/editor | the editor exe, main program |
| /application/diverseshot-cli | gsplat training console exe |
| /external | external lib |
git clone https://github.com/fenghuayumo/DIVSHOT.git
git submodule update --init --recursive
you should install compile build tools and package firstly
- VS2022
- Cuda SDK
- Vulkan SDK
- CMake
Then, Running Scripts/GenerateVS.bat to generate a visual studio project, you can select divshot as startup project. You must select "Release" or "Production" option to compile, as several libraries do not currently have debug version builds provided. Selecting the Debug option will result in compilation errors.
- imgui : Dear ImGui: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies.
- imguizmo : Immediate mode 3D gizmo for scene editing and other controls based on Dear Imgui.
- entt : Fast and reliable entity-component system (ECS)
- glfw : A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input.
- spdlog : Fast C++ logging library.
- stb : Single-file public domain (or MIT licensed) libraries for C/C++.
- tinygltf : Header only C++11 tiny glTF 2.0 library
- tinyobjloader : Tiny but powerful single file wavefront obj loader
- volk : Meta loader for Vulkan API.
- glad : Meta loader for OpenGL API.
- cereal : A C++11 library for serialization
- meshoptimizer : Mesh optimization library that makes meshes smaller and faster to render
- 4d gaussians
- deformable-3d-gaussians
- diff-gaussian-rasterization
- dynamic-3d-gaussians
- ewa splatting
- gaussian-splatting
- making gaussian splats smaller
- spacetime-gaussians
- sugar
- rain-gs
- eagles
- pixelgs
- opgs
- lightgs
- vastgs
- octgs
- sa-gs
- BAGS
- 4dgs
- instantngp