← 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 statisticStone · 18 scansZirconia · 8 scans
Median point distance18.6 µm27.1 µm
Mean point distance41.2 µm45.8 µm
Mean after standard outlier removal26.2 µm32.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 scansResult
Median of per-scan median position errors0.305 mm
90th percentile of per-scan median errors0.594 mm
Largest per-scan median error0.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.