---
title: Multi-scale Octree Surfel Maps
url: https://www.emergentmind.com/topics/multi-scale-octree-surfel-maps
type: topic
---

# Multi-scale Octree Surfel Maps

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) [2211.03900] and 3D content compression/streaming (TeSO) [2508.07083]—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 [2211.03900], each node at depth $d_i \in \{0,1,\dotsc,D_{\max}\}$ maps to a voxel of size $s_i=2^{d_i} \ell$, with leaves corresponding to the finest resolution $\ell$. Each node contains a single surfel aggregating all 3D points historically mapped to its cubic volume.

In TeSO [2508.07083], the octree is pruned so that leaf nodes represent those cubes for which a planar surfel yields an approximation error below an explicit threshold $\tau$ (measured via D1-PSNR). Nodes at different levels, $l=0,\dots,L$, correspond to cube sizes $b(l) = B/2^l$, where $B$ 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 $p \in \mathbb{R}^3$
- Oriented normal $n \in \mathbb{R}^3$, $\|n\|=1$
- Radius of influence $r \in \mathbb{R}_+$
- Additional attributes (e.g., planarity, color/texture, statistics)

**SLICT** computes surfel attributes for each node $i$ using cumulative statistics of contained points $V_i$:
- $N_i = |V_i|$
- First-order moment $S_i = \sum f_k$
- Second-order (corrected) moment $C_i = \sum f_k f_k^\top - (1/N_i) S_i S_i^\top$
- Mean: $\mu_i = S_i / N_i$
- Covariance: $\Sigma_i = C_i/(N_i-1)$
- Surface normal: $n_i = \nu_0$ (eigenvector of smallest variance)
- Planarity: $\rho_i = 2 (\lambda_1 - \lambda_0) / (\lambda_0 + \lambda_1 + \lambda_2) \in [0,1]$

**TeSO** constructs each surfel $(p, n, r)$ at a given octree leaf as:
- $p$: mean position of member points within the cubic voxel
- $n$: mean of normals, normalized
- $r$: maximum Euclidean distance from $p$ to any member point

For texture, each surfel receives an $M \times M$ 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 $m,n$ into a parent $i$ involves:
- $N_i = N_m + N_n$
- $S_i = S_m + S_n$
- $\delta = S_n/N_n - S_m/N_m$
- $C_i = C_m + C_n + (N_m N_n/(N_m+N_n)) \, \delta \delta^\top$

Propagation proceeds up the tree, enabling efficient, on-the-fly updates for point insertion or removal in $O(\log N)$ time.

**Construction (TeSO)**: The surfel octree is assembled via a multi-pass, coarse-to-fine grouping. At each candidate level $l$:
- Points are partitioned into non-empty cubes.
- For each cube, fit a candidate surfel and evaluate error (D1-PSNR).
- If error is below threshold $\tau$ (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 $f$, search across octree nodes at relevant depths $d_i$ for which the node’s cube intersects $\|f - \text{center}_i\| \le r$.
- Surfel is eligible if $N_i \ge N_{\min}$ and $\rho_i \ge \rho_{\min}$.
- Accept if signed point-to-plane distance $|d_i| \le d_{\max}$, where $d_i = n_i^\top(f - \mu_i)$.
  
**Rendering (TeSO):**
- For each surfel, a disk of radius $r$ in the tangent plane is rendered, with a “soft” $\alpha$-halo of width $\sigma = b(L)$ 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 $t = (n \cdot (P-O))/(n \cdot d)$, where $O$ is the ray origin and $d$ 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:

$$
f(X) = \sum_{m=w}^{k-1} \| r_I(I_m, X_m, X_{m+1}) \|^2_{\Sigma_I} + \sum_{m=w}^{k-1} \sum_{L \in \mathcal{A}_m} \| r_L(f, n_i, \mu_i, s; X_m, X_{m+1}) \|^2_{\sigma_L^2}
$$

- 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 [2211.03900].

## 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.

  $$
  \mathcal{L}_{\rm ent} = \sum_{i \in \text{nodes}} \Big[
    -\sum_{q=1}^{Q_o}1_{\hat o_i=q}\log p(o_i=q)
    -\sum_{q=1}^{Q_n}1_{\hat n_i=q}\log p(n_i=q)
    -\sum_{q=1}^{Q_r}1_{\hat r_i=q}\log p(r_i=q)
  \Big]
  $$

- 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 $\sim$0.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    | $O(\log N)$                 | $O(D_{\max})$ (multi-scale)  | Real-time LiDAR-Inertial odometry, robustness via multi-scale PTS, loop closure, bundle adjustment [2211.03900] |
| TeSO     | Pass over all points per level; parallelizable | $O(\text{#surfels})$ (rendering) | High-fidelity streaming, compact 3D encoding, texture-preserving planar surfels, real-time decoding [2508.07083] |

SLICT demonstrates that multi-scale association boosts odometry in degenerate environments, improving Absolute Trajectory Error by up to $2\times$ 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" [2211.03900]
- "TeSO: Representing and Compressing 3D Point Cloud Scenes with Textured Surfel Octree" [2508.07083]

Source: https://www.emergentmind.com/topics/multi-scale-octree-surfel-maps