The 3D version pools discrete photoreceptors into a single ganglion cell's response. This 2D model instead treats the retina as a mosaic of ganglion cells, one centered at every point of the visual field, and computes every one of their responses simultaneously with a closed-form convolution — the heatmap you see is a genuine population response map, not a flattened 3D scene:
K(d) = Ac · exp(−d²/2σc²) − As · exp(−d²/2σs²) (Rodieck, 1965)
L(x,y) = exp(−|x−spot|²/2σr²) Gaussian light spot, peak 1
drive_lobe(g) = ∫ N(x;g,σ)·L(x) dx
= [σr²/(σ²+σr²)] · exp(−|g−spot|²/2(σ²+σr²)) (closed-form Gaussian⊗Gaussian)
Firing rate(g) = max(0, baseline + gain·[drive_c(g) − k·drive_s(g)])
Because two Gaussians convolve into another Gaussian, the pooled center/surround drive at every field location has this exact algebraic form — verified against brute-force numerical integration to better than 0.001% before shipping. A spot exactly filling a cell's center drives it hardest; a spot much larger than the surround approaches uniform illumination and the center and surround drives cancel (the classic "silent surround"); and a spot near the surround's size produces a bright ring of elevated response exactly at its edge in the heatmap — center-surround fields are edge/contrast detectors, not brightness detectors.
- Spot X / Y — drag on the canvas or use the sliders to move the light stimulus across the field. Every cell in the heatmap reacts to the same stimulus from its own receptive field.
- Spot radius — grow or shrink the illuminated disc; watch the "Mach band" ring appear at its rim.
- Surround strength — scales the antagonism; at 0 the map shows a pure Gaussian bump (center-only), above 1 the ring dominates.
- ON/OFF-center — flips the sign of the whole map — bright center / dark surround vs. the reverse.
- Probe cell — the readouts and spike raster track one cell fixed at the field's center (x=0, y=0), the same convention the 3D version uses for its single ganglion cell.