A SOFA framework plugin for real-time rendering of 3D reconstructed objects using Gaussian Splatting.
Sofa.PointCloud is a plugin for the SOFA Framework, dedicated to interactive physical simulation and visualization.
It enables the loading, manipulation, and rendering of 3D point clouds (e.g., from 3D reconstruction or scanning) using a Gaussian Splatting rendering approach — providing smooth and high-quality visualization of dense, unstructured point data.
This plugin integrates seamlessly into SOFA scenes and can be combined with other simulation or visualization components.
- Load point cloud files (
.ply, files) - Real-time rendering using Gaussian Splatting:
- Integrated with the SOFA rendering pipeline and scenes.
- Compatible with existing SOFA camera and lighting systems
- SOFA Framework at master
- OpenGL / GLSL ≥ 4.3 (for Gaussian Splat shaders)
- Eigen (for geometric and linear algebra operations)
- (submodule) Liteviz-gz (OpenGL renderering)
- (submodule) graphdeco-differentiable-renderer (Experimental CUDA rendering)
The plugin is in developement so it should compile with the master version of SOFA. Tested on Sofa.Qt runSOFA version as well as runSOFAGFLW. If you use SofaGFLWImGUI, you need to merge this bugfix: sofa-framework/SofaGLFW#245
git clone --recurse-submodules https://github.com/<user>/Sofa.PointCloud.git
cd Sofa.PointCloudIf you already cloned the repository without submodules, initialize them manually:
git submodule update --init --recursive### 3. Compilation Add the plugin in your existing compilation workflow and compile it.
Add the SOFA_DATA_PATH=PATH_TO_THE_ASSETS_DIRECTORY so the shaders and .ply files are found. Go to the example and run them.
