Unified Font Object

Last updated
Unified Font Object (UFO)
Filename extension
.ufo, .ufoz
Developed by Tal Leming, Just van Rossum, Erik van Blokland, Ben Kiel, Frederik Berlaen
Initial releaseUFO 1
Latest release
UFO 3
Type of format macOS Package, XML, Property List
Free format?Yes
Website http://unifiedfontobject.org

The Unified Font Object (UFO) is an XML-based source file format for digital fonts. It was created by Tal Leming, Just van Rossum and Erik van Blokland. [1] Contributors to the format also include Ben Kiel and Frederik Berlaen. [1] According to its creators, the UFO is a "future proof" open format that is designed to be "application independent", "human readable and human editable". [2]

Contents

History

The first version of the UFO format was created in 2003. [3] The most recent version, UFO 3, was released in 2012. [2]

RoboFog (1996–2003)

The idea for the Unified Font Object originated with a customized version of the font editor Fontographer 3.5. [4] Petr van Blokland, together with Just van Rossum and Erik van Blokland, and with assistance from David Berlow and Steven Paul of the Font Bureau, created and distributed on a subscription basis a customized version of Fontographer called RoboFog in 1996. [4] [5] RoboFog allowed users to script in Python, a language Just's brother Guido van Rossum invented two years prior in 1994. [4] [5] [6] The tool became very popular among type designers because of the ability to automate tasks. [5]

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]

  1. The data must be human readable and human editable.
  2. The data should be application independent.
  3. 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.

Application NameKind of ApplicationPlatformLicense
Area51UFO Viewer, feature editormacOSRetail [4] [11]
FontCreatorMultipurpose font editorWindowsRetail [23]
FontForgeMultipurpose font editorLinux, Windows, macOS (through X11)Mix of GNU General Public License v3 and BSD license [15] [24] [25]
FontLabMultipurpose font editorWindows, macOSRetail [17] [14]
GlyphsMultipurpose font editormacOSRetail [13] [17]
KalliCulatorParametric font editormacOSRetail [9]
MetapolatorParametric font editorOnline GNU General Public License [26]
MetricsMachineKerning editormacOSRetail [4] [11]
PrepolatorInterpolation compatibility managermacOSRetail [4]
RoboFontMultipurpose font editormacOSRetail [17] [27]
RoundingUFOFont outline rounding and inktrap toolmacOSRetail [11]
SuperpolatorMultidimensional interpolation managermacOSRetail [4] [11]
TruFontMultipurpose font editormacOS GNU General Public License [17] [28]
UFOStretchLinear Interpolation AppmacOSRetail [4]

Use in open source font projects

The UFO format is a popular choice among open source font projects because the XML-based, multiple file format is compatible with collaborative version control systems like Git. [29] SIL International recommends UFO as the format for new font projects. [17]

Use in programming

The UFO file format translates easily to object-based representation [33] in code. In addition to RoboFab, the project that originated the UFO format, many closed and open source projects read and write UFOs, for instance the Adobe Font Development Kit for OpenType. [17]

See also

Related Research Articles

<span class="mw-page-title-main">Glyph</span> Purposeful written mark

A glyph is any kind of purposeful mark. In typography, a glyph is "the specific shape, design, or representation of a character". It is a particular graphical representation, in a particular typeface, of an element of written language. A grapheme, or part of a grapheme, or sometimes several graphemes in combination can be represented by a glyph.

<span class="mw-page-title-main">Typeface</span> Set of characters that share common design features

A typeface is a design of letters, numbers and other symbols, to be used in printing or for electronic display. Most typefaces include variations in size, weight, slope, width, and so on. Each of these variations of the typeface is a font.

OpenType is a format for scalable computer fonts. Derived from TrueType, it retains TrueType's basic structure but adds many intricate data structures for describing typographic behavior. OpenType is a registered trademark of Microsoft Corporation.

<span class="mw-page-title-main">Fontographer</span>

Fontographer is a font editor for Windows and macOS; it is used to create digital fonts. It was originally developed by Altsys but is now owned by FontLab Ltd.

A computer font is implemented as a digital data file containing a set of graphically related glyphs. A computer font is designed and created using a font editor. A computer font specifically designed for the computer screen, and not for printing, is a screen font.

<span class="mw-page-title-main">Open-source Unicode typefaces</span>

There are Unicode typefaces which are open-source and designed to contain glyphs of all Unicode characters, or at least a broad selection of Unicode scripts. There are also numerous projects aimed at providing only a certain script, such as the Arabeyes Arabic font. The advantage of targeting only some scripts with a font was that certain Unicode characters should be rendered differently depending on which language they are used in, and that a font that only includes the characters a certain user needs will be much smaller in file size compared to one with many glyphs. Unicode fonts in modern formats such as OpenType can in theory cover multiple languages by including multiple glyphs per character, though very few actually cover more than one language's forms of the unified Han characters.

