← Yamama Amir

Plate III · Structure from Motion · October 2026

A Demolition on the Dining Table

Seven phone videos, four taped markers, and a 7 cm change measured to within a millimetre.

Monitoring Cities · NYU · Prof. Masoud Ghandehari  |  Agisoft Metashape · Python · QGIS

Stack height drop
7.0 cm (tape 7.1)
Box removed
−15.5 cm
Level of detection
±0.63 mm
Model-to-model fit
0.46 mm

Two of the ways cities change: buildings come down entirely, or they lose a few floors. I wanted to see whether a phone could measure both, so I staged them on a 1 × 0.5 m table: a folded stack of shirts as a mid-rise, a shoebox as a tower, and four taped crosses as survey markers. Between two visits, the top two shirts and the box went away.

Fig. 1 · The scene as Metashape rebuilt it from the video frames, photo texture and all. Drag to orbit, and switch to the second visit at the same angle: the box is gone and the stack is two shirts thinner.

From video to surface

Each visit was filmed in 4K as a low circle, a high circle at 45° and an overhead pass. A script kept the sharpest frame in each half-second window: 102 frames before, 117 after. Every frame that passed the quality check aligned, with a reprojection error of about one pixel.

Sparse cloud of tie points with the camera positions circling the table1 · Cameras & tie points
Dense point cloud of the scene2 · Dense cloud
Untextured mesh of the scene3 · Mesh
Textured 3D model of the scene4 · Texture
Fig. 2 · Both visits through Metashape's pipeline. In the first panel each blue rectangle is one video frame, placed where the phone was. Before: 3.04M points, 2.38M faces; after: 1.78M points, 1.65M faces.

The marker centres were found automatically, by fitting two lines to each tape cross and intersecting them in every frame where it appears. The six tape distances then gave the model its scale, to about 6 mm horizontally and under half a millimetre in height.

Measuring the change

Strip away the photo and what's left is the surface itself. Both visits became a digital surface model on exactly the same 4 mm grid.

Fig. 3 · The same models without the photo, shaded and coloured by height. Switch visits to watch the box disappear and the stack sink. 0 15 cm

Subtracting one surface from the other gives the change. To know what counts as real, I measured the difference on 2,222 cells of table that nobody touched: a mean of −0.25 mm, which puts the 95% level of detection at ±0.63 mm. Against that, the box shows as a uniform 15 cm loss, and at the centre of the stack the surface dropped 7.0 cm; a ruler said 7.1.

Height change map, after minus before: the box in deep orange, the thinned stack in lighter orange Box removed −15.5 cm Stack, centre −7.0 cm Untouched table −0.25 mm
Fig. 4 · Height change, after − before, over the shaded relief of the after surface, and a cross-section through both surfaces. Drag the slider to move the section line across the table. Thin blue slivers are the remaining shirt spreading as the top layers came off: a real change, about 0.24 L. lostgained
Model against tape measure
WhatModelTapeDifference
Stack drop, centre 10 × 10 cm7.0 cm7.1 cm−1.5%
Box height15.4 cm14.7 cm+4%
Box volume removed17.6 L15.2 L+16%1
Clothes volume removed10.8 L≈ 11.8 L−8%
Untouched table−0.25 mm0RMSE 0.32 mm