The toolbelt for 3DGS editing and visualization has rapidly expanded over the first half of this year. Now, splatviz, an innovative interactive viewer available on GitHub offers real-time editing and visualization capabilities using a native Python GUI library (imgui). This powerful tool opens up endless possibilities for developers, researchers, and enthusiasts with 3D Gaussian Splatting.
Splatviz enables real-time editing of 3D Gaussian Splatting scenes. By allowing users to directly manipulate objects just before rendering, this means that you can adjust and tweak your scenes on-the-fly, seeing the effects of your changes immediately.
“The main goal is to create an easy-to-use tool that can be applied for debugging and for understanding 3D Gaussian Splatting objects.” - Florian Barthel. Creator of Splatviz.
The Edit Widget is the cornerstone of splatviz's functionality. It allows for real-time editing of the Gaussian Python object during runtime. The code you type in this text area is executed just before the Gaussian object is forwarded to the CUDA renderer, offering unlimited editing capabilities. As long as the provided code is executable, you can type any kind of Python code and even import new libraries. The edit widget also allows you to create new sliders which are directly accessible in your python code cell. This makes it much easier to understand what effect some variables have on the output rendering. Just be careful not to increase the scales of the gaussians too much as you will quickly run out of GPU memory.
There are several other widgets that help extend and customize the experience for each user.
Load Widget: This widget simplifies the process of browsing and loading scenes. Users can filter scenes using keywords and even load multiple scenes for comparative visualization.
Eval Widget: A powerful tool for debugging, the Eval Widget lets users visualize variables in histograms, providing deep insights into the rendering process.
Camera Widget: Offering both Orbit and WASD modes, this widget gives users intuitive control over camera movements, enhancing the navigation and exploration of 3D scenes.
Video Widget: Although still under construction, this widget allows users to create 360° rotation videos of their scenes, adding another layer of versatility to the tool.
Performance Widget: Users can monitor and optimize the performance of their viewer and renderer, ensuring smooth and efficient operation.
Render Widget: This widget allows users to specify rendering resolutions and modes, including RGB, 3D depth, and alpha values.
Save Widget: Saving .ply files or renderings is made easy with this widget, allowing users to preserve their work effortlessly.
You can also add and display different scenes simultaneously in a split-screen view, making this potentially a great tool for researchers wanting to visualize their results to comparable benchmarks and methods. The maximum amount of scenes that can be added at once is only limited by your GPU. Additionally, there are toggles that allow for the immediate visualization of both depth and alpha channels too, adding to the usefulness for researchers.
Setting up splatviz is not too bad. Users can simply clone the repository, create and activate a conda environment, and launch the viewer with a few simple commands that are all listed on the splatviz Github page.
There’s also quite a bit of available presets. For fan’s of Luma AI’s Magic Reveal, it is quite easy to replicate from splatviz.
splatviz is an open-source project, and its developers welcome contributions from the community. Whether you have ideas for new functionalities, design improvements, or user experience enhancements, reach out!
It’s currently available on both Linux and Windows, with the aim of supporting Mac down the road. Visit the splatviz GitHub page to explore this powerful tool and see for yourself how it can transform your 3D visualization and editing workflows.