โ† Back to all work

Acquisition ยท Structured light ยท Rust

Structured-light scanner runtime

A Rust-based acquisition runtime for a structured-light 3D imaging system โ€” depth measured by projecting known light patterns and watching how the scene deforms them.

Challenge

The existing C++ stack made timing, state, and failure behavior hard to reason about across a hardware-sensitive scanning pipeline.

Contribution

Rebuilt the driver and runtime as a transport-agnostic Rust architecture: a trait-based USB layer supporting multiple backends, an async/sync hybrid streaming design with dedicated USB reader threads bridging into an async pipeline, real-time frame reassembly and pattern decoding, and a validated state machine that turns illegal state transitions into compile-time errors.

Outcome

Sustained ~67 MB/s streaming with the full processing pipeline at ~45 fps against the scanner's 27 fps requirement โ€” a debuggable, cross-platform foundation where new scanner variants plug in without core rewrites.

Client work is described at a technical, client-agnostic level.