JamblineOpen the planner

Method

Jambline predicts a coverage map from the floor plan and the access points, then states what its error was on measurements it never saw. Both halves matter. A prediction with no measured error is a drawing.

The model

Free-space loss along the direct path, plus an attenuation for every wall the path crosses. Wall losses come from the ITU-R P.2040 slab model, evaluated at the frequency in use rather than read off a table of typical values, so a 100 mm plasterboard partition and a 150 mm one are different numbers.

The rendered field adds first-order specular reflection off walls, floor and ceiling, and single and double knife-edge diffraction over wall edges. A corridor is a waveguide and a doorway is a diffracting edge; a direct-path model has neither, and both change the answer by more than the wall term does.

Calibration

With the geometry fixed, the multi-wall model is linear in its own parameters, so the distance exponent, the constant and every per-material attenuation solve in closed form by least squares. There is no iterative search and no random seed: the same survey always produces the same fit.

The exponent is pinned at free space by default. Links that cross more walls also tend to be longer, so a free exponent lets the fit charge wall loss to distance instead. Freeing it is offered, and is worth doing only once a survey is large enough to separate the two.

Measured error, 5.18 GHz

Scored against the TMB campaign (Adame, Carrascosa and Bellalta, arXiv:1812.00667), 21 links on one office floor on channel 36, received power from the authors’ own packet captures. Fourteen links were fitted, seven held out of the fit and scored.

linksRMSEwhat it is
2120.40 dBas configured: free space, zero wall loss
144.23 dBfitted: exponent 2.219, offset +7.59 dB, office wall 4.92 dB
76.47 dBheld out of the fit, bias -2.05 dB

The fitted office wall is worth one physical check. At 5180 MHz the ITU-R P.2040 slab model gives 4.5 dB for 100 mm of plasterboard and 6.6 dB for 150 mm, so 4.92 dB interpolates to roughly 110 mm. A stud partition with plasterboard on both faces is 100 to 125 mm. The fit asks for a wall that exists.

Twenty one links on one floor of one building is a corroboration, not a population. The interval around 6.47 dB is wide, the paper counts “office walls” and names no material, and received power comes from commodity hardware whose reported level is not a calibrated measurement.

Measured error, 5.8 GHz

NTIA Report 00-372, Table 3, antenna configuration 8, the only omnidirectional to omnidirectional row and so the only one comparable with an isotropic transmitter. The report is a work of the United States Government. Nothing is fitted here: the coordinates come from the published floor plan and the model is run as it ships. Positive means the model charged more loss than was measured.

linkmeasureddirect path onlyas rendered
in-room, line of sight, 5.0 to 6.8 m58.2 dB+4.94 dB+1.93 dB
in-corridor, line of sight, 12.2 to 14.0 m62.9 dB+7.16 dB+1.36 dB
in-corridor, line of sight, 45.7 to 47.5 m69.8 dB+11.29 dB+4.34 dB
corridor corner, obstructed, 8.3 to 10.1 m75.3 dB+30.95 dB+14.33 dB

Two things fall out of those four rows. At 46.6 m the direct-path model is 11.3 dB pessimistic, because free space has no waveguide and a 2.4 m concrete corridor is one; reflections cut the error to 4.3 dB. And the corner is the outlier at 14.3 dB. The report chose that site to isolate diffraction, and the model charges too much to turn one: it carries a single order of edge diffraction and nothing guided comes round with it. That limit now has a size rather than a shrug.

What none of this proves

  • No link in either campaign crosses a wall along traced geometry. Wall traversal is checked against a brute force over every wall in the test suite, not against measurement.
  • 2.4 GHz and 6 GHz are untested against measurement. The published campaigns above sit at 5.18 and 5.8 GHz.
  • No published campaign here identifies its wall materials, so the material library rests on the P.2040 slab model rather than on a per-material fit.
  • A prediction is not a walk survey. It tells you where to walk, and it tells a client what to expect before the hardware is bought.

Speed

Apple M2, 8 GPU cores, best of 20 runs. The reference floor is 40 by 25 m, 12 rooms per side, 122 walls, 4 access points at 5.2 GHz. Full physics means the direct path plus first-order reflection and knife-edge diffraction.

scenepixelsCPUGPU
0.25 m/px, full physics168 x 112454 ms10.3 ms
0.10 m/px, full physics420 x 2802651 ms44.5 ms
0.10 m/px, direct path only420 x 28085.7 ms1.8 ms

The CPU column is this project’s own solver, which exists to check the GPU kernel rather than to be fast. It says nothing about any other tool.

Correctness

Three layers, each checking the one below. Analytic cases against closed forms. Then the grid must not change the answer, only the cost, which is checked by scoring every ray against a brute force that tests all walls and cannot lose one to a cell-ownership mistake. Then the GPU kernel must reproduce the CPU solver, which is the contract that stops the browser build and the validated build from drifting apart.

On the reference floor the two agree on all 117 600 pixels exactly. On a floor twice that size, 9 pixels out of 426 400 differ, all of them rays passing exactly through a vertex where two walls meet, where the segment parameter lands on its own bound to the last bit. The field is continuous across such rays and either answer is defensible, so the test bounds how many pixels may disagree and by how much rather than pretending they agree.