This is the argument behind a piece of software I built and did not ship. It is worth writing down on its own, because the reasoning is the useful part and the product was not.
What hyperacuity actually is
Vernier acuity is the ability to tell that two line segments are not collinear — that the upper one sits slightly left or right of the lower one. It is called a hyperacuity because the threshold is finer than the spacing of the photoreceptor mosaic itself. The retina does not resolve the offset. The cortex infers it from how luminance is distributed across several receptors, which is a fundamentally different operation from resolving two points as separate.
That distinction is why the numbers look impossible at first. Reported vernier thresholds sit around 2–5 arcseconds. Standard visual acuity — the letter chart — is about one arcminute, or 60 arcseconds. Hyperacuity is roughly an order of magnitude finer than the acuity limit people normally quote, and it is finer than the anatomy would appear to permit.
Why the eye clinic cares
Sensitivity that fine has a clinical use. Metamorphopsia — the perceived warping of straight lines, caused by fluid lifting the macula — is one of the earliest subjective signs of wet age-related macular degeneration. It shows up in a task that asks about alignment long before it shows up on a letter chart, because a letter chart asks a coarser question.
Preferential hyperacuity perimetry is built on exactly this, and has been reported discriminating wet AMD with an area under the ROC curve of 0.87.[2] That is the reason anyone would want this on a phone or a laptop in the first place: the disease announces itself in a channel that ordinary screening does not read.
The arithmetic that kills it
Now put the task on a screen. Angular size is straightforward geometry — an object of size s at distance d subtends 2·arctan(s/2d), and at these scales that is close enough to s/d radians. Convert to arcseconds by multiplying by 206,265.
| Clinical vernier threshold | 2–5″ — the quantity being measured |
|---|---|
| Standard visual acuity | 60″ — one arcminute, the letter-chart limit |
| One pixel at 60 cm | ≈ 90″ on a typical desktop display |
One pixel is about twenty times coarser than the entire clinical range. The smallest move the display can make is far larger than the whole interval you are trying to resolve within.
Stated that way it looks finished. If the hardware's minimum step is 90 arcseconds and the interesting range is 2 to 5, there is nothing to discuss. Every naive analysis stops here, and every naive analysis is wrong.
Why sub-pixel still works
Ask a browser to draw a vertical line at x = 100.3 and it does not round to 100. It antialiases: the line's energy is distributed across neighbouring pixels in proportion to how much of each the line covers. The luminance centroid of that little distribution lands at 100.3 even though no individual pixel moved.
And the visual system does not sample pixels. It integrates luminance over a receptive field — which is the same operation that makes hyperacuity possible in the first place. So a shift the display cannot address is nevertheless a shift the observer can see, because both the renderer and the retina are working with distributions rather than with discrete positions.
This is not a trick. It is the same physics twice: the display encodes sub-pixel position in relative intensity, and the visual system decodes position from relative intensity. Run the adaptive staircase and thresholds well below one pixel come out, reliably and repeatably.
Where the floor really sits
Which raises the question the arithmetic above cannot answer: if antialiasing gets you below a pixel, how far below? That is an empirical question about displays, not a geometric one, and the display-ergonomics literature has measured it.
Reported results indicate that with sufficient antialiasing, a vernier threshold of about 7.5 arcseconds is obtainable at a pixel pitch of 1.6 arcminutes, and that reaching comparable performance without antialiasing requires a very much finer pitch.[3]
1.6 arcminutes is 96 arcseconds. That is, to within the precision of this kind of estimate, the same pixel as the 90″ in the table above. So the literature is describing the same display, and it puts the antialiased floor near 7.5″ — roughly twelve times better than the raw pixel pitch, and a genuinely remarkable result for a device that was never designed to do this.
It is also still outside the clinical range. Seven and a half arcseconds against a 2–5 arcsecond threshold means the measurement floor sits above the quantity of interest. Close enough to be interesting. Not close enough to be a measurement.
Worth being precise about what that number is. It is a floor imposed by rendering, measured under controlled conditions. It is not a claim that any given browser on any given panel achieves it, and it says nothing about whether the observer's threshold has been measured correctly — only about whether the apparatus could represent it.
Demonstration versus instrument
Everything above concerns what the display can represent. An instrument has to control considerably more than that, and a web page controls almost none of it.
| Viewing distance | Typed in by the user, and it propagates linearly into every angle reported |
|---|---|
| Pixel pitch | Estimated by calibrating against a bank card — standardised at 85.60 mm, which is a genuinely good ruler, but a hand-held one |
| Luminance | Unknown. Display brightness, ambient light, and adaptation state are all uncontrolled |
| Contrast and gamma | Panel-dependent, and antialiasing quality depends on gamma directly |
| Subpixel geometry | Varies by panel; sub-pixel rendering interacts with it |
| Refraction | Whether the observer is wearing the right correction is simply unknown |
Below one pixel you are therefore characterising a compound system — the rendering pipeline, the panel's subpixel geometry, its gamma, and the observer — and reporting the result as though it described the observer alone. That is the actual objection. Not that the number is imprecise, but that it is a number about the wrong thing.
This is why the software was labelled not for diagnostic use. Not as a disclaimer bolted on at the end, but as a conclusion reached before any code was written.
Which is the part worth generalising. The constraint that decides whether a product can exist is usually knowable in advance, and it is usually arithmetic. Ninety arcseconds against two-to-five is a calculation that takes a minute, and it settles the regulatory posture, the wording of the interface, and the honest claim, before a line of code commits you to anything.
You can run the task yourself. It calibrates against a payment card, uses a 2-down/1-up adaptive staircase converging on the offset detected about 71% of the time, and takes the threshold from the mean of the last six reversals. It will report a number in arcseconds, and then tell you why that number is not about your eyes.
Run the vernier demonstration →
References
- Kim, J. et al. The Clinical Use of Vernier Acuity: Resolution of the Visual Cortex Is More Than Meets the Eye.
- Accuracy of a Self-monitoring Test for Identification and Monitoring of Age-related Macular Degeneration.
- Effects of display pixel pitch and antialiasing on threshold vernier acuity. Reported thresholds near 7.5″ with antialiasing at a 1.6 arcminute pixel pitch.