Back to the Cortical Grid

v2.8.0 release notes →

Receptive fields grow with eccentricity, and the cortical map allots tissue on a roughly logarithmic scale of distance from the fovea. Mode 12 (FOVI Cortical Grid) simulates that sampling with isotropic cortical sectors, following Blauch, Alvarez & Konkle (2026). It was the default in v2.6.0. v2.7.0 replaced it with mode 14 (Pyramid Mongrel) without a comparison between the two models. In v2.8.0 mode 12 is the default again, with its v2.6.0 parameters unchanged, and modes 14 and 15 move to the research category.

Also in v2.8: reading span protects text ahead of the pointer, mode 17 is a new research mode that quiets long structural edges, two sources of false peripheral structure are removed, and cortical pooling runs on GPUs that support it.

v2.8.0 is the first public release since v2.7.2. v2.7.3 was tagged in April but never published. Its changes ship in 2.8.0 and are included below.

Reading span points ahead

The perceptual span in reading is asymmetric. For English readers it extends 3–4 character spaces left of fixation and 14–15 to the right (McConkie & Rayner 1975, 1976; Rayner 1998). Scrutinizer’s reading-span option simulates the asymmetry by shifting the foveal protection zone in the direction of horizontal pointer movement over text (the v2.4 post has the background).

The shift now points ahead of the pointer in both directions; since v2.4.0 it had pointed behind. On live captures over body text, the detail gained sits 100 px ahead of the pointer in a left-to-right sweep and 134 px ahead in a right-to-left sweep. The direction is checked by scripts/check-reading-span-direction.js.

Three panels of the same bullet list during a left-to-right pointer sweep. Top: reading span on. Middle: reading span off. Bottom: a difference map with teal where reading span keeps more detail, mostly right of the pointer, and orange where it keeps less, mostly left.
A left-to-right sweep, pointer at the red line: reading span on (top), off at the same pointer position (middle), and the difference (bottom). Teal marks where reading span keeps more detail, mostly ahead of the pointer.

Mode 17: structural chrome suppression

End-stopped cells respond best to an edge of limited length, and their response falls as the edge extends beyond it (Hubel & Wiesel 1965). In macaque V1 that suppression comes from the receptive-field surround (Cavanaugh, Bair & Movshon 2002). Long contours are still perceived through contour integration further along the visual pathway, but each V1 cell responds less to them than to an edge of its preferred length. Web pages are full of long edges that carry no content: page-tall sidebar rails, table rules, dividers.

Mode 17 adds a simulation of length tuning to mode 14. At each edge pixel the shader samples along the local edge tangent and measures how far the same orientation continues. A sigmoid on that persistence lowers the oriented-DoG gain on long edges and leaves letter-scale edges alone. The probe length scales with the MIP level, so “long” is measured against the local pooling region at each eccentricity.

Mode 17 is a research mode. Its quantitative target, the length-tuning curve of Cavanaugh, Bair & Movshon (2002), has not been validated. Light 1-pixel borders, common in current web design, fall below the shader’s edge gate and are not suppressed.

Less false structure in the far periphery

Two sources of structure that the page did not contain are removed. The rod grain, a stylistic shimmer that rides the peripheral desaturation, now switches off on flat fields. On a uniform field it had added per-pixel structure that increased toward the periphery. Crowded letter fragments in the far periphery are now washed toward the local mean, because enough ink–paper contrast survived for OCR to read some of them as characters. The number of phantom characters OCR reads in the far periphery fell from 16 to 6 in mode 0; mode 12 stays at 7.

Steeper acuity falloff in the acuity-loss modes

From v2.7.3, dog_e2 is lowered from 0.15 to 0.10 in modes 10, 14 and 16. E2 is the eccentricity, in foveal radii, at which the smallest resolved scale doubles, s_min(e) = sā‚€ Ɨ (1 + e/Eā‚‚), so a smaller value gives a steeper loss of acuity with eccentricity. Mode 12 keeps 0.15.

Fixed

Cortical pooling on GPUs that support it

Modes 14 and 15 bind nine storage buffers per shader stage in their WebGPU compute pass. The device now requests the adapter’s full storage-buffer limit. Before, it took the WebGPU default of eight, and both modes fell back to the MIP/DoG acuity blur. On a GPU limited to eight, a warning is logged. Mode 14 and 15 images from earlier versions may show the fallback.

Validation

Download

Scrutinizer 2.8.2 for macOS (Apple Silicon) is signed and notarized. Installed signed copies of v2.7.x update through the in-app updater. Windows is a manual build. The complete list of changes is in the changelog.