No. 01of 22LandmarkResearch

Live 3D reconstruction from any camera

Live3D

A server that takes video from a phone, a drone or a CCTV stream and builds a 3D model of the space live in the browser, then a refined model in real meters that can be measured, walked through and exported. It runs on one Apple Silicon workstation, with no cloud GPU.

When
Sep – Nov 2026
Status
Built

Progress

Progress70%

Capture and 3D reconstruction work end to end and are benchmarked. Scene understanding and asset export are partial; AI completion, correction and multi-session scale are planned.

What comes next

  1. Record a model growing live in the viewer; no such recording exists yet.
  2. Finish the draft paper and submit it to a 3D-vision or robotics workshop.
  3. Build the planned layers: AI completion and multi-session scale.

34 of 36

benchmark datasets with a live delay under one second

95th-percentile delay, median of three runs per dataset. The full range is 0.18 to 1.69 seconds, with a median of 0.47.

Benchmark result files (bench/NEW_r2a, NEW_r2b and NEW_r2c.json)Verified. Backed by a file or public page that has been checked.Benchmark result files (bench/NEW_r2a, NEW_r2b and NEW_r2c.json) — Read in the project audit of 13 November 2026.

108

benchmark runs: 36 datasets, three runs each

Public datasets (TUM, EuRoC, KITTI, Newer College, ETH3D, TUM-VI), synthetic houses and stock clips.

Benchmark result files (bench/NEW_r2a, NEW_r2b and NEW_r2c.json)Verified. Backed by a file or public page that has been checked.Benchmark result files (bench/NEW_r2a, NEW_r2b and NEW_r2c.json) — Read in the project audit of 13 November 2026.

0.08–1.05%

camera-path error on five public sequences

0.08% and 0.21% on two TUM sequences, 0.13% on Newer College, 0.52% on EuRoC V1_01 and 1.05% on KITTI 07.

Benchmark result files (bench/NEW_r2a, NEW_r2b and NEW_r2c.json)Verified. Backed by a file or public page that has been checked.Benchmark result files (bench/NEW_r2a, NEW_r2b and NEW_r2c.json) — Read in the project audit of 13 November 2026.

43.1%

median surface accuracy of the refined model (F-score at 5 cm)

Over the 18 datasets that have ground truth. The range is 2.0% to 70.7%.

Benchmark result files (bench/NEW_r2a, NEW_r2b and NEW_r2c.json)Verified. Backed by a file or public page that has been checked.Benchmark result files (bench/NEW_r2a, NEW_r2b and NEW_r2c.json) — Read in the project audit of 13 November 2026.

16 of 18

scenes where the model's 95% confidence band holds

Before the second round of work it held on 0 of 18.

Round 2 report of the reconstruction layer (L1_ROUND2_REPORT.md, section 1)Verified. Backed by a file or public page that has been checked.Round 2 report of the reconstruction layer (L1_ROUND2_REPORT.md, section 1) — Read in the project audit of 13 November 2026.

0.86s

95th-percentile live delay over a 12-minute street walk

Run on a third-party walking video, about 763 meters. The resulting model has 14.7% doubled surfaces, and 18 to 24% of it is left not yet understood.

Street field-test measurements (brigade_road/measurements.json and RESULTS.md)Verified. Backed by a file or public page that has been checked.Street field-test measurements (brigade_road/measurements.json and RESULTS.md) — Read in the project audit of 13 November 2026.

Exhibit 01 · Scorecard

The benchmark, as the result files give it

Every measured result the audit could trace to a run output, including the weak ones. Pretrained models are used as released; these numbers describe the system built around them.

