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.