RTG-SLAM
Peng 2024 · Paper
One-line summary — Real-time Gaussian SLAM (SIGGRAPH 2024) scales 3DGS reconstruction to large scenes with a compact binary-opacity Gaussian representation, surfel-style depth rendering, and an on-the-fly scheme that optimises only unstable Gaussians and renders only their pixels.
Problem
Early 3DGS SLAM systems optimised every Gaussian and rendered every pixel each frame, so cost grows with map size — the fastest concurrent Gaussian SLAM reported 8.34 fps on synthetic Replica, and none showed complete real large scenes. Vanilla 3DGS also fits surfaces with many overlapping semi-transparent Gaussians, wasteful in memory and compute. RTG-SLAM is “a real-time 3D reconstruction system with an RGBD camera for large-scale environments using Gaussian splatting”, built so that per-frame cost tracks change, not map size.
Method & architecture
Each Gaussian carries position , covariance (scale + quaternion ), opacity and SH coefficients, and is additionally treated as an ellipsoid disc (surfel) with normal , confidence count and timestamp . Opacity is fixed at creation: opaque (, fits surface and dominant colour) or nearly transparent (, fits residual colour) — no deep alpha-compositing stacks.
- Colour vs depth rendering: colour uses standard alpha-blending with , plus a light-transmission map . Depth is rendered differently: the first opaque Gaussian along the ray with is treated as a disc, and the pixel depth comes from the ray-plane intersection
which is fully differentiable and lets a single opaque Gaussian fit a local surface patch alone. Normal and index maps fall out of the same pass.
- Targeted Gaussian adding: per frame, masks pick pixels needing geometry, where transmission (newly observed) or (depth error), and where only colour error exceeds ; 5% of masked pixels are sampled. pixels spawn opaque Gaussians; pixels spawn small transparent ones only if their existing opaque Gaussian is already stable.
- Stable/unstable optimisation: Gaussians with confidence are stable and frozen; “we only optimize the unstable Gaussians and only render the pixels occupied by unstable Gaussians”, using ( colour/depth losses; pins transparent Gaussians’ geometry; , ). Optimised windows are fused with previous state by weighted averaging to avoid forgetting; stable Gaussians with repeated errors revert to unstable, and long-term unstable ones are deleted as outliers.
- Tracking: classical frame-to-model ICP against the rendered depth/normal maps, minimising the point-to-plane error with multi-level ICP, plus an ORB-SLAM2-style landmark/pose-graph back-end; keyframes (every 30° or 0.3 m) trigger global optimisation of the top-40%-error pixels.
Results
On an i9-13900KF + RTX 4090, with an Azure Kinect for live scanning:
- Real large scenes: corridor, storeroom, hotel room, home, office (43–100 m²) reconstructed live at around 16 fps. On the ~70 m² home scene: 17.9 fps and 8.8 GB memory vs Co-SLAM’s 8.65 fps / 17.3 GB (“around twice the speed and half the memory cost” of SOTA NeRF SLAM); SplaTAM manages 0.31 fps and runs out of memory, using 7,155,880 Gaussians before OOM vs RTG-SLAM’s 987,524.
- Replica office0 throughput: 17.24 FPS overall; tracking 0.02 s/frame, mapping 3.5 ms/iteration, 2751 MB peak — roughly 46x SplaTAM’s reconstruction speed.
- TUM ATE RMSE: 1.66 / 0.38 / 1.13 cm (fr1_desk / fr2_xyz / fr3_office), avg 1.06 cm — beating ESLAM (2.11), Point-SLAM (2.38), SplaTAM (3.39) and close to ORB-SLAM2 (1.00).
- ScanNet++ geometry (GT poses): accuracy 0.95 cm / completion 1.11 cm, better than SplaTAM (1.32/1.54) and every NeRF method except Point-SLAM (which consumes ground-truth depth for sampling).
- Ablations show compact Gaussians need far fewer primitives for the same depth accuracy than alpha-blended depth, and that opaque-only maps suffer colour errors from new views without the transparent residual layer.
Why it matters for SLAM
RTG-SLAM showed how to make Gaussian SLAM computation proportional to what changed rather than to map size — the same insight that made classical large-scale SLAM tractable (local BA, covisibility windows), translated to the splatting era via KinectFusion-style ICP tracking and surfel-style confidence bookkeeping. Its stable/unstable state management and disc-based depth rendering became reference designs for scaling Gaussian SLAM to real buildings and real robots.