Parallax offset changes with viewing angle; it is not a fixed amount
Aliases: view-dependent parallax · non-constant offset
What it is
Parallax is not a constant such as “ink is always 4 px to the right”. Tilt the head or the tablet, the angle between line of sight and the normal changes, and both direction and magnitude of the offset change. People rarely face the screen square-on while writing, and often hold the board on a lap or a slant, so a product that applies one fixed vector only lines up at one viewing angle.
Why it happens
In simple geometry, offset ≈ thickness × tan(incidence), in the direction of the gaze projected on the screen. At zero incidence (head-on) offset is near zero; ordinary writing at 20°–40° already turns millimetres of thickness into several pixels. Moving the head, rotating the tablet, or looking from upper-left at a lower-right character changes incidence inside one sentence. A fixed-vector compensation can cancel one reference angle (usually the factory photo) and leaves a residual that grows with tangent again at other angles. To compensate with angle, the system needs gaze direction—a front camera estimating the head, or an assumption that the person sits at a given height in front of the device, which fails on a lap. Without dynamic compensation, the honest move is to thin the stack and admit residual at a slant, rather than claim “calibrated to zero offset”. If the other hand lifts the board mid-line and incidence changes faster than compensation, people feel “it was true a moment ago, this line is not”.
Studying it
Pin the nib on a crosshair, vary viewing angle on a gimbal, and plot the offset vector against angle. Then have people write the same grid at a desk (head-on), on a lap (slanted), and lying on their side.
Independent variables: viewing angle, device tilt, fixed-vector compensation, head estimation. Dependent measures: offset vector, grid aiming error, reports of “sometimes true, sometimes not”.
Fixed compensation is best near its reference angle and worse at both ends; that is its signature.
Where it stops holding
A headset or a fixed stand keeps viewing angle almost constant, so a fixed vector is enough. Several people watching one board have different angles; any single-user compensation will punish some of them. Camera head estimation has privacy and latency costs and should not be a default writing dependency.
Applying it
- Do not quote a single pixel offset as the all-pose metric; report at least head-on and one slant.
- If a fixed vector is used, name the reference posture and do not claim zero parallax away from it.
- For lap and bed, prefer thinning the stack over a more aggressive fixed offset.
- How to check: nib still, sweep viewing angle 0° to 40°; uncompensated offset should grow roughly with tangent. After a fixed vector, it should near zero only around the reference. Write a grid in three postures; error that tracks posture confirms angle dependence.
Related
- Same group: C5.12.1 Glass-to-display gap causes parallax · C5.12.3 Offset needs per-model factory calibration · C5.12.4 Parallax and latency lag are independent and easy to confuse
- Adjacent: C5.03 Pen Hover Preview · C5.02 Pen Tilt and Azimuth
- Search:
viewing angle·parallax variation·slanted writing