AI-generated Published models & figures Illustrative scenes

This simulator was generated by Claude (Anthropic) for the Wireless 101 course, and it builds the lab that courses/wrl101/SYLLABUS.md Module 8 declares: a 2D propagation simulator with walls, visible multipath reflections and path-loss contour maps. The propagation physics is genuinely computed in your browser, from the geometry on screen, every time you move something.

Three kinds of number, labelled where they appear. (1) Computed — free-space path loss, the log-distance extension, every wall-crossing test, mirror-image specular reflection, the Fresnel TE reflection coefficient at the real angle of incidence, the diffraction parameter v from the real geometry, and the power or coherent sum of the rays. (2) Published figures — the knife-edge loss approximation (ITU-R P.526 / Lee), the wall penetration-loss ranges and path-loss exponent ranges from this course's own M8-L4 tables, and the relative permittivities from ITU-R P.2040 Table 3. (3) Illustrative, marked † — the single decibel value chosen inside each published range, every preset floor plan, and the shadowing sigma.

Caveat on the permittivities. This repo is offline, so the ITU-R P.2040 values below are quoted from standard reference tabulations and were not verified against the recommendation text. P.2040 also has no row for low-emissivity glass, so this page gives it none: low-E blocks a signal because its metal-oxide coating reflects, so it is modelled as a conductor like the metal cladding, and the materials table says so. They set only the reflection strength, and the reflection loss they produce is printed for every bounce so you can see the effect of changing them. The penetration losses are separate and come from M8-L4.

What it is not. It is a plan view: no ground reflection, no floors, no antenna height, so the two-ray d−4 law of M8-L2 cannot appear here. Antennas are isotropic (0 dBi). Scattering is not modelled — every surface is treated as smooth and large compared with the wavelength. Diffraction is single-edge and is not combined with reflection: the one wall whose edge dominates is treated as a partially transmitting screen, so going through it and bending round it are charged together and the total has no step at the shadow boundary, but a second wall across the same path is charged plain penetration. Fading statistics are out of scope and belong to M8-L3; the optional shadowing layer here is spatial.

2D propagation simulator — walls, reflections, shadows, coverage

Module 8 lab. Drag the transmitter, the receiver or any wall — or select an object and use the arrow keys, or type coordinates. The map is path loss recomputed over a grid; the lines are the actual ray geometry that produced the number at the receiver. Everything is in metres, decibels and dBm.

The chain, end to end

Every thumbnail is drawn from the same computation as the big map — hover or focus a block to light what it produces and the knobs that drive it.

Path-loss map & ray geometry

Scale: viridis — perceptually uniform and colour-blind safe, with monotonically increasing lightness, so it also reads correctly in greyscale. Deliberately not a rainbow scale: a rainbow is not perceptually ordered and its yellow/cyan bands read as contours that the data does not contain. Because a heat map cannot be read by colour alone, the same field is drawn as contour lines every 10 dB and the exact value at the receiver is printed on the right.

Keyboard control (a mouse is optional)

Click the scene, or Tab to it, then: arrow keys nudge the selected object by 0.5 m (Shift for 2 m) · Tab/Shift+Tab inside the object list picks what moves · [ and ] rotate a selected wall by 5° · − and = shorten and lengthen it by 1 m · T selects the transmitter, R the receiver · Delete removes the selected wall. The numeric boxes under “Selected object” are an equivalent path for every one of these.

At the receiver

—

Knobs, grouped by the stage they change

Blocks 1 & 7 — Tx power, received power
Tx power

Block 2 — spreading loss
Frequency

Exponent n

Block 3 — wall penetration

Blocks 4, 5 & 6 — reflection, diffraction, summing

Optional overlay † — log-normal shadowing
Sigma
Correlation
Seed

Block 8 — the map, and what it costs

Selected object

Wall materials on this page

Penetration loss is charged once per wall a ray actually crosses, found by a real segment–segment intersection test, not by a distance guess. Reflection loss is not in this table at all — it is computed per bounce from the permittivity and the angle, so the same wall reflects weakly head-on and almost perfectly at a grazing angle.

What each stage of the calculation does

Performance, stated rather than hidden. A live heat map with two-bounce ray tracing can hang a page, so this one is budgeted, and the budget is printed under the scene while it runs instead of being silently applied.
Power sum or coherent sum — and why the default is power. Each traced ray arrives with its own path length, so it has its own phase. Adding the rays coherently (Σ aiejφi, with φ = −2πd/λ plus π for every reflection whose coefficient came out negative) is the physically complete answer for a single frequency, and the fringes it draws are real interference at half-wavelength spacing — the multipath of M8-L3, made spatial. It is off by default for two honest reasons: those fringes are finer than the grid at gigahertz frequencies, so what you see is partly the grid sampling them, and a real receiver with any bandwidth averages over them. The power sum (Σ|ai|²) is what coverage tools report, and it is the quantity every published path-loss model is fitted to. The ray past an obstructing edge is given the phase of its geometric path only; the Fresnel integral's own phase term is not included, so treat the fringe positions near a shadow edge as indicative.
Where this sits in Module 8. M8-L1 gives the free-space law this starts from; M8-L2 gives the reflection, diffraction and scattering mechanisms and the knife-edge model used here; M8-L3 gives the statistics of the multipath you can see as rays; M8-L4 gives the log-distance exponent, the partition-loss budget and the shadowing. This page is deliberately the spatial view: it shows you where the energy goes, not how it fluctuates in time.

The arithmetic, in full