In 1998, FontLab, rival font editor developer to Fontographer (then owned by Macromedia) added Python to version 2.0 of their application, partially due to the popularity of RoboFog.[4] On March 24, 2001, Apple released Mac OS X 10.0, a major rewrite of the Mac operating system.[7] Fontographer was by then too old to be ported to Mac OS X, so the RoboFog developers turned their attention to FontLab.[5]
RoboFab and the creation of UFO (2003–2009)
In February, 2003, at the TypoTechnica conference in Heidelberg, van Rossum, van Blokland and Baltimore-based type designer Tal Leming combined their existing FontLab API scripts into a Python module called RoboFab.[6][3] The group started going by the name "The RoboFab Consortium".[6] With RoboFab came a need for an interchange file format for transferring font data between RoboFog and FontLab.[4] In April, 2003, van Rossum started work on an XML-based file format for glyph data called the Glyph Interchange Format (GLIF).[3] In July, 2003, the group started work on the first UFO file format (later known as "UFO 1"), which used "GLIF for glyph information and Apple's.plist (also XML based and entirely cross platform) for any other data as listings, indices, etc."[3] The group intended to present it at the 2003 RoboThon conference, but its launch was delayed until March 14, 2004.[6][3]
The group introduced the UFO with the following manifesto:[4]
The data must be human readable and human editable.
The data should be application independent.
Data duplication should be avoided unless absolutely necessary.
In the consortium's view, font data should be independent of font editors to avoid issues like Software rot, which the field of type design is particularly prone to, due to the long period of time that fonts take to develop and the relative lack of variety in font editing applications.[6]
Decentralization (2009–Present)
In 2009, UFO version 2 was announced at RoboThon 2009, bringing minor changes to the format.[8] A variety of applications outside of FontLab using the UFO format started to be written at around this time, such as Leming's kerning application MetricsMachine, van Blokland's interpolation application, Superpolator, and Frederik Berlaen's parametric design application, KalliCulator.[4][9]
At the request of David Berlow and Petr van Blokland, Frederik Berlaen started work in 2009 on a font editor that used the UFO as a native format.[4] Because of the network of apps now being used in the "UFO workflow", "the dependency of FontLab as a central drawing environment had created a bottleneck", in their view.[10] Berlaen presented his font editor RoboFont at ATypI 2011 in Reykjavík,[10] and gave it the tagline, "The missing UFO font editor".[11]
At RoboThon 2012, UFO 3 was announced, and Tal Leming was named “Benevolent Dictator for life” of the UFO format.[11] Major changes to the UFO include a reworking of how the format organizes design layers, and an introduction of a ZIP-compressed "UFOZ" format.[12]
Shortly thereafter, other font editing programs, such as Glyphs,[11][13]FontLab[14] and FontForge[15] started supporting the UFO as an interchange format.
The fourth version of the format, "UFO 4", is currently in the concept phase.[16]
Technical format
The UFO is a package; a file system directory that presents as a single file on MacOS. On Windows and other operating systems without support for packages, it appears as a normal file system directory with the extension ".ufo".[17]
UFOs are organized with XML-based Property List files in the main UFO file system directory, describing font-wide metadata, like font name and weight, as well as interactions between glyphs, like glyph groups and kerning.[17]
Files containing glyph outline data are contained in a directory one level down, one file per glyph.[17] These files end in ".glif", and are in an XML-based format called "Glyph Interchange Format (GLIF)".[18] GLIF files can describe glyph Bézier curves in cubic or quadratic formats.[19]
OpenType features in AFDKO feature syntax are stored in a plain text file in the main UFO file system directory, with the filename extension ".fea".[20]
Criticism
A common criticism of the format is that its structure (of sometimes hundreds of GLIF files) does not work well with online file hosting services like Dropbox.[21] This criticism led to the proposal and adoption of the "UFOZ" format, which is a UFO (version 3 and up) compressed into a ZIP archive.[12]
Another criticism of the UFO is that there is no normalized form, as the order of elements in its files and indent standards are left up to the editor.[17] This led to the creation of a few "UFO Normalizers", like the "psfnormalize" command in SIL International's "pysilfont" project,[17] and the "ufonormalizer" project by Tal Leming.[22]
Use in applications
The following are some applications that support the UFO format either natively or as an officially-supported interchange format.
^Siracusa, John (2001-04-02). "Mac OS X 10.0". Ars Technica. Archived from the original on 2022-02-21. Retrieved 2022-02-21.
^"UFO 2". unifiedfontobject.org. Archived from the original on 2020-10-19. Retrieved 2022-02-21.
^ abPeter Bilak; François Rappo; Pierre Keller (2010). Typeface as program : applied research and development in typography = Le caractère typographique comme programme : recherche appliquée et développement en typographie. Lausanne, Switzerland: École cantonale d'art de Lausanne. ISBN978-3-03764-072-2. OCLC630189661.
^Beckmann, Tom; Justus Hildebrand; Corinna Jaschek; Eva Krebs; Alexander Löser; Marcel Taeumel; Tobias Pape; Lasse Fister; Robert Hirschfeld (2019). The font engineering platform collaborative font creation in a self-supporting programming environment. Potsdam: Universitätsverlag Potsdam. p. 72. ISBN978-3-86956-464-7. OCLC1169672607.