Type × Code

Where and when a type designer could use some coding knowledge

September 7, 2023


Designers (this includes type designers) have been discussing for quite some time now whether or not they will lose their jobs unless they learn how to code. We believe that it won’t happen (and ABC Dinamo, for example, agree with us), although some knowledge of Python and Javascript makes it easier to work with type and helps bypass limitations of font editor software. This piece focuses on what exactly a designer might need a coding skill (or its understanding) for.

To write scripts, plugins, or extensions

Scripts, plugins and extensions simplify one’s working process in a font editor.

Scripts do not introduce any new features to software, but allow to automate repetitive tasks and routine processes. For instance, there are some scripts for Glyphs that help get rid of unnecessary points in the outline, remove unused layers, or find the highest/lowest points in the font. You can either insert a script copied from GitHub into a special window in Glyphs or Robofont, or write a script from scratch using Python.

Extensions or plugins Theoretically, extensions are suitable for different programs, and plugins are written for a specific one. In the context of font editors, these words are interchangeble. are more complicated than that. Unlike scripts, those are not just pieces of code which can be copied, but separate small applications — and they can introduce new features into software. Robofont Extension Manager list includes extensions that allow to block any selected segments of the outline, generate color fonts, manage kerning, or even make everything you space gold.



To create new tools

You can write not only plugins and extensions, but also software. For example, it was designers who wrote an online Specimen Builder, Color Font Customizer, a font previewer app FontGoggles, FontForge and BirdFont editors. The first two are JavaScript, while the last three are Python — their code is open-sourced and anyone with a knowledge of Python can modify these apps for their own particular task.


4


The tools written by several designers are brought together in the AFDKO, a collection of Python libraries for working with fonts released by Adobe. Among other things, AFDKO can export a font from a UFO file without launching a font editor, or create a PDF file with each glyph with marked contour points and vectors placed at an individual page.

But designers create a number of less applicable things as well: a student at the University of Coimbra wrote a programme which makes it possible to generate a new font by mixing the components of existing typefaces (for example, taking balls from Bodoni and stems from Helvetica Neue). The places where the elements join each other are not always visible, as the letter contour is filled with the pattern. Certainly, the eventual decorative typeface won’t be able to serve a large number of projects.


5


While designer Charlie Jeffries connected a database to a typeface and made it visualize how the corals erode because of the climate change.



You can learn to write apps in Python using DrawBot. Just Van Rossum (who created Font Goggles), Erik van Blokland, and Frederik Berlaen conceived it as a tool for designers. For instance, DrawBot is used by the students at TypeMedia and Type@Cooper who have never coded before. (At Type@Cooper, the DrawBot class is delivered by David Jonathan Ross, author of Fit, Forma DJR, Input and Megazoid).


7Gallery of adaptive typography created with Drawbot by TypeMedia students


Adaptive typography for the King’s Day celebration. Designed by Dumdar studio with Drawbot


To bypass existing limitations

The type foundries that actively use code are not just optimising the way they work, but also questioning the usual algorithms of dealing with type.

For example, Underware suggests using cubic Bézier curves instead of quadratic Bézier curves and replacing linear interpolation with higher order interpolation. This should help create variable fonts of a better quality with a smaller amount of master files (it will also enable inserting animation).


9


Software engineer Behdad Esfahbod wrote a code that helps bypass a 65,535 character limit and introduce all the Unicode glyphs (its current amount is 149,186) into one font file. A 65-thousand limit may seem unattainable, but that is the actual number of characters in Noto Sans which supports Greek, Georgian and Devanagari, but doesn’t support Korean, Japanese and Chinese scripts.

To present a font in a spectacular manner

If you need to make an animation quite fast, you can use code. Typically, a tool used by designers for this purpose is Processing — a computer language and most convenient applications for creative coding. In Python Mode, you can write code using visualisation features offered by this software. By the way, Anatoly Graschenko used the Processing tool while running our Instagram account. As some members of our team are living in Russia we have to follow the Russian law. According to the law, every time we post links to Instagram or Facebook we have to mention the fact that these socials belong to Meta, which was recognized as extremist by the Ministry of Justice if the Russian Federation.




Artist and programmer Rajshree Saraf once mocked the designers’ love for such presentations. He came up with a variable native AR font which only exists in an app, with a slider on the variation axis replaced by the surfaces you point your camera at — the letterforms vary depending on the geometry of space.


10


To communicate with software engineers

If you need to commission a script, plugin or an app, understanding how code works could help you assign a task to a coder in the best possible way. A knowledge of CSS might help understand how exactly a layout designer will be using your font and, if necessary, modify the file to ensure that the font works equally well on as many devices as possible and in as many tools as possible.