SfM Load from SfM or File? File Load SfM Data (COLMAP/OpenMVG output) Load Precomputed .splat File Extract 3D Points and Camera Poses Yes Optimize Splats? No Run Gaussian Optimization (NeRF-like) Use raw SfM points Calculate Scale, Opacity, and Color Save to .splat File Start Gazebo Plugin Load Gaussian Splat Data Initialize OpenGL Buffers (VAO, VBO) Upload Splats to GPU Simulation Running? Yes Camera Position Updated? Yes Project Splats to Camera View (Projection Step) Perform Frustum Culling (Remove Out-of-View Splats) Apply Adaptive Density Control (LOD Adjustment) Tile Splats using Differentiable Tile Rasterizer Render Splats with OpenGL Shader Update Simulation in Gazebo Cleanup GPU Buffers Exit Plugin