Learning A Stroke-Based Representation for Fonts

Elena Balashova, Amit H. Bermano, Vladimir G. Kim, Stephen DiVerdi, Aaron Hertzmann, Thomas Funkhouser

Research output: Contribution to journalArticlepeer-review

13 Scopus citations


Designing fonts and typefaces is a difficult process for both beginner and expert typographers. Existing workflows require the designer to create every glyph, while adhering to many loosely defined design suggestions to achieve an aesthetically appealing and coherent character set. This process can be significantly simplified by exploiting the similar structure character glyphs present across different fonts and the shared stylistic elements within the same font. To capture these correlations, we propose learning a stroke-based font representation from a collection of existing typefaces. To enable this, we develop a stroke-based geometric model for glyphs, a fitting procedure to reparametrize arbitrary fonts to our representation. We demonstrate the effectiveness of our model through a manifold learning technique that estimates a low-dimensional font space. Our representation captures a wide range of everyday fonts with topological variations and naturally handles discrete and continuous variations, such as presence and absence of stylistic elements as well as slants and weights. We show that our learned representation can be used for iteratively improving fit quality, as well as exploratory style applications such as completing a font from a subset of observed glyphs, interpolating or adding and removing stylistic elements in existing fonts.

Original languageEnglish (US)
Pages (from-to)429-442
Number of pages14
JournalComputer Graphics Forum
Issue number1
StatePublished - Feb 1 2019

All Science Journal Classification (ASJC) codes

  • Computer Graphics and Computer-Aided Design


  • Computing methodologies∼Shape analysis
  • curves & surfaces
  • typography


Dive into the research topics of 'Learning A Stroke-Based Representation for Fonts'. Together they form a unique fingerprint.

Cite this