Multi-scale Octree Surfel Maps
- Multi-scale Octree Surfel Maps are a hierarchical spatial representation that organizes planar surfels within an octree to capture varying geometric resolutions for 3D mapping and rendering.
- They employ statistical accumulation and incremental update schemes to achieve robust LiDAR-Inertial odometry and efficient texture-preserving compression.
- The system optimizes spatial queries and rendering through multi-scale association, loop closure, and MAP estimation, leading to improved accuracy and lower bitrates compared to traditional methods.
Multi-scale octree surfel maps provide a hierarchical, surface-oriented spatial representation that blends efficient storage, multi-resolution processing, and robust geometric abstraction for 3D mapping, rendering, odometry, and compression. In these approaches, surfels—disk-like local approximations to surfaces—are organized within an octree, with varying spatial granularities corresponding to different levels in the tree. Two primary and distinct paradigms—real-time mapping for Lidar-Inertial Odometry (SLICT) (Nguyen et al., 2022) and 3D content compression/streaming (TeSO) (Hu et al., 9 Aug 2025)—define the current frontier.
1. Hierarchical Octree Organization
At the foundation, the multi-scale surfel map uses an octree, a tree data structure in which each node corresponds to a cubic voxel at a particular scale. The root node represents the coarsest spatial granularity, with child nodes recursively subdividing space into finer voxels.
In SLICT (Nguyen et al., 2022), each node at depth maps to a voxel of size , with leaves corresponding to the finest resolution . Each node contains a single surfel aggregating all 3D points historically mapped to its cubic volume.
In TeSO (Hu et al., 9 Aug 2025), the octree is pruned so that leaf nodes represent those cubes for which a planar surfel yields an approximation error below an explicit threshold (measured via D1-PSNR). Nodes at different levels, , correspond to cube sizes , where is the root edge length, enabling a wide range of granularity. Pruning is data-driven: only subdivide when a cube cannot be accurately modeled by a single planar surfel.
2. Surfel Representation and Statistical Accumulation
A surfel is canonically parameterized as a local planar patch:
- Center position
- Oriented normal ,
- Radius of influence 0
- Additional attributes (e.g., planarity, color/texture, statistics)
SLICT computes surfel attributes for each node 1 using cumulative statistics of contained points 2:
- 3
- First-order moment 4
- Second-order (corrected) moment 5
- Mean: 6
- Covariance: 7
- Surface normal: 8 (eigenvector of smallest variance)
- Planarity: 9
TeSO constructs each surfel 0 at a given octree leaf as:
- 1: mean position of member points within the cubic voxel
- 2: mean of normals, normalized
- 3: maximum Euclidean distance from 4 to any member point
For texture, each surfel receives an 5 grid of RGB values built as a local planar projection with interpolation from nearest original points.
3. Incremental Construction and Efficient Operations
Incremental Update (SLICT): Surfels and their statistics are updated as new points arrive using Welford’s algorithm. Merging two child nodes 6 into a parent 7 involves:
- 8
- 9
- 0
- 1
Propagation proceeds up the tree, enabling efficient, on-the-fly updates for point insertion or removal in 2 time.
Construction (TeSO): The surfel octree is assembled via a multi-pass, coarse-to-fine grouping. At each candidate level 3:
- Points are partitioned into non-empty cubes.
- For each cube, fit a candidate surfel and evaluate error (D1-PSNR).
- If error is below threshold 4 (or at maximum level), record the surfel and remove points from subsequent passes.
- Otherwise, points are considered at a finer level in the next pass.
This most-to-least coarse sweep yields a sparse set of locally planar surfels at the minimal necessary resolution, greatly reducing primitive count relative to grid-aligned representations.
4. Multi-Scale Association, Map Query, and Rendering
Point-to-Surfel Association (SLICT):
- Given a query point 5, search across octree nodes at relevant depths 6 for which the node’s cube intersects 7.
- Surfel is eligible if 8 and 9.
- Accept if signed point-to-plane distance 0, where 1.
Rendering (TeSO):
- For each surfel, a disk of radius 2 in the tangent plane is rendered, with a “soft” 3-halo of width 4 to eliminate cracks.
- Texture mapping is performed by projecting pixel grid samples through the local surfel frame into RGB via nearest neighbor interpolation from original point cloud data.
- Ray–surfel intersection follows: solve for 5, where 6 is the ray origin and 7 the direction.
5. Optimization, Loop Closure, and MAP Estimation
SLICT’s Complete Framework:
- Maintains continuous-time odometry through joint optimization over sequence of discrete “key states” and IMU preintegration in a sliding window.
- The residual for each LiDAR-IMU correspondence uses temporally interpolated pose and surfel association.
- MAP objective couples IMU and surfel association terms:
8
- Loop closure iteratively builds pose-graph constraints from rigid body ICP between temporally distant revisits; pose-graph optimization over the stack of odometry and loop edges (Nguyen et al., 2022).
6. Compression and Entropy Coding
TeSO Compression Pipeline:
- Geometry quantization: cube-local offset, normal (octahedral encoding), and radius quantized per level.
- Base octree occupancy: entropy coded with G-PCC for coarse levels.
- Learned entropy models (3D sparse-conv nets) contextually predict occupancy, split flags, and surfel attributes for finer octree levels, minimizing the cross-entropy loss.
9
- Texture codes either as a single Morton-ordered 2D atlas (compressed with AV1) or using G-PCC color for each surfel’s texels.
- TeSO achieves encoding rates for 1M points 00.3 sec (GEFORCE RTX4080), decoding times: geometry—0.7s (learned model), texture AV1—0.3s.
7. Computational Analysis and Application Contexts
| System | Insertion/Removal Complexity | Query Complexity | Distinctive Features |
|---|---|---|---|
| SLICT | 1 | 2 (multi-scale) | Real-time LiDAR-Inertial odometry, robustness via multi-scale PTS, loop closure, bundle adjustment (Nguyen et al., 2022) |
| TeSO | Pass over all points per level; parallelizable | 3 (rendering) | High-fidelity streaming, compact 3D encoding, texture-preserving planar surfels, real-time decoding (Hu et al., 9 Aug 2025) |
SLICT demonstrates that multi-scale association boosts odometry in degenerate environments, improving Absolute Trajectory Error by up to 4 over single-scale direct methods at a moderate computational overhead (165 ms per cycle vs. 100 ms LiDAR arrival). TeSO delivers 30–50% better bitrates for the same perceptual quality (LPIPS) compared to G-PCC and 3D Gaussian baselines, with real-time decoding feasible on modern GPUs and precise control of rate-distortion through the surfel error threshold.
This suggests that the fusion of multi-scale spatial hierarchy and local surface approximation accommodates both production-grade mapping and high-performance 3D media streaming, illustrating the flexibility of octree surfel abstractions in contemporary 3D data systems.
References
- "SLICT: Multi-input Multi-scale Surfel-Based Lidar-Inertial Continuous-Time Odometry and Mapping" (Nguyen et al., 2022)
- "TeSO: Representing and Compressing 3D Point Cloud Scenes with Textured Surfel Octree" (Hu et al., 9 Aug 2025)