← Back to the scanner case study
Reconstruction · SLAM · Graph optimization
Resilient graph-based reconstruction
Keeping a scan usable when tracking breaks, and refining the recorded surface afterward. The work combines geometry-based tracking, trajectory correction, and a library delivered for client evaluation.
Continuing after tracking loss
An intraoral scanner sees only a small patch of teeth at a time. A quick hand movement or a lift away from the surface can break tracking; returning to the mouth may put it somewhere else entirely. Teeth resemble one another, wet enamel offers little texture, and the surrounding tissue moves.
I developed reconstruction software that can continue as separate fragments and reconnect them when it finds overlapping geometry. The offline refinement engine was delivered as a library for the client to evaluate on its own decoded frames and starting poses.
Keeping the observations available
The reconstruction keeps relationships between observations in a graph. Frame registration estimates local motion; the backend uses revisits to correct accumulated drift. Those relationships remain available for later refinement.
Replay against reference data also changed a design decision. A consistency filter was rejecting the long-range matches that would have corrected the drift, because it judged them against the already-drifted trajectory. I replaced that check with a gate based on the fraction of surface points that agreed.
Surface refinement: the recorded result
In the July 2026 evaluation, the median surface deviation was 18.6 µm on 18 stone-model recordings. This is the median of each scan's median point-to-reference distance. The study fed the refiner the client's decoded frames and starting poses, isolating the refinement stage from differences in acquisition and tracking.
The same scorer aligned each output to its reference mesh and measured absolute closest-point distances within a 0.5 mm band. Each table entry below is a median across scans:
| Surface statistic | Stone · 18 scans | Zirconia · 8 scans |
|---|---|---|
| Median point distance | 18.6 µm | 27.1 µm |
| Mean point distance | 41.2 µm | 45.8 µm |
| Mean after standard outlier removal | 26.2 µm | 32.6 µm |
The mean is also reported after standard outlier removal. The point median uses the full in-band distribution. Reporting all three makes the effect of the error tail visible.
Both reference meshes cover the teeth. Each reconstructed surface was aligned to its corresponding reference and scored using the same method.
Trajectory correction: a separate measurement
An August 2026 reconstruction evaluation measured estimated camera positions against per-frame reference poses fitted to the ground-truth mesh and checked for supporting evidence. After best-fit rigid alignment, it measured position differences on frames shared by both pose tables. These references are derived from the recorded geometry.
| Trajectory statistic · 18 scans | Result |
|---|---|
| Median of per-scan median position errors | 0.305 mm |
| 90th percentile of per-scan median errors | 0.594 mm |
| Largest per-scan median error | 0.765 mm |
The rounded 0.31 mm result describes trajectory agreement. The surface table describes the reconstructed shape. Keeping these measurements separate helps locate whether a change affected tracking, refinement, or both.
Where the computation goes
A June 2026 replay of one stone-model recording reduced cumulative pose-graph optimization time from approximately 16 s to 1.6 s, while preserving trajectory error at approximately 0.7 mm in that comparison. This measured the optimization stage across the recording.
The change used a sparse direct solver, reused the factorization structure, cached each edge's uncertainty transformation, and avoided rebuilding the same sparsity pattern for each residual component. Later solver comparisons continued to check corpus accuracy alongside median and worst-case solve times.
Client work for E4D Technologies, now Planmeca, described at a technical level. References are available on request.