The benchmark, as the result files give it
MeasureResultNoteSource
Benchmark scale108 runs36 datasets, three runs each.bench/NEW_r2a, NEW_r2b, NEW_r2c.json
Live delay under one second34 of 36 datasets95th percentile, median of three runs. Two datasets are over one second.bench/NEW_r2*.json
Live delay, full range0.18–1.69 sMedian 0.47 s.bench/NEW_r2*.json
Camera-path error, TUM long_office0.08%bench/NEW_r2*.json
Camera-path error, Newer College0.13%bench/NEW_r2*.json
Camera-path error, TUM fr1_desk0.21%bench/NEW_r2*.json
Camera-path error, EuRoC V1_010.52%bench/NEW_r2*.json
Camera-path error, KITTI 071.05%bench/NEW_r2*.json
Surface accuracy, median43.1%F-score at 5 cm over the 18 datasets with ground truth.bench/NEW_r2*.json
Surface accuracy, range2.0–70.7%Best: 70.7% (TUM long_office) and 70.6% (TUM fr1_desk).bench/NEW_r2*.json
Confidence calibration16 of 18 scenesScenes where the 95% band holds. Before the second round of work: 0 of 18.L1_ROUND2_REPORT.md, section 1
Street test, live delay0.29 s median, 0.86 s at the 95th percentileA 12-minute 4K walk, run on a third-party video: 961 keyframes from 3,638 frames, about 763 m, 2 loops verified, 9.8 GB peak live memory.brigade_road/measurements.json, RESULTS.md
Street test, scale checkpeople −14.5%, cars −3.2%A scale check from detected objects: 254 people and 135 cars.brigade_road/measurements.json
Scale drift on long outdoor walksabout 13–17%A limit the project measured itself, on KITTI and Newer College.Project audit, November 2026
Street model, doubled surfaces14.7%A limit the project measured itself.Project audit, November 2026
Street model, not yet understood18–24%Share of the surface the labeling step could not name.Project audit, November 2026
Face-blur recall96.2%Faces of at least 24 pixels.L0_capture/research/test_privacy.json
Number-plate blur recall94.5%Strict matching. The project's own target was 95%.L0_capture/research/test_privacy.json
Capture-guidance alert latency0.012–0.228 s0 false alarms.L0_capture/research/test_guidance.json
Browser frame delay, 95th percentile12.5 ms and 53.4 msWebSocket and WebRTC, with 0% of frames lost.L0_capture/research/test_browser.json
Zero-shot material recognition93.2%SigLIP 2 on 1,000 photos in 10 classes. A zero-shot test, not a trained classifier.testdata/results_fmd.json

Exhibit 02 · Walk-through

A 12-minute street walk becomes a model

  1. Step 01

    Three minutes in

    The live view during the street test. The panel reads 83,180 points from 122 keyframes, and the red line is the camera's path so far. The test ran on a third-party walking video, fed to the engine the way a live camera would be.

    Live3D's live view on a dark background: a sparse cloud of light-colored points forming the rough shape of a street, with a jagged red line through it marking the camera path. A panel reads 83,180 3D points and 122 keyframes.
    Live view at about three minutes. Reconstructed from a public walking video; the camera-feed inset has been cropped out.
  2. Step 02

    Eight minutes in

    355,616 points from 506 keyframes. The street is now one long, curved strip, still being drawn while the video plays.

    The same live view later: the points now form a long curved strip of street with building facades standing up from it. The panel reads 355,616 3D points and 506 keyframes.
    Live view at about eight minutes. Reconstructed from a public walking video; the camera-feed inset has been cropped out.
  3. Step 03

    After the stop

    The final pass rebuilds the whole walk in meters: 961 keyframes from 3,638 frames, about 763 meters, with 2 loops verified. This model is far from clean: 14.7% of its surfaces are doubled, and 18 to 24% of it is left "not yet understood".

    A top-down render of the finished street model on black: a long textured strip running from upper left down to the lower middle, then turning up and to the right, with the camera path drawn along it in red.
    The final street model from above, with the camera path in red. Reconstructed from a public walking video, not from original footage.
  4. Step 04

    Two paths

    Left, the path the live viewer drew during the walk. Right, the camera positions after the final pass. Both are in model meters.

    Two line plots side by side. The left plot, titled live path (what the viewer drew), and the right plot, titled final cameras (stop pass), each show one winding path with start, 25%, 50%, 75% and end marked, on axes in model meters.
    The live path and the final camera path for the street test.

