EXP-062 · live demoGet your site captured →
Site Progress · one drone pass, every plot

A housing site from one flight, plot by plot.

A 44-second drone pass over a new-build housing site, rebuilt as a 3D model you can fly around. Every plot the detector found is pinned where it stands and coloured by how far it has got: foundations, slab, structure going up, or roofed.

Plots roofed–
Drone video
Loading the site…

Stages by
Show
Layers

This flight

What the pass shows

How we built it

From a drone clip to a plot-by-plot map

  1. Solve the flight

    131 frames, three a second. COLMAP matches features between neighbouring frames and GLOMAP solves where the drone was for every one: all 131 placed, 82,582 points on the ground and buildings.

  2. Rebuild the site

    LichtFeld Studio trains a Gaussian splat from the same frames: 1.5 million splats in under six minutes on one RTX 4070, 21 MB compressed for the browser.

  3. Find every plot

    Grounding DINO searches each frame twice, for houses and for slabs, foundations and frames. Each box is placed in 3D by the solved points inside it, and boxes from different frames that land on the same spot become one plot: 3,152 boxes, 120 places, each seen in at least three frames.

  4. Say how far each plot has got

    Qwen3-VL-4B, a vision model running on the same machine, looks at each plot's best photo. Asked to pick one of five stages it called nearly every finished house "structure", so it is now asked one plain question first, is the roof finished and tiled, and only picks a stage when the answer is no. That reading matches the eye labels on 81% of plots (77% of the held-out half), where calling everything "roofed" scores 70% (68%). Three smaller models before it did no better than that shortcut. Eye labels are shown by default; switch to "AI model" to see its reading.

  5. Read the ground and plan routes

    COLMAP multi-view stereo turns the frames into 1.36 million dense points, binned into a height map of roughly 0.9 m squares. Parked cars set the scale, and roofed houses then stand 6.4 m tall, as they should. Grounding DINO finds machines, material stacks and vehicles, each checked by eye; Qwen3-VL reads the ground in 921 squares of about 6 m. Fixed rules turn height, drops, surface and a 5 m zone around each machine into walkable, caution or blocked, and routes are found across that map.

  6. Ask Gemini what it sees

    One real frame goes to Google's Gemini API: Gemini 3 Pro Image imagines the view before building and when finished, and Gemini 3.8 Flash returns a structured read of the site with boxes and routes in image coordinates. Every box was checked by eye against the photo; the imagined views are shown as imaginings, not plans.

Limits

  • One flight is one moment. The build sequence animation orders plots by stage, which reads as time but is not a timelapse: a real progress record needs repeat flights.
  • Metres rest on parked cars taken as 4.4 m long; the five cars disagree by about ±20%, so treat sizes and distances as rough.
  • The walk map is a planning sketch of one moment, not a safety sign-off: machines move and trenches are dug and filled. Ground the drone never saw is left out, never assumed safe.
  • Two detectors failed and are not used: "site cabin" found 84 things, 3 of them real (it took houses and slabs for cabins), and "spoil heap" 5, 1 real.
  • 7 of the 120 places the detector found are not house plots (site cabins, stacks of insulation boards, a sign, a mound); they are shown grey.
  • The AI reading still calls 12 of 84 finished houses "structure" (mostly far-off or half-hidden roofs), and it never recognised a site cabin or a material stack as not being a plot.
  • Telling a tiled house with an unfinished garden from a finished one needs a closer look than these frames give, so both count as roofed.