Each element radiates a spherical wave. By Huygens' principle the field at any point in space is the sum of every element's contribution, each carrying its own travel-time phase:
E(x,y,t) = Σ A_n / √r_n · cos(k·r_n - ω·t + n·β)
where r_n is the distance from element n to the point, k = 2π/λ is the wavenumber, ω = 2πf, and β is the progressive phase you set with the slider (each element n fires β radians later than element 0). The top canvas draws this sum live across a grid of points -- a true near-field interference pattern, not a canned lobe shape. Bright/dark fringes are literally constructive and destructive interference in real space.
The bottom canvas plots the classic far-field array factor for the same N, spacing d and phase β:
AF(θ) = | Σ exp(j·n·(k·d·cosθ + β)) | / N
multiplied by the chosen element's own directivity factor (isotropic = 1, dipole ∝ |cosθ|, patch ∝ max(0,cosθ)²). Because both plots share the same N, d and β, dragging the phase slider steers the beam in both views simultaneously -- you can watch the near-field wavefronts tilt and see exactly why the far-field lobe points where it does, instead of only reading the final polar shape.
- Element type -- changes each element's individual radiation factor (isotropic / dipole / patch).
- Elements -- array size N (more elements → narrower beam, more side lobes).
- Spacing -- element separation d in wavelengths (larger d → grating lobes appear once d > λ/2 for wide steering).
- Progressive phase β -- the phase difference fed to each successive element; this is the real steering control on phased-array hardware.
- Frequency -- rescales the animated wavelength on screen (display only, does not change the normalised array factor).
Approximation: 2D scalar wave model (no vector polarisation), lossless free space, and the element factor is a simplified analytic directivity rather than a full antenna's measured pattern.