Exhibit 03 · Gallery

Diagrams, renders and charts

01

What it is

Point a camera at a space, whether a phone's browser, an uploaded video, or a drone or CCTV stream, and a 3D model of it grows live in the browser. When recording stops, the server builds a refined model in real meters, saves it to a history, and lets anyone measure it, walk through it, see its surfaces labeled and export it to Blender. Everything runs on one Apple Silicon workstation with no cloud GPU. The pretrained models inside it are used as released. The work is the system around them: verification, refinement, confidence and evaluation.

02

The hard part

A live model has to stay one model. As the camera moves, small errors in its estimated position add up, and when it comes back to a place it has already seen, the map has to notice and pull itself straight without tearing. Live3D checks every suspected loop in layers before trusting it, and only then lets a pose-graph solve move the map. The second difficulty is being honest about depth: every vertex of the final model carries a calibrated confidence, so the model can say where it is unsure.

03

What was built

Capture: a browser page that streams over WebSocket and WebRTC, video upload, and RTSP or RTMP streams for drones and CCTV, with lens calibration, timing and rolling-shutter correction, blur filtering, and blurring of faces and number plates. The engine: metric depth from Depth Anything 3, a keyframe-anchored map, layered loop verification and a Sim(3) pose graph in GTSAM, then a final pass in meters with photo-consistency refinement, TSDF fusion, and a perceptual judge that picks the best model to keep. A preview of scene understanding labels surfaces into 29 classes plus "not yet understood". A viewer measures, walks and exports. About 16,900 lines of Python.

04

What was measured

The benchmark is 36 datasets, three runs each: 108 runs. The 95th-percentile live delay is under one second on 34 of the 36, from 0.18 to 1.69 seconds, with a median of 0.47. Camera-path error is 0.08% and 0.21% on two TUM sequences, 0.13% on Newer College, 0.52% on EuRoC and 1.05% on KITTI. Surface accuracy of the refined model, as F-score at 5 cm, has a median of 43.1% over the 18 datasets with ground truth, and runs from 2.0% to 70.7%. The project also measured its own limits: metric scale drifts by roughly 13 to 17% on long outdoor walks, and the model from a 12-minute street test, which ran on a third-party walking video, has 14.7% doubled surfaces and leaves 18 to 24% "not yet understood".

05

What's next

A screen recording of a model growing live, which would be the best way to show this and does not exist yet. The paper is a draft and has not been submitted anywhere. Of the seven layers in the plan, capture and reconstruction are complete, scene understanding and asset export are partial, and AI completion, correction and multi-session scale are still plans.

Figures

A colored 3D point cloud of a room on a dark background: a brick wall with three abstract posters and a wooden crate. To the right, a row of blue camera outlines joined by a red line shows where the camera moved.
A synthetic test room as a point cloud, with the camera's positions and path. Real rooms appear on this page only as flat class colors.
Layer diagram titled Live3D layer model. L0 Capture and L1 Observed 3D are marked built. L2 Understanding is marked preview and L5 Assets early version. L2.5, L3 AI completion, L4 Correction and L6 Scale are marked planned. Any camera feeds L0; the built layers feed the viewers.
The project's own layer diagram: what is built, what is a preview, and what is only planned.

One question

The answer is on this page. Get it right and it goes in your passport on the map.

Challenge

Live3D was benchmarked on 36 datasets. On how many does the live model stay less than one second behind the camera?

Show the answer

34. 34 of 36. The 95th-percentile live delay runs from 0.18 to 1.69 seconds with a median of 0.47, according to the benchmark result files (108 runs).

Stack
  • Python
  • PyTorch (Apple MPS)
  • Depth Anything 3
  • GTSAM pose graphs
  • Open3D (TSDF)
  • OpenCV
  • MegaLoc, ALIKED and LightGlue
  • EoMT, Mask2Former, SigLIP 2, SAM 3.1
  • FastAPI
  • WebRTC (aiortc)
  • MediaMTX
  • three.js
  • Blender
  • Swift