<span class="mw-page-title-main">FontForge</span> Font editor created by George Williams

FontForge is a FOSS font editor which supports many common font formats. Developed primarily by George Williams until 2012, FontForge is free software and is distributed under a mix of the GNU General Public License Version 3 and the 3-clause BSD license. It is available for operating systems including Linux, Windows, and macOS, and is localized into 12 languages.

<span class="mw-page-title-main">Cambria (typeface)</span> Serif font family

Cambria is a transitional serif typeface commissioned by Microsoft and distributed with Windows and Office. It was designed by Dutch typeface designer Jelle Bosma in 2004, with input from Steve Matteson and Robin Nicholas. It is intended as a serif font that is suitable for body text, that is very readable printed small or displayed on a low-resolution screen and has even spacing and proportions.

<span class="mw-page-title-main">Consolas</span> Monospaced sans-serif font

Consolas is a monospaced typeface designed by Luc(as) de Groot. It is a part of the ClearType Font Collection, a suite of fonts that take advantage of Microsoft's ClearType font rendering technology. It has been included with Windows since Windows Vista, Microsoft Office 2007 and Microsoft Visual Studio 2010, and is available for download from Microsoft. It is the only standard Windows Vista font with a slash through the zero character. It is the default font for Microsoft Notepad as of Windows 8.

<span class="mw-page-title-main">Constantia (typeface)</span> Serif typeface

Constantia is a serif typeface designed by John Hudson and commissioned by Microsoft. It is a transitional serif design, influenced by Eric Gill’s Perpetua design. Development of the typeface began in 2003 and it was released in 2006.

<span class="mw-page-title-main">FontLab</span> Font editor

FontLab is a font editor developed by Fontlab Ltd. FontLab is available for Windows and macOS.

<span class="mw-page-title-main">Linux Libertine</span> Typeface

Linux Libertine is a digital typeface created by the Libertine Open Fonts Project, which aims to create free and open alternatives to proprietary typefaces such as Times New Roman. It was developed with the free font editor FontForge and is licensed under the GNU General Public License and the SIL Open Font License.

<span class="mw-page-title-main">FF Meta</span> Sans-serif typeface

FF Meta is a humanist sans-serif typeface family designed by Erik Spiekermann and released in 1991 through his FontFont library.

A font editor is a class of application software specifically designed to create or modify font files. Font editors differ greatly depending on if they are designed to edit bitmap fonts or outline fonts. Most modern font editors deal with the outline fonts. Bitmap fonts uses an older technology and are most commonly used in console applications. The bitmap font editors were usually very specialized, as each computing platform had its own font format. One subcategory of bitmap fonts is text mode fonts.

FontShop International was an international manufacturer of digital typefaces (fonts), based in Berlin. It was one of the largest digital type foundries.

The Web Open Font Format (WOFF) is a font format for use in web pages. WOFF files are OpenType or TrueType fonts, with format-specific compression applied and additional XML metadata added. The two primary goals are first to distinguish font files intended for use as web fonts from fonts files intended for use in desktop applications via local installation, and second to reduce web font latency when fonts are transferred from a server to a client over a network connection.

<i>Adobe Systems, Inc. v. Southern Software, Inc.</i> United States District Court case

Adobe Systems, Inc. v. Southern Software, Inc. was a case in the United States District Court for the Northern District of California regarding the copyrightability of digitized typefaces. The case is notable since typeface designs in general are not protected under United States copyright law, as determined in Eltra Corp. v. Ringer. Since that case, the United States Copyright Office has published policy decisions acknowledging the registration of computer programs that generate typefaces. In this case, the court held that Adobe's Utopia font was protectable under copyright and Southern Software, Inc.'s Veracity font was substantially similar and infringing.

<span class="mw-page-title-main">Erik van Blokland</span>

Erik van Blokland is a Dutch typeface designer, educator and computer programmer. He is the head of the Type Media Master of Design program in Typeface Design at the Royal Academy of Art, The Hague in the Netherlands.

<span class="mw-page-title-main">Petr van Blokland</span>

Petr van Blokland is a Dutch graphic designer, software author and typeface designer who lives in Delft.

Just van Rossum is a Dutch typeface designer, software developer, and professor at the Royal Academy of Art in the Hague. He is the co-founder of design firm, LettError, along with Erik van Blokland. Just van Rossum is the younger brother of Guido van Rossum, creator of the Python programming language.

