SLAM · Registration · Rust
mapr: a Rust library for 3D mapping and reconstruction
An independent R&D codebase for RGB-D SLAM (mapping from color-plus-depth cameras), point-cloud registration, pose-graph optimization, and surfel-based reconstruction — surfaces built from small oriented disks rather than a mesh.
Challenge
Reconstruction work keeps returning to the same underlying ideas — camera models, ICP, pose graphs, surfels — but they usually live tangled inside application code, difficult to test in isolation and impossible to reuse.
Response
Designed a modular Rust workspace with reusable APIs for camera models, frames, point clouds, registration, optimization, and CPU/GPU computation. Implemented generic pose-graph optimization with measurement uncertainty carried correctly between reference frames via the SE(3) adjoint; bundle adjustment, the joint refinement of every pose and point at once, made tractable by exploiting the problem's sparse block structure through a Schur complement; outlier handling by robust losses under graduated non-convexity (start forgiving, progressively tighten); surfel fusion weighted by each measurement's uncertainty; and compute-kernels shared between CPU and GPU, cross-compiled to SPIR-V, the portable GPU bytecode.
Outcome
A library where the underlying geometry is explicit, testable, and reusable — nearly 800 tests and CI on stable Rust, validated against public and synthetic datasets.