SeeFieldsinvisible electromagnetic world ← Back to the room

About and models

SeeFields makes the radio field in a room visible, touchable and explainable. Every number on screen comes from a named physics model, and this page says which one.

What it is

One room, one router, one phone, one wall you can drag. The phone shows the received power in dBm and the floor shows the field everywhere else. Move the router and watch the number and the floor change together. Nothing is a recording: each frame is the model evaluated for the scene you built.

Every scene follows the same loop:

SEE the field on the floor and in 3DTOUCH drag the router, phone or wallCHANGE frequency, material, tilt, heightWHY read the step-by-step chain behind the numberMATH open each step's equation with the real values

"Try this" offers ten short experiments, one per phenomenon: wavelength, through the wall, polarisation, interference, near field, E/B/k vectors, multipath, Fresnel zone, antenna pattern, floor reflection. Keys 1 to 9 and 0 open them. "Share" copies a link that restores the exact scene.

Model labels

Each visual and each step of the chain carries one of these labels. A conceptual picture is never presented as an exact one.

LabelMeaning
AnalyticalA closed-form result of Maxwell's equations under stated assumptions: free-space path loss, the dipole pattern, Fresnel coefficients, Fresnel-zone geometry.
Engineering modelA standard approximation used in link design, with its known limits: ITU-R P.2040 slab loss, P.526 knife edge, image-method single bounces. Accurate to a few dB in the regimes it was made for.
Full-wave numericalA direct solution of Maxwell's equations on a grid (FDTD). Not in this release; planned for the Wave Lab.
ConceptualA picture that shows a mechanism at a true scale but is not a computed field: the animated wavefronts, the E/B/k arrows.
ValidatedA model compared against a measurement of a real room. Not yet earned by any model here; planned.

What is modelled

The received power is a chain of gains and losses, summed coherently where paths interfere. The floor colour and the vertical slice evaluate the same chain at every point, so what you see on the floor and what the phone reads never disagree.

Direct path Analytical

Free-space path loss between two antennas, distance measured from the antenna tip to the phone in 3D:

P_r = P_t + G_t + G_r − 20·log₁₀(4π·d/λ) λ = c/f

Router: a vertical half-wave dipole, 2.15 dBi peak, with its doughnut pattern applied to every ray when "Dipole pattern" is on. Phone: 0 dBi, isotropic.

G(θ) = 2.15 dBi + 20·log₁₀[ cos(π/2·cosθ) / sinθ ] θ from the dipole axis

Inside one wavelength of the router the far-field formula is invalid and the readout says "Near field". The two floor rings mark λ/2π (reactive near field of a small antenna) and 1 λ (where the 1/r law starts).

Wall penetration Engineering model

One slab at normal incidence, ITU-R P.2040-3 material constants (ε′ = a·f^b, σ = c·f^d), interface loss plus bulk loss, no multiple internal reflections. Materials: plasterboard 10 cm, wood 4 cm, glass 6 mm, brick 20 cm, concrete 20 cm, metal sheet (40 dB, a conductor). The slab also delays the phase by k₀(n′−1)t, which matters when the through-wall wave meets a wave that went round it.

Wall-edge diffraction Engineering model

The wall is a semi-transparent screen with one knife edge: the nearest of its two vertical edges and its top edge. The direct ray is multiplied by

W = D(ν) + T·(1 − D(ν)) D(ν) = (1+j)/2 · ∫ᵥ^∞ e^(−jπt²/2) dt ν = ±√2·h/r₁ (+ in the shadow) T = 10^(−L/20)·e^(−jφ) the slab's transmission

D is the Fresnel-integral knife-edge factor (integrals by Heald's approximation, ±0.5 dB). An opaque wall gives the ITU-R P.526 single knife edge; no wall gives 1. The factor is continuous across the shadow boundary, so the floor shows the edge's Fresnel ripples. One edge only: no corner or double-edge terms, no diffraction on bounced rays.

Polarisation Analytical

Router vertical, phone linear. Mismatch loss cos²Δθ, saturating at 25 dB cross-polar discrimination (an engineering cap: real antennas leak).

Second transmitter Analytical

Same frequency, phase-locked to the first, so the two waves add coherently: that is how a reflection or an antenna array behaves, not two independent routers. The floor shows the fringes; when they would be finer than the screen can draw honestly it shows average power and says so.

Room reflections Engineering model

The four room walls are 20 cm concrete. One bounce per wall by the image method, with the Fresnel coefficient Γ⊥ at the actual incidence angle, summed coherently with the direct path. The mottled floor is multipath fading.

Floor reflection Engineering model

Two-ray model. The floor is 20 cm concrete; one bounce by the image method, the image dipole co-directed, with the Fresnel coefficient for the field of a vertical dipole at the actual angle θ from the floor normal:

Γ∥ = (εc·cosθ − √(εc − sin²θ)) / (εc·cosθ + √(εc − sin²θ))

+0.39 at normal incidence on concrete, zero at the Brewster angle tanθ_B = √ε′ (66° at 2.4 GHz), −1 at grazing, +1 at every angle on a conductor. Summed coherently with the direct path, so the floor and the slice show the two-ray fading and the height lobes. A wall on the bounced path attenuates it; no diffraction there. Flat floor, no roughness, no surface wave.

Fresnel zone Analytical

The ellipsoid is the first Fresnel zone of the direct path, r = √(λ·d₁·d₂/d). It turns amber when the wall edge or the floor cuts into it. The wall case is the diffraction step above; the floor case is the floor reflection above.

Wavefronts, shells and vectors Conceptual

The floor rings and the 3D shells are spaced one wavelength apart at true scale and leave the antenna tip in slowed time (the panel always shows the time-scale factor). With the pattern on, shell brightness follows the dipole's doughnut. The E (amber), B (teal) and k (white) arrows sample a vertically polarised wave along the direct path: in phase, mutually perpendicular. Arrow length shows phase, not field strength. All of these are hidden, with a note, when a wavelength is under a few pixels on screen.

Not modelled

Expect the numbers to be right to a few dB in a bare room and to show the correct trends everywhere. Nothing here replaces a site survey.

Keyboard

R P W
select the router (R again: second router), the phone, the wall
Enter
cycle the selection; Esc clears it
move the selected object 5 cm, relative to the view
Shift+
lift or lower it 5 cm
Ctrl+arrows
orbit the camera
=
zoom out, zoom in
19, 0
the experiments (0 is the tenth)
Z Y M
zoom to antenna, why this number, math

Every move is announced to screen readers with the new position and the received power. Mouse: drag objects, Shift+drag to lift, drag the floor to orbit, Ctrl+drag or the right button to pan, scroll to zoom.

References

Built with

TypeScript, Three.js and Vite. The physics core is a separate pure-TypeScript package with no rendering code and a test for every model, and the floor shader re-implements the same chain in GLSL so the map and the readout agree. The app is static: no server, no account, no tracking. A shared link holds the whole scene in its URL.