The wave equation solved live on a 480 × 280 grid, once per source in three independent fields. Because the light is incoherent, summing per-source intensities is exact — that linearity is what makes the colored sensor curves and the image panel possible.
Curve colors are source identity badges, not wavelengths — the whole sim is monochromatic (single λ), rendered grayscale for that reason. Each source re-rolls its phase every 3–6 optical periods (the incoherence) and propagates in its own field; the amber trace squares the summed field, so cross-terms dance there and cancel only in the time average. Source amplitudes are weighted so each delivers equal power through the aperture — a closer point would otherwise be brighter (inverse-distance irradiance), which would muddy the focus comparison. An absorbing aperture stop flanks the lens — without it, light missing the glass reaches the sensor directly (the sim's way of explaining why lenses live in barrels). Why defocused points still look prominent here: in 2D, defocus spreads energy over a width w, so peaks fall as 1/w; in 3D they spread over an area and fall as 1/w². Flatland is kind to blur. Image panel: Bands extrudes the exposure along the invariant third axis — exact, since a 2D sim is physically a cylindrical-lens system imaging line sources. Spots sweeps each source's blur profile 360° about its chief-ray center — structurally right for circular optics, but with this sim's slit-type diffraction (sidelobes ≈4.7% vs Airy's ≈1.7%) and 1/r energy spreading. Wavelength remains ~10⁴× exaggerated relative to the lens.