A tool for RoboFont for calculating gray levels at any point in a glyph.
Drag the tool over parts of a glyph to see the gray levels. The number in the blue box is a percentage.
- Airy disk blurring is caused by diffraction in the eye. It is independent of focus, other factors also contribute, these are not part of this tool.
- This blurring is small, but still typographically significant.
- This code uses its own convolution kernel. It does not generate or process a bitmap.
- Some tools for calculating the diameter of the Airy disk are in scaleTools.py
- For each measurement the tool has to do a fair number of calculations. Works fine on a Mid 2014 MacBook Pro, but might be slower on older machines. Increase the chunkSize in the source if necessary.
Suppose we are looking at 8 pt type from 40 cm, the angular size for the em is 24.26' arcminutes. See on sizecalc.com. Also suppose the em for this font is 1000 units.
Pupilsize (mm) | Airy disc diameter (arcminutes) | (upm * angular size Airy diameter) / angular size em (em units) |
8.2 | 0.658 | 27.13 |
1 | 4.494 | 185.28 |
Airy disk diameter data from Review of Basic Principles in Review of Basic Principles in Optics, Wavefront and Wavefront Error by Austin Roorda, Ph.D. University of California, Berkeley. http://roorda.vision.berkeley.edu.
These numbers can be an indication about the physical limits of vision. As these calculations seem to show, letterforms at reading size and distance are at a scale where this kind of blurring is significant. This tool might assist thinking about the letterforms and what they should do. What's the weight in a stem, really? What happens in a counter when the radius changes? How dark is this margin? Etc.
- arrow up: increase diameter
- arrow down: decrease diameter
- command + arrow up: increase grid size
- command + arrow dow: decrease grid size
- c: clear trail
- t: toggle trail
- p: toggle grid
- i: invert
- 1 easy step from RoboFontMechanic
- wire up sliders for eye distance, typesize and pupil size.
- add support for non-circular kernels.