Towards FontLab 7»
by Adam Twardoch, December 2019
The history of digital type design, and the history of outline font editors, encompasses more than 40 years, and FontLab is proud to have had a hand in it for the better half of that period. In this article, we look back at how FontLab 7 came into being.
Chapter I: The Print Reader»
Ikarus, TeX, PostScript»
In 1975, at the ATypI conference in Warsaw, Peter Karow from the Hamburg-based company URW introduced Ikarus, the world’s first digital type design system that worked with outline fonts. In 1978, the Stanford professor of computer science, Donald E. Knuth, developed the first version of TeX, a novel computer typesetting system. A few years later, at the Xerox PARC facility in Palo Alto, John Warnock had been working on a page description language for computer graphics. This effort resulted in the development of PostScript, which was published in 1984 by Adobe Systems, a company founded by Warnock and Charles Geschke.
Type 1, Macintosh»
The vector graphics in PostScript were based on cubic Bézier curves, a system of 3rd-degree equations that allow for easy representation of smooth shapes using a simple system of control points (nodes and handles). The Bézier curves were developed in the early 1960s by two Frenchmen, Paul de Casteljau and Pierre Bézier, for the purpose of designing automobile bodies, but quickly found usage in other areas such as 2D computer graphics. PostScript included support for two Bézier curve-based outline font formats: the encrypted Type 1 format, which included a “hinting” mechanism for improving font rendering the at low pixel resolutions, and the the plain-text Type 3 format that lacked hinting. Apple Computer released its Macintosh computer the same year, and the first PostScript-equipped LasterWriter printer a year later.
Also in 1984, James R. Von Ehr II founded the Altsys Corporation in Richardson, Texas. The company set out to develop commercial font editors for the Macintosh, starting with Fontastic, a bitmap font editor. But the real challenge was to develop a competitor for the URW Ikarus system that had until then dominated the production of outline fonts. Ikarus used a proprietary spline system and required an expensive dedicated computer workstation. In January 1986, Altsys released Fontographer for the Macintosh, followed by version 2.0 just eight months later. Fontographer was the first commercially available Bézier curve editing software for the personal computer, and the first affordable PostScript font editor. It sparked “the democratization of type design”, allowing individual designers to create quality outline fonts, and with its follow-up product FreeHand, released by Altsys in 1988, complete vector illustrations.
In an attempt to avoid the costly licensing fees demanded by Adobe for its PostScript technologies, including the Type 1 hinting and encryption, in 1989, an engineering team at Apple, led by Sampo Kaasila, together with Microsoft, collaborated on the creation of the TrueType font format. Adobe responded by releasing the Type 1 font format publicly, and in the same year Altsys added support for Type 1 in Fontographer 3.0. While most software vendors followed Adobe and Altsys, and based their vector graphics software products on PostScript-compatible cubic Bézier curves, the TrueType font format used a simpler, quadratic form of Bézier curves called B-splines. TrueType also included its own sophisticated hinting mechanism that allowed for pixel-perfect font rendering control.
Unicode, Multiple Master»
In 1991, the Unicode Consortium developed the Unicode Standard to clean up and simplify the way text was stored and processed by computers. The same year, Adobe introduced a novel concept of variable fonts called Multiple Master. This extension of the Type 1 font format used linear interpolation of the outline point coordinates between extreme “master designs”. While interpolation had been previously used in digital font production, most notably in Peter Karow’s Ikarus system, Multiple Master brought the concept to the end-users, allowing them to fine-tune the weight, width or other typographic parameters of the fonts as they were using them in applications.
With the collapse of the communist system in Central and Eastern Europe in 1989-90, numerous talents from the former Soviet bloc realized the emerging opportunities. SoftUnion, a young Russian company formed in St. Petersburg, was looking for a Western partner who would distribute the software products the company was developing. One of the products was a DOS-based font editing application called Font Designer, developed by a team of programmers led by a young engineer Yuri Yarmola. In 1992, an American entrepreneur Ted Harrison established Pyrus North America and became SoftUnion’s worldwide distributor.
Chapter II: The Screen Reader»
In 1993, Apple released TrueType GX. This ambitious format extension added Multiple Master-like variation capabilities to TrueType, and introduced an intermediate layer between the previously synonymous notions of “character” and “glyph”. The sophisticated system of advanced typographic features in TrueType GX, later renamed AAT, allowed for ligatures, swash letters, old-style numerals or fractions and made the fonts suitable to support complex writing systems like Arabic or Devanagari. Also in 1993, Altsys released Fontographer 4, a version that added the automatic calculation of sidebearings and kerning. Yet the company’s focus increasingly shifted towards FreeHand which was aimed at a much larger market of graphic designers. At the same time, the Russian-American team of SoftUnion and Pyrus released a follow-up to the Font Designer product, called FontLab 2.0, along with ScanFont, a specialized autotracer that converted bitmaps into font glyphs.
1995 saw a decline of sales for Apple, and an explosion of the popularity of Microsoft Windows 95. While Fontographer retained a loyal Macintosh customer base, FontLab attracted a growing number of Windows users. In 1996, Altsys was acquired by the San Francisco-based multimedia software maker Macromedia that released one more version of Fontographer, this time for both Mac and Windows, but then shifted its priorities towards FreeHand and the rapidly growing web market, where they utilized the newly-acquired vector graphic technologies in a new product called Flash. The development of Fontographer was halted for nearly a decade.
Unicode and TrueType were subsequently implemented in Microsoft Windows and Mac OS, and laid the foundations for multilingual text processing, while Type 1 fonts and Bézier-based PostScript graphics established themselves firmly in the desktop publishing sector. However, the growing rivalry between Adobe, Apple and Microsoft prevented the more ambitious aspects of the font technology from widespread adoption. Variable fonts and advanced typographic features were largely shelved for a decade, but the rapidly expanding PC market and the advent of the World Wide Web made extensive use of one particular advanced aspect of the TrueType font format: the hinting.
The mid-1990s saw unprecedented numbers of users interact with computer screens, by creating office documents and browsing web pages. Since computer screens were of comparably low resolution and could show a limited number of colors, screen text readability posed a serious challenge. The TrueType hinting mechanism (called “instructions”), invented by Sampo Kaasila for Apple, was put into marvelous use by the then-dominant software maker, Microsoft. In 1996, Microsoft released Verdana and Georgia, a set of two font families developed by Matthew Carter and Tom Rickner. These fonts featured pixel-perfect quality and superb readability at each screen size, and virtually took over the web text for another 14 years.
From OpenType to FontLab Studio 5»
In 1998, Pyrus released FontLab 3.0 for Windows. Following a complete rewrite of the software by the team under Yarmola, FontLab 3.0 for the first font editor ever that allowed native editing of Type 1 and TrueType fonts, with full Unicode support and manual TrueType hinting. The same year saw Microsoft and Adobe announce OpenType, a significant initiative that unified PostScript, TrueType and Unicode, and added advanced typographic features, in a way that was similar to Apple’s GX but simpler to develop.
FontLab 3.0 for Mac was released a year later and in 2000, a new company FontLab Ltd. was formed to continue development and distribution of the FontLab products. In December 2001, FontLab 4 for Windows was released. The font editor gained the ability to create OpenType fonts, along with the advanced typographic features, and added Python scripting capabilities. In subsequent years, FontLab Ltd. continued to improve its flagship FontLab font editor and expanded its palette of font-related applications, by adding an entry-level font editor TypeTool, new versions of the ScanFont autotracer, a specialized bitmap font editor BitFonter, a CJKV-supporting font editor AsiaFont Studio and the TransType font converter.
In 2005, FontLab Ltd. acquired the aging Fontographer codebase from Macromedia, before that company was acquired by Adobe. FontLab Ltd. released a minor 4.7 update to Fontographer, and a major upgrade to the FontLab app, called FontLab Studio 5. In 2010, Fontographer received a major upgrade to version 5, and the company started an ambitious, massive overhaul of its product line.
Python, RoboFab, UFO, RoboFont»
In the late 1980s, Petr van Blokland created a variant of Ikarus called Pika (Parametric Ikarus), and developed the Macintosh version of Ikarus called Ikarus M. In the early 1990s, Just van Rossum, Petr van Blokland and Erik van Blokland licensed the Fontographer 3.5 code from Macromedia, and added an ability to develop extensions in Python, the programming language created by Just’s brother Guido van Rossum around the time. Petr van Blokland: “The best ideas from Pika went into RoboFog”.
When the development of Fontographer went dormant, and FontLab 4 was released that also used Python for scripting, Tal Leming, Erik van Blokland and Just van Rossum developed RoboFab, a RoboFog-like environment for programmatic type creation inside and outside of FontLab. The RoboFab developers: “the API for interacting with the FontLab core was very different from the API in RoboFog. So, a few of us (Erik, Just, Tal) wrote a library called RoboFab that implemented an API that was very similar to the RoboFog API”. The same group also created Unified Font Objects (UFO), an XML-based human-readable format for interchanging font sources. UFO unified ideas that originated in Pika, Fontographer, RoboFog, FontLab, RoboFab and OpenType. In 2012, Frederik Barlaen created a pure-Python UFO font editor for Mac OS X: RoboFont.
Chapter III: The Mobile Reader»
In 2011, Apple introduced its proprietary table to TrueType, called
sbix and published the Apple Emoji font that held colorful bitmap graphics inside a font file. Microsoft had done a similar thing with their
CBDT table short after, which used composite glyphs filled with flat colors. Neither solution seemed good in long term to me, so I started a discussion with Adobe, Apple, Google and Microsoft to introduce
SVG, a capable format for vector and bitmap graphics, into OpenType. Adobe found this a good idea, and we formed a W3 working group that developed the specification.
Victoria, TransType, Glyphs»
In 2010 Apple introduced Mac OS X Lion that dropped support for the PowerPC-based software. The move to Intel-only Mac OS X confirmed our realization that the days of the beloved FontLab Studio 5 introduced five years prior, were counted. We had worked hard on a comprehensive upgrade of the Mac codebase of FontLab Studio 5, and some time in 2011, we released FontLab Studio 5.1 — no new features, but a huge work effort behind us, to move the software from PowerPC to Intel. FontLab Studio 5.1 was Intel-based, but it was still 32-bit, and it used the older Carbon framework. We knew that at some point, Apple would remove support for 32-bit apps, and it would remove Carbon.
At Fontlab Ltd., we knew that the FontLab Studio 5 codebase was very limited. Integer coordinates limited to 32,000 in either direction, monochrome bitmaps in the background, a hard limit on interpolation axes, and many many other limitations. And the code was old. Five years earlier, we had acquired Fontographer, which used fractional coordinates at its core, so scaling contours up and down was lossless. It also had some cleverness in the handling of geometry. Finally, for several years, users had been asking for many things that we simply couldn’t have done in FLS5.
So Yuri and our team undertook an ambitious step of writing a font editor from scratch. We codenamed the project Victoria, and started the work. The first app based on the new codebase was TransType 4, released in 2013. A font converter, which also served as a platform for us to test reading and writing of various font formats, and converting between them. We developed TransType 4 in collaboration with Georg Seifert, and talented designer and developer, who later went on to create Glyphs, his own font editor for Mac OS X and a welcome addition to the market of type design software. Shortly after, Thomas Phinney joined the company, to take over managerial duties, which allowed Yuri, myself and the rest of the team to focus on development.
Variable OpenType fonts»
In 2013, I had also realized that font formats were still missing one important thing. We’ve had had Unicode and advanced typographic features since 2000 thanks to OpenType. Since 2010, we also had cross-browser web fonts, thanks to the WOFF format. And several different OpenType extensions finally allowed OpenType to go beyond black and white. But one thing had been tried before, and “failed”: variations, or multiple masters. Adobe had the Multiple Master format for Type 1, and briefly introduced it to OpenType in 2000, only to remove it shortly after. And in 1994, Apple had not only designed, but also implemented TrueType GX Variations. I knew that in 2005, George Williams (the author of the opensource font editor FontForge) had made a second, though incomplete, implementation of TrueType GX Variations in the opensource FreeType rasterizer — the font engine that was now powering Google’s Android.
So I thought, if Apple and Google can, in principle, support TrueType GX Variations out of the box, and Adobe’s apps still have some hidden code that at least conceptually allows for variation (thanks to the retired Multiple Master support) — maybe the time was right for “responsive fonts”, based on the GX solution. So I made some experiments, prepared some demos, wrote on the technical forums, convinced some people that it was worth a try. Around 2015, it turned out that Microsoft was also interested in making the fonts variable, so we formed a working group, and a year later OpenType Font Variations became a reality.
In 2015, Fontlab Ltd. published a “Public Preview” of the new Victoria-based font editor. I decided to name it somewhat differently: with a Roman numeral. After all, FontLab VI was going to be as different from FontLab Studio 5 as Mac OS X was different from MacOS 9. Had I realized that the letters “VI” stood not only at the beginning of “Victoria” but also of… “Vista”, I perhaps would have been more of the difficulties that were still ahead.
FontLab VI included many novel concepts, but it also took over from the rich legacy of our apps. It implemented some of the long-standing suggestions from our users, such as a unified drawing and spacing window, a concept which Glyphs also implemented and which was received warmly by many users.
FontLab VI Public Preview was “future-ready”: cross-platform at its core, rather than needing a tedious “porting” process; able to draw all its rich user interface on multiple high-density screens; supporting interpolation in a way that was compatible with the, at the time, upcoming variable OpenType fonts; supporting color, with SVG, bitmaps and plain outlines. Internally working with fractional coordinates. Full of ideas that our team had been tinkering with for several years by then. But above all, FontLab VI was filled with our experience of working with type designers all over the world for some 20 years.
On the other hand, the Public Preview was very “not ready”: at times, it was a radical departure from what people were used to. It was unstable, full of functionality that worked “in name only”. For two years, people were downloading FontLab VI Public Preview. Some were happy about the things that worked, and the way they worked, but many got very frustrated and discouraged with the things that didn’t work. Or about the way the things worked. We kept working.
In 2017, we finally shipped FontLab VI 6.0.0. In many aspects, this version was very much like Mac OS X 10.0 — fresh, but immature. Hopeful, but also disappointing. Or indeed, like Windows Vista — which was a great step in the right direction, but was not quite yet the right follow-up to the successful Windows XP. Up until then, the 30 Public Preview releases were accompanied by about 100 book pages of “release notes” that detailed the changes, improvements and fixes.
Since 2017, we published 18 updates to FontLab VI, and the release notes (for which I was largely responsible) covered 250 book pages. Those updates gradually changed the face of the app, from “experimental” to “usable”. But FontLab VI still had its limitations.
So in the first months of 2019, we decided to take another major step: rather than publishing monthly builds that addressed small problems and made limited changes, we took the time to re-engineer some major parts, based on the feedback from our users. We took a bird’s eye view on the entire app, and identified some major things that we needed to do. The two years since the 6.0 release taught us what type designers liked about the app, what they disliked strongly, what it lacked. We also knew what we had wanted to put in there originally, but were too busy with putting other things in there that also needed to be put in there.
We released FontLab 7 in December 2019.