Illusions / Zöllner
Zöllner illusion
Parallel lines leaning toward each other.
Measured from the image
Sliders
How the effect works
Several long horizontal lines run across the image. Short hatch strokes cross each long line. The strokes on one line lean one way. The strokes on the next line lean the other way. The long lines look as if they tilt toward each other, yet they are exactly parallel.
The build script reads the angle of every long line from the image and reports zero degrees. It also reads the gap between neighbors and finds the same distance everywhere. The hatch slant alternates in sign from line to line, and the table below lists each slant. The tilt you see comes from the strokes and not from the lines.
Set the slant to zero and the strokes stand straight up. The lines look parallel again. Raise the slant and the lean returns. The sweep table follows the slant from zero to its maximum and marks the values where the geometric proxy stays below half. Spacing and stroke length matter as well, so move those sliders and compare. Lay a ruler along one long line on your screen and check the next line against the same edge. The gap holds.
Measured at the default settings
Image size: 520 by 350 px. The build script read these values from the rendered pixels.
- Line Y
- [70, 140, 210, 280]
- Line Angle Degrees
- 0
- Line Gaps
- [70, 70, 70]
- Hatch Slant Degrees
- [30, -30, 30, -30]
Where the effect weakens
The table sweeps Hatch slant from vertical (degrees); 0 removes the illusion and scores a geometric proxy from 0 to 1: sin(hatch slant) relative to a 45 degree slant. The proxy comes from the image geometry. The proxy measures geometry and not perception. Your own eyes decide what you see. Rows below 0.5 are marked weak.
Weak range: 0 to 20 deg. Proxy at the default setting: 0.707.
| hatchAngle (deg) | Proxy | Line Angle Degrees | First Slant Degrees |
|---|---|---|---|
| 0 | 0 (weak) | 0 | 0 |
| 5 | 0.123 (weak) | 0 | 5 |
| 10 | 0.246 (weak) | 0 | 10 |
| 15 | 0.366 (weak) | 0 | 15 |
| 20 | 0.484 (weak) | 0 | 20 |
| 25 | 0.598 | 0 | 25 |
| 30 | 0.707 | 0 | 30 |
| 35 | 0.811 | 0 | 35 |
| 40 | 0.909 | 0 | 40 |
| 45 | 1 | 0 | 45 |
| 50 | 1 | 0 | 50 |
| 55 | 1 | 0 | 55 |
| 60 | 1 | 0 | 60 |
Try this
- Set the hatch slant to zero. Watch the lean disappear while the lines stay put.
- Raise the slant a few steps at a time. Note where the lean starts for you.
- Change the hatch spacing and stroke length. Compare a sparse pattern with a dense one.
History
- Johann Karl Friedrich Zöllner reported the illusion in 1860. Source
Only facts confirmed against a source appear here. Where sources disagree, this site leaves the detail out.
More illusions
Entertainment only. Not a vision or health test.





