Inhabit

Phone video → metric 3D reconstruction → a room a robot can explore.

GitHub LinkedIn Website
phone capture to metric 3D reconstruction to a robot walking through the room

The full pipeline in one shot: phone capture → metric 3D reconstruction → a Go2 robot exploring the scanned room at metric scale.

original video left, reconstruction right

Fidelity check on a benchmarked scene (Replica room0): original video (left) and our reconstruction (right), along the same path. Sub-centimetre accuracy against the ground-truth mesh.

Interactive viewers (live)

4 methods + consensus

PGSR · DN-Splatter · MonoSDF · the consensus fusion, aligned in one frame. Toggle to compare.

Open viewer →

Reconstruction vs ground truth

Our reconstruction toggled against the Replica ground-truth mesh (Chamfer 0.62 cm).

Open viewer →

Reference Gaussian splat

The PSNR-32.3 splat (within 0.7 dB of SOTA on this scene).

Open viewer →

Quality vs ground truth (Replica, visibility-culled · cm / F-score@5cm)

MethodAccuracy ↓Completion ↓Chamfer-L1 ↓F-score ↑
PGSR1.137.604.370.898
DN-Splatter0.576.143.360.936
Consensus (ours)1.076.473.770.913

5-scene average. Sub-centimetre accuracy. Full protocol + per-scene table in the repo's docs/BENCHMARK.md.

Chamfer-L1 and F-score bar chart, synthetic and real

Chamfer-L1 (lower is better) and F-score@5cm (higher is better) across the three methods, on the Replica average and on a real iPhone capture.

grid of all five benchmark scenes, input video vs reconstruction

All five benchmark scenes, input video (left) vs reconstruction (right) along the same path. Top: room0, room1, room2; bottom: office0, office1.

And on a real iPhone capture

reconstruction of a real iPhone capture (MuSHRoom coffee_room)

A real handheld iPhone scan (MuSHRoom coffee_room), reconstructed and validated at roughly 2 cm against a Faro laser ground-truth mesh. Rougher than the rendered scenes, as expected for real capture.

A robot moves through it, at metric scale

Go2 quadruped traversing the reconstructed room, fixed camera

A Go2 quadruped traverses the phone-scanned room in Genesis at metric scale (fixed camera, planned path with a trot gait; a kinematic traversal, since physics-driven locomotion needs a trained policy). Rigid-body physics is validated separately: a dropped object rests on the floor within 2 cm. See scripts/genesis/ and docs/PHASE2_GENESIS.md.

Why this matters

Reconstruction is the front half of the loop; the back half is what the metric mesh is for. Because the output is metric and loads as a rigid-body collider, every capture becomes an environment an agent can be trained and tested in. Paired with a physics engine like Genesis, a phone becomes an environment generator.

Code

Repo & full write-up on GitHub — see the repo, docs/ARCHITECTURE.md, and docs/BENCHMARK.md.

Danila Kozlov — AI researcher and operator. Previously a Member of Technical Staff at an AI neolab, leading benchmarking, infrastructure, and multi-agent research. Earlier: Anthropic, Amazon Web Services, and Cisco.

Website · LinkedIn · GitHub