Guided capture

Shoots one room as a set of pose-stamped frames. The lens is measured on this phone, in this grip, before anything else — every number after that derives from it, so nothing here assumes a camera.

This room

Not optional. The layout model returns metric room dimensions only by assuming a 1.6 m camera height; the measured value is what lets that scale be corrected, and it is the cheapest route to real-world scale for the whole pipeline.

This phone

Secure context—
Orientation—
Absolute heading—
Update rate—
Rate and arc sensors—
Camera—
Frame clock—

An ultra-wide, where the phone has one, is the single biggest lever on how long this takes — roughly 15 shots against 38.

Lens measured

Solved from the rotation the sensors reported and the distance the image actually moved. Everything downstream — the number of shots, the reticle, the blur budget — comes off these numbers.

—
Horizontal field of view—
Vertical, from the frame shape—
Focal length—
Windows used—
Spread across them—
Off-axis correction—
Image-shift direction—
Shots this implies—
Rings—

Arc check — optional, 20 seconds

Sweeping the phone at arm's length moves the lens through an arc, and parallax between neighbouring frames is the one thing a stitcher cannot reconcile. This phone reports no camera translation, so the arc is measured from its centripetal acceleration instead. That substitution is untested on hardware — this check is how it gets tested, by giving it two cases it must tell apart.

Held close to the chest—
Held at arm's length—
Verdict—

Exposure, white balance and focus — set when the sweep starts

Exposure—
Shutter—
ISO—
Brightness check—
White balance—
Colour check—
Focus—

Locked with the phone held still, once the lens is known — the longest usable shutter is worked out from it. Whether a lock took is judged on the picture, not on the camera agreeing that it did: on this phone the camera reported values it was not using.

Room captured

Coverage

Judged per band, never as one number. A sweep can be 95% complete overall and still have missed every wall junction.

Frames — tap one to re-shoot it

Hand it over

One zip, unpacking to the folder layout the pipeline reads: frames/NNN.jpg beside capture.json.