The Raster Tragedy at Low-Resolution Revisited:
Opportunities and Challenges beyond “Delta-Hinting”
I’m a computer scientist and an aspiring artist, but not a lawyer. As far as I understand, text, illustrations, and code of my website enjoy the protection of the Berne Convention and the WIPO Copyright Treaty, hence just because it’s free you still can’t copy it or claim it as your own intellectual property, let alone redistribute and charge money for it!
That said, please feel free to link to this website as you see fit, or quote from it, as long as you don’t proactively pull “sound bites” out of their context to misquote them. Also, if you have an old-fashioned internet connection that charges you by the minute, please don’t hesitate to temporarily save individual pages for subsequent reading at your own leisure.
I would think that this constitutes “fair use.” Yet from what I read, even the U.S. Copyright Office hesitates to explain at what point you’re crossing the line: “The safest course is always to get permission from the copyright owner before using copyrighted material.” This pertains in particular to trademarked and patented technologies discussed on this website, such as ClearType, CoolType, and Quartz.
I caught this bug sometime in the late 70s. Our math teacher carted a “programmable calculating machine” into our classroom, about the size of a cash register, and we were supposed to “program” basic trigonometry of right-angled triangles on it. Fascinating! With a few key-strokes I can build a machine that solves trig problems? Programming seemed so clean at the time.
By the end of the decade my Dad bought an Apple ][ with “high-resolution graphics” (192 × 280 pixel) and a small black-and-white TV as monitor. I learned Basic and got into visual representations of mathematical functions, including superpositions of “harmonics” (Fourier synthesis) and wire mesh representations of simple 3D curves (surface modeling). Abstract science got concrete images.
By the time I started my degree in Physics, computer programming was a mandatory subject. We were taught the theoretical perils of numerical solutions to scientific problems, and I took a part-time job as “micro-programmer” that taught me the consequences of rounding currencies in foreign exchange scenarios. The accounts had to add up—even after factoring in all the currency rounding rules.
I decided to pursue computing sciences as my minor and attended classes in operating systems design, compiler and text-editor construction, and computer graphics. I vividly recall sitting in the lecture hall awaiting my first class with Prof. Niklaus Wirth, who had just returned from a sabbatical in the fabled Silicon Valley. After all, he had invented the programming language Pascal and hence I expected… not sure what I was supposed to be expecting but there sure wasn’t any fanfare. We learned to get things done properly without fanfare.
After I had passed the final exams in Experimental Physics I applied for a position as a PhD student in computing sciences. One of my underlying ideas was that this would let me make experiments without building expensive particle accelerators nor blowing up nuclear power stations as had happened not too long ago in Chernobyl and not too far away from Switzerland: Allow about 1000 miles as the crow flies—I remember the hand-written signs in the grocery stores listing food items that were still safe to eat.
Serendipity got me to share an office with Hans Ed. Meier. I recall seeing him sitting at his Lilith’s full page display, making minute changes to the page-filling outlines of a German ‘ß’ ligature. I couldn’t readily see the difference this would make, but Hans always had an explanation—explanations that somehow reminded me of those by my piano teacher. Fascinating—again! Could it be that there is a way of combining intuitive art with rigorous science and engineering?
I’d sure love to know. At a time when neither TrueType nor Type1 had been publicly released, the Institute was interested in font-scaling as a research topic, and I did have a passion for experimenting with computer graphics. Well… this is how I got into font rendering.
In the course of my PhD project, I designed and implemented a complete font-scaling system including the raster device primitives of the display driver, an object-oriented graphical toolbox for scan-converting and rendering lines and Bézier curves and enabling their assembly into compound objects, a windowing framework with multiple overlapping windows combining text and graphics, an outline font editor with multiple character and multiple views-per-character capabilities along with sophisticated affine dragging or copy and paste operations, a formal outline font definition language (“hinting” language) for hierarchical outline fonts, a compiler for said language, a simple hyper-text editor with graphical feedback in-line with the formal text and with hierarchical folding capabilities reflecting the hierarchy of the language, a representation of compiled fonts as persistent polymorphic DAGs (directed acyclic graphs) that are rasterized by invoking the scan-convert method of the graph’s root with a filling tool and a suitable transformation matrix, the prerequisite meta-programming infrastructure to guarantee referential transparency of the graphs during store and reload (multiple references to the same instance of a derived class), and last but not least, a device independent (“WYSIWYG”) document editor integrating text and graphics and implementing style sheets powerful enough to write and typeset my entire thesis (a subsequent addition to said editor enabled its conversion to
I learned a lot in the process, and oftentimes had a lot of fun doing it. Yet with all the software I had written, the object code and symbol files of the entire project, including those of the Oberon system for Windows, fit on a single 3½″ (1.44 MB) diskette—yes, in 1994 we stored kilobytes, not Megabytes, let alone Gigabytes.
After successfully defending my PhD, I joined Microsoft Typography to learn about the world-class “hinting” of the Windows Core Fonts. From my academic background, this was a bit of a set-back: To achieve their legendary on-screen quality, they used plenty of delta exceptions. So that is how they do it!? In my academic book, that’s cheating—a technophiliac disguise for “pixel-popping.” Over time, I learned that deltas are merely part of the “hinting zoo.”
Nevertheless I had many enjoyable moments eventually making a number of important contributions to font rendering, including completely re-writing the compiler for the font “hinting” language used in Type Solution’s Typeman software (the predecessor to Visual TrueType), working with some of the world’s leading typographers to design and implement a graphical user interface for said font “hinting” language (Visual TrueType), modifying the TrueType rasterizer to allow existing fonts to use ClearType (ships starting with Windows XP), combining ClearType with “gray-scaling” to prototype “y-anti-aliased ClearType” (a version thereof ships with Windows Presentation Foundation and since around 2011 it’s part of trademarked DirectWrite), prototyping a highly complex tool to automatically “hint” TrueType fonts outperforming manual “hinting” in many respects, and last but not least, making essential contributions to numerous patents.
After all of the above I didn’t see anything else I could possibly contribute to the “font story” and make a career out of it at Microsoft, hence I moved on. But once you’ve been infected with the “font bug,” it’s like with that line in that song: “You can check-out any time you like, but you can never leave!”
For sincere inquiries, suggestions, or corrections, and as long as the topic hasn’t been covered in the Frequently Asked Questions, please feel free to contact me by . I’ll read any feedback that appears genuine, unless it has been blocked by my provider’s spam filter, but please be patient with waiting for replies: I may be out in the wilderness, honing my photography craft, with little or no access to the internet.
If you have learned anything new on this website or if you wish to help keeping it free, particularly free of annoying “blinkenads,” please consider making a donation that reflects how much this is worth to you. Think of the price of a full color text book and the tree saved by not printing it, or the cost of attending a seminar and the CO2 saved by not traveling to that seminar. Making a donation is really easy, takes less than a minute, and all major credit cards are accepted painlessly. Go ahead: