Stop waving a board at the rig. Let the room hold still.
Fix markers to the floor and up the masts, and every camera solves against the same constellation. Nothing moves, so nothing needs to be synchronised, and one still per camera is a complete calibration. Design the field here and prove it solves before you print a single sheet.
Five steps, one of them repeatable forever
The whole procedure, end to end. Once the field is mapped, everything after it is one still per camera — including every recalibration you will ever do on this floor.
Print and mount
Generate the field below, print at 100%, measure one marker with a rule, and tape the sheets down — floor markers flat, mast markers facing across the volume. The measured edge length is the map’s metric scale, so it is the one number to get right.
Walk the field
One phone, thirty or more stills, sweeping the whole field from different positions and heights. The app guides live: which markers are still unseen, and which groups have never shared a photo. Thirty is not ritual — with ten stills on a short arc the far markers land ~25 mm off; with a thirty-still sweep, under 5 mm.
Solve and freeze
The map solves in seconds on the phone, anchors itself to the floor plane — gravity, level and height come from the floor markers — and reports the floor’s measured flatness, naming any marker sitting proud of the plane. The map then never changes.
One still per camera
Each rig camera photographs the field once. No synchronisation, no choreography, no overlap requirements between cameras — the field is the common reference. Each camera gets a verdict with its position known to ±millimetres, from the fit’s own covariance.
Recalibrate in one still
A bumped tripod is one more still for that camera — and by construction it cannot disturb the map or any other camera. If every camera suddenly fails its residual bound at once, the field moved, and the app says which of the two happened.
Design the field
Describe the rig and the tool lays out the markers, sizes them for the far corner of the volume, and tells you whether the result actually ties every camera into one solve.
Plan view, 5.2 m across. Click a camera to light up the markers it can actually use. Dim floor markers are seen by fewer than two cameras — paper you do not need to print.
- Cameras
- 32 on 8 masts
- Markers
- 20 floor + 32 mast
- Marker size
- 110 mm · far corner 8.4 m
- Markers per camera
- 4–9
- Wasted markers
- 12 seen by <2
- Print pack
- 52 × A4 · 1 per sheet
What a fixed field buys you
The board method is not merely slower at scale. It fails in ways that are hard to see and hard to fix.
Cameras stop needing to agree
A waved board only links two cameras if both catch it in the same instant. Past four or five cameras most pairs never do, and the operator is choreographing overlap they cannot verify. With a fixed field every camera localises against the same markers, so two cameras that never share a view are still rigidly related.
Nothing moves, so nothing smears
A moving board on a rolling-shutter sensor is photographed at slightly different places down the frame, and two phones catch it at slightly different moments. Both errors go straight into the corner positions. A static field removes the entire class: calibration no longer depends on the sync you have not finished proving.
The floor becomes the world
Floor markers are coplanar by construction, which fixes the ground plane and with it gravity, level and the origin — the frame every downstream capture is expressed in. Getting that from a handheld board means inferring it; getting it from the floor means measuring it.
Recalibration stops being an event
Someone will knock a tripod. With a field, the fix is one still per camera and a re-solve, because the reference is still taped to the floor where it was. There is no session to re-run and no operator to re-book.
The catch, and the reason the planner leads with it: the field only works if the camera-to-marker graph is connected. Markers are the edges. A rig can have generous coverage everywhere and still split into two groups sharing no marker — each half solvable, their relative pose unknowable. Mast markers alone do exactly this, because each mast faces inward and is only ever seen from the far side.
Printing and mounting
The field is a measuring instrument distributed across a room. It is only as good as the least careful thing you did to it.
Every print dialogue defaults to shrinking the page, and a driver can scale without telling the application. The printed edge length is what carries metric scale into the entire rig — get it wrong uniformly and every capture comes out the wrong size, perfectly shaped, with nothing visibly broken.
Gloss mirrors your lights into the corners the solver is trying to localise, and a curled floor marker is no longer the flat square its size implies. Mount floor markers on stiff board or laminate them; tape all four edges, not two.
A marker on a mast is there for the cameras on the far side, so it faces inward. That is what rescues the low cameras, whose view of the floor is too grazing to use.
The field is the world frame. Move one marker between calibration and capture and you have silently redefined the coordinate system for every camera that could see it. If something gets kicked, re-shoot the field — it takes one still per camera.
Two markers sharing an ID is the one failure that produces a confident, completely wrong answer, because the solver will fold two places in the room into one point. The generator allocates from a single range and the field file records where each ID went.
Markers where the action happens get occluded exactly when every camera is looking, and get walked on. The keep-out radius exists for both reasons.
One thing a field cannot do
Lens distortion is only constrained by data taken where distortion lives — near the edges of the frame, with the target close and steeply tilted. That is a board's job, once per camera, before the field ever comes out.
Shoot this board close in — half a metre to a metre and a half — filling much of the frame, tilted through both axes to about 45°, and reaching all four corners. Lock focus and stabilisation first: focus breathing moves the focal length and stabilisation moves the principal point, so a phone left on automatic has different intrinsics from frame to frame. Then leave them locked for the field and the shoot.
The board carries its own geometry in a QR, so pointing a camera at it is the whole configuration step. Get this pass right once and the field pass is only ever solving for where the cameras are.
- Markers
- 31 · IDs 0–30
- Corners
- 48
- Board
- 210.0 × 270.0 mm
- Square / marker
- 30 / 22.5 mm
- Sheet
- A3 portrait · QR 22 mm
VVB1:{"cols":7,"id0":0,"mk":0.0225000,"rows":9,"sq":0.0300000}The same solve, from a folder of stills
Prefer to inspect before you trust? Skip the in-app compute entirely: photograph the field once from every camera, copy the files, and run the desktop tool. Same detector, same solver, same output — rerunnable forever.
Three steps, no ceremony
1. With the rig standing, take one still per camera — Beacon’s own files already carry the camera in the name (…_Still000_Node03.heic) and each still’s intrinsics in its .still.json sidecar, so copying the capture folder is the whole export.
2. Run the compute against the field file this page generated: vvFieldSolve --field field.json --stills ./stills --out ./session
3. Read the verdict — per camera: pass or a named reason, marker count, residual, and position known to ±millimetres. The output is calibration/transforms.json plus a COLMAP seed, byte-compatible with the on-device solve; downstream tooling cannot tell which path produced it.
Extra stills from any camera join the same joint solve as enrichment. A measured print size corrects every marker at once with --measured-size-mm; foreign images without sidecars take --fx. A camera whose still shows no markers fails by name — never silently absorbed.
What the numbers mean
A calibration should hand you numbers you can act on — and be honest about which number proves what.
The headline is millimetres, not pixels
The number the whole procedure exists to produce is the one-sigma error of a point triangulated in the middle of your volume — “a point at the subject lands within about 2 mm”. It is computed by propagating the fit’s own measured noise through the solved camera geometry, so it reflects the rig you actually built: cameras crowded on one side of a subject give a visibly worse figure than the same cameras spread around it, at identical pixel residuals.
What reprojection error can say
Expect roughly 0.2–0.5 px. Above ~1 px something is wrong — a bowed sheet, a kicked marker, motion in a still. And suspiciously low is also a finding: well under 0.1 px on a large rig usually means too few observations for the parameters, not a perfect calibration.
What it cannot say
A low residual means the solve agrees with itself — not that it is right. Markers printed 4% small give a perfectly self-consistent solve of a room 4% the wrong size, and published measurements on real lenses show systematic bias dominating while the residual sits below 0.1 px. That is why the printed edge length is measured with a rule, and why uncertainty is reported separately from residual.
Rules of thumb for a healthy rig: camera position known to better than 0.1% of its distance to the volume (8 mm at 8 m — a good rig manages 2–5), orientation to half a milliradian, and triangulation at the volume centre in low single-digit millimetres, improving roughly with the square root of the camera count.
Planning a rig?
Send the volume, the mast count and the cameras per mast — field layout is easier to get right before the hardware is bolted together.