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
- Record a model growing live in the viewer; no such recording exists yet.
- Finish the draft paper and submit it to a 3D-vision or robotics workshop.
- 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.
| Measure | Result | Note | Source |
|---|---|---|---|
| Benchmark scale | 108 runs | 36 datasets, three runs each. | bench/NEW_r2a, NEW_r2b, NEW_r2c.json |
| Live delay under one second | 34 of 36 datasets | 95th percentile, median of three runs. Two datasets are over one second. | bench/NEW_r2*.json |
| Live delay, full range | 0.18–1.69 s | Median 0.47 s. | bench/NEW_r2*.json |
| Camera-path error, TUM long_office | 0.08% | bench/NEW_r2*.json | |
| Camera-path error, Newer College | 0.13% | bench/NEW_r2*.json | |
| Camera-path error, TUM fr1_desk | 0.21% | bench/NEW_r2*.json | |
| Camera-path error, EuRoC V1_01 | 0.52% | bench/NEW_r2*.json | |
| Camera-path error, KITTI 07 | 1.05% | bench/NEW_r2*.json | |
| Surface accuracy, median | 43.1% | F-score at 5 cm over the 18 datasets with ground truth. | bench/NEW_r2*.json |
| Surface accuracy, range | 2.0–70.7% | Best: 70.7% (TUM long_office) and 70.6% (TUM fr1_desk). | bench/NEW_r2*.json |
| Confidence calibration | 16 of 18 scenes | Scenes where the 95% band holds. Before the second round of work: 0 of 18. | L1_ROUND2_REPORT.md, section 1 |
| Street test, live delay | 0.29 s median, 0.86 s at the 95th percentile | A 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 check | people −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 walks | about 13–17% | A limit the project measured itself, on KITTI and Newer College. | Project audit, November 2026 |
| Street model, doubled surfaces | 14.7% | A limit the project measured itself. | Project audit, November 2026 |
| Street model, not yet understood | 18–24% | Share of the surface the labeling step could not name. | Project audit, November 2026 |
| Face-blur recall | 96.2% | Faces of at least 24 pixels. | L0_capture/research/test_privacy.json |
| Number-plate blur recall | 94.5% | Strict matching. The project's own target was 95%. | L0_capture/research/test_privacy.json |
| Capture-guidance alert latency | 0.012–0.228 s | 0 false alarms. | L0_capture/research/test_guidance.json |
| Browser frame delay, 95th percentile | 12.5 ms and 53.4 ms | WebSocket and WebRTC, with 0% of frames lost. | L0_capture/research/test_browser.json |
| Zero-shot material recognition | 93.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
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.

Live view at about three minutes. Reconstructed from a public walking video; the camera-feed inset has been cropped out. 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.

Live view at about eight minutes. Reconstructed from a public walking video; the camera-feed inset has been cropped out. 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".

The final street model from above, with the camera path in red. Reconstructed from a public walking video, not from original footage. 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.

The live path and the final camera path for the street test.
Exhibit 03 · Gallery
Diagrams, renders and charts

The final model of a synthetic test room in the viewer. 
Scene understanding on a 21-second indoor capture, shown as flat class colors. The 3.6% left not yet understood is an indoor figure; the street model is at 18 to 24%. 
The two lanes: live while the camera moves, final after it stops. The 0.83 s printed for the street walk is from a second run; the audited run measured 0.86 s. 
How a suspected loop is checked before the map is allowed to move. 
Round 2 against round 1 on the 36-dataset benchmark. One dataset shown is still above one second, at 1.33 s. The chart's own footnote says part of the live-delay gain came from the GPU being free during round 2. 
Class shares in three sessions. The 2.8% not yet understood belongs to a 23-second clip; the 12-minute street model is at 18.1% in this run, and 18 to 24% across runs. 
The capture page a phone opens to start streaming.
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


One question
The answer is on this page. Get it right and it goes in your passport on the map.
Challenge· stamped
Live3D was benchmarked on 36 datasets. On how many does the live model stay less than one second behind the camera?
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).
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