Gaze accuracy on iPad
What seven weeks of testing the gaze engine show, from 15 August to 2 October 2026, on a 12.9-inch iPad Pro. Report published on 15 November 2026.
The precision exercise
The app shows 40 targets across the screen, one at a time (20 in the first runs). You select each one by looking at it, without touching. Then come 60 seconds of rest, eyes free, during which nothing must trigger. A wrong selection activates a target other than the one shown.
- 0wrong selections in the last 280, seven runs in a row
- 1.67 sto select a target, median, from gaze landing to activation
- 0triggers during the 60 s rest, in the six of those runs where the app measured it
- Correct
- Wrong
| Run | Bar | Correct / wrong |
|---|---|---|
| Aug 1520 targets | 17 / 3 | |
| Aug 1620 targets | 16 / 4 | |
| Aug 1640 targets | 38 / 2 | |
| Aug 1640 targets | 39 / 1 | |
| Aug 1620 targets | 18 / 2 | |
| Aug 1620 targets | 14 / 6 | |
| Aug 2340 targets | 40 / 0 | |
| Aug 2340 targets | 40 / 0 | |
| Aug 2340 targets | 40 / 0 | |
| Aug 2740 targets | 40 / 0 | |
| Oct 240 targets | 40 / 0 | |
| Oct 240 targets | 40 / 0 | |
| Oct 240 targets | 40 / 0 |
Between 16 and 23 August, calibration was rebuilt as a single guided flow, then hardened. On 2 October, the gaze signal and the selection engine changed; wrong selections stayed at zero. One run on 16 August also triggered a selection during the rest.
How accurate a calibration is
Before use, you calibrate. The app shows about forty points to look at, fits its model, then checks it on points it did not use. It counts a calibration as valid if the median error stays under 60 screen points and the 90th percentile under 120. On this iPad, one screen point is 0.19 mm.
- 56calibrations over the period, 27 of them valid
- 44 ptmedian error of a valid calibration, or 8.6 mm on screen (from 19 to 58 pt)
- 1.1°of visual angle for those 44 pt, seen from 45 cm
| Screen zone | Bar | Median error |
|---|---|---|
| Top | 33 pt · 6.4 mm | |
| Centre | 44 pt · 8.4 mm | |
| Bottom | 85 pt · 16.4 mm |
The bottom of the screen is the least accurate zone, in every session.
Posture matters more than settings. On 2 October, the same person got 86 pt with a free head, turning by 4 to 5°. Once the head was steadied, within 1 or 2°, the next calibration came down to 56 pt, then the two after it to 44 and 41 pt.
Target size
To find how small targets can get, the test bench replays a recorded exercise while slicing the screen into ever smaller cells, 8 pt apart: the same gaze, tighter targets. Sessions A and B are two exercises from 2 October. In session A the head is steady and the centre of each fixation lands 30 pt from the target, median; in session B, 44 pt.
- Correct
- Wrong
- Missed (empty bar)
| Cell | Bar | Correct / wrong out of 40 |
|---|---|---|
| 440 × 96 pt cells (84.7 × 18.5 mm) | ||
| Session A | 39 / 1 | |
| Session B | 35 / 3 | |
| 141 × 96 pt cells (27.1 × 18.5 mm) | ||
| Session A | 39 / 1 | |
| Session B | 33 / 4 | |
| 104 × 96 pt cells (20.0 × 18.5 mm) | ||
| Session A | 37 / 1 | |
| Session B | 30 / 4 | |
| 104 × 62 pt cells (20.0 × 11.9 mm) | ||
| Session A | 31 / 4 | |
| Session B | 23 / 9 | |
| 67 × 62 pt cells (12.9 × 11.9 mm) | ||
| Session A | 27 / 4 | |
| Session B | 15 / 11 | |
Down to 96 pt tall (18.5 mm), 37 to 39 correct selections out of 40 in session A, with a single wrong one. At 62 pt (11.9 mm), about the size of an iPad keyboard key, wrong selections rise to 4 out of 40 in session A, and up to 11 out of 40 in session B. For typing by gaze, bigger keys pay off more than a better engine.
Checking every engine change
During a session, the app records, 60 times a second, the estimated gaze position, the pose of the head and eyes, the distance to the screen, and every engine decision. No images, no video. The test bench replays these traces offline. Before comparing anything, it checks that it reproduces the live run exactly: on both sessions in this report, 100% of frames (8,520 and 15,699) give the same decision as live.
- Correct
- Wrong
- Missed (empty bar)
| Cell | Bar | Correct / wrong out of 40 |
|---|---|---|
| 440 × 96 pt cells (84.7 × 18.5 mm) | ||
| Previous rule | 1 / 0 | |
| Current rule | 39 / 1 | |
| 104 × 96 pt cells (20.0 × 18.5 mm) | ||
| Previous rule | 0 / 0 | |
| Current rule | 37 / 1 | |
| 104 × 62 pt cells (20.0 × 11.9 mm) | ||
| Previous rule | 0 / 0 | |
| Current rule | 31 / 4 | |
Before, when two neighbouring targets both stayed compatible with the gaze, the engine waited without choosing. It now picks the nearest one.
Method and limits
| Device | 12.9-inch iPad Pro (6th generation), landscape, front camera and ARKit |
|---|---|
| Participant | One, with no motor impairment: the app’s developer |
| Period | 15 August to 2 October 2026 |
| Sources | 91 precision reports saved by the app; two sessions at 60 frames per second, replayed on the bench |
| Volume | 56 calibrations, 13 precision exercises |
- One participant, with no motor impairment. Room, light and distance to the screen (41 to 54 cm) were not controlled.
- The engine changed during the period: the runs do not repeat one system, they follow its evolution.
- Target sizes come from the bench. It does not simulate a person correcting their gaze when they see the app hesitate.
- A calibration’s error is measured on only 5 to 14 validation points.
The precision reports (JSON) and traces (JSONL) are available on request, along with the bench tools.