References

  1. 1 2 "Contributors". unifiedfontobject.org. Archived from the original on 2021-11-05. Retrieved 2021-11-05.
  2. 1 2 "Overview". unifiedfontobject.org. Archived from the original on 2021-11-05. Retrieved 2021-11-05.
  3. 1 2 3 4 5 "RoboFab Release History". 2008-10-04. Archived from the original on 2008-10-04. Retrieved 2022-02-21.
  4. 1 2 3 4 5 6 7 8 9 10 11 12 13 Arista, Roberto (Autumn 2016). "RoboTools: L'influenza dell'open source sugli strumenti di produzione del carattere tipografico" [RoboTools: The influence of open source on typeface production tools]. Progetto Grafico 30 (in Italian and English). AIAP Edizioni: 33–39.
  5. 1 2 3 4 Middendorp, Jan (2004). Dutch type. Rotterdam: 010 Publishers. p. 187. ISBN   90-6450-460-1. OCLC   54880333.
  6. 1 2 3 4 5 Kiel, Ben (May 4, 2005). "An Introduction to RoboFab". Typographica. Archived from the original on 2022-02-15. Retrieved 2022-02-21.
  7. Siracusa, John (2001-04-02). "Mac OS X 10.0". Ars Technica. Archived from the original on 2022-02-21. Retrieved 2022-02-21.
  8. "UFO 2". unifiedfontobject.org. Archived from the original on 2020-10-19. Retrieved 2022-02-21.
  9. 1 2 Peter 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. ISBN   978-3-03764-072-2. OCLC   630189661.
  10. 1 2 RoboFont. "The history of RoboFont". robofont.com. Archived from the original on 2022-01-26. Retrieved 2022-02-21.
  11. 1 2 3 4 5 6 7 "Robothon 2012, RoboHint, and the Gerrit Noordzij Prize". Typographica. Retrieved 2022-02-14.
  12. 1 2 "UFO 3". unifiedfontobject.org. Archived from the original on 2022-01-20. Retrieved 2022-02-21.
  13. 1 2 "Working with UFO | Glyphs". glyphsapp.com. Archived from the original on 2021-11-05. Retrieved 2021-11-05.
  14. 1 2 "Font Formats". help.fontlab.com. Archived from the original on 2021-11-05. Retrieved 2021-11-05.
  15. 1 2 "Technical Bulletin: UFO 3 Export". fontforge.org. Archived from the original on 2021-11-05. Retrieved 2021-11-05.
  16. "UFO 4". unifiedfontobject.org. Archived from the original on 2022-02-21. Retrieved 2022-02-21.
  17. 1 2 3 4 5 6 7 8 9 10 11 12 13 "Font Development Best Practices: UFO". silnrsi.github.io. Archived from the original on 2022-02-22. Retrieved 2022-02-22.
  18. "Glyph Interchange Format". unifiedfontobject.org. Retrieved 2022-02-14.
  19. "UFO: Unified Font Object". luc.devroye.org. Retrieved 2022-02-14.
  20. "features.fea". unifiedfontobject.org. Archived from the original on 2020-10-18. Retrieved 2022-02-21.
  21. Simonson, Mark (2014-06-12). "I didn't quite realize until recently: .ufo + Dropbox kind of sucks". @marksimonson. Retrieved 2020-05-28.
  22. Leming, Tal, ufonormalizer: Script to normalize the XML and other data inside of a UFO. , retrieved 2022-02-22
  23. "FontCreator features and benefits". www.high-logic.com. Retrieved 2022-09-23.
  24. Willis, Nathan (2014-12-08). "A quick look at the new FontForge release [LWN.net]". lwn.net. Archived from the original on 2022-02-21. Retrieved 2022-02-21.
  25. Willis, Nathan. "Font and type development at LGM 2014". lwn.net. Archived from the original on 2022-02-21. Retrieved 2022-02-21.
  26. "Metapolator – Free Font Editor for Designing Typeface Families". metapolator.com. Retrieved 2022-02-21.
  27. RoboFont. "Welcome to RoboFont!". robofont.com. Archived from the original on 2021-11-05. Retrieved 2022-02-21.
  28. Willis, Nathan (April 27, 2016). "Introducing TruFont [LWN.net]". LWN.net. Archived from the original on 2018-11-23. Retrieved 2022-02-21.
  29. 1 2 "LWN.net Weekly Edition for August 29, 2013 [LWN.net]". lwn.net. Archived from the original on 2021-11-05. Retrieved 2021-11-05.
  30. "Cooper Hewitt: the typeface by Chester Jenkins | Cooper Hewitt, Smithsonian Design Museum". www.cooperhewitt.org. 2014-06-13. Retrieved 2022-02-21.
  31. "Inisiatif Google Melestarikan Bahasa Terancam Punah Lewat Noto Font". liputan6.com (in Indonesian). 2020-11-25. Retrieved 2021-11-05.
  32. "Open Baskerville". klepas.org. Archived from the original on 2022-01-02. Retrieved 2022-02-22.
  33. 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. ISBN   978-3-86956-464-7. OCLC   1169672607.