The Spacing calculator was developed live on a live Twitch stream over a number of weeks. The process was a work of performative design research practice to explore the media and verbalize the work along the way. All aspects of data entry, trial and error, fumbling through math equations happened live on stream as a way to show the work behind such a simple solution. The presentation video is done in the vein of that process, while this blog post will work to explain how the calculator was developed, how it works, and a few strengths and weaknesses of the tool.
Origins of the Spacing Calculator
I started streaming type design in October 2019 as a speculative type project called Akimbo.Black. Much of the project was framed to think about different typographic environments, such as face filters and gifs, and an outlet to continue my creative practice. The work culminated in an exhibition at the Seerveld Gallery at Trinity Christian College.
When that exhibition ended in November, I largely stopped streaming and continued working on my own. What followed shortly was a global pandemic which caused nearly everyone in the world to sit at their computers for longer than they already were. Opportunity had struck to stream type design again.
Since streaming, I’ve nearly developed two typefaces, Harveaux, and Caeli. Both fonts speculate on the variable font format. During this process, it became apparent that the spacing of a font plays an integral role in its quality and appearance. In a moment of humility, when it came to spacing on the livestream, I had to reveal to my audience that I, in fact, had no idea how to space a font.
How to Space a Font Visually
In search of resources for spacing a font, I immediately turned to Designing Type by Karen Cheng. Without much effort, I learned that type is spaced based on two measurements: the capital H, and the lowercase n. By setting characters together, like HHH, HOH, nnn, non, designers can work out an even visual rhythm for their fonts. See Figures 1–4 for examples.
In Cheng’s examples, she breaks down the H and O and n and o of in Univers and Garamond for us. Then, she gives us a sort of formula, which is an adaptation of Walter Tracy’s work, for how to space the main alphabet. It reads like the steps below, and like Figure 5.
1 Equal to the sidebearing of the H
2 Slightly less than the sidebearing of the H
3 Half the sidebearing of the H
4 Minimum sidebearing
5 Equal to the sidebearing of the O
* Must be visually adjusted
These instruction, to me, felt equally instructive and vague—more like a John cage or Yoko Ono prompt. Using those ‘values’ we can apply each measurement to similar optical arrangements. Think, the left side of the uppercase “D” looks similar op the left side of the uppercase “H” while the right side of the uppercase “D” looks similar to the right side up the uppercase “O”. Therefore, we can apply the same measurements to those sides. Again, Figure 5 shows how each rule gets applied to the side of each letterform. With this in mind, designers are meant to apply it to the alphabet as in Figure 5.
There’s a similar ‘formula’ for the lowercase letters:
1 Equal to the left sidebearing of the n
2 Equal to the right sidebearing of the n
3 Slightly more than the right sidebearing of the n
4 Minimum sidebearing
5 Equal to the sidebearing of the n
6 Slightly less than the sidebearing of the o
* Must be visually adjusted
Regardless of my doubt, I went for it. All in. And honestly, when I spaced my fonts, they weren’t too bad! See example in Figure 6.
I would never use them to set text in, but not bad. Overall, it has an inconsistent visual tone—a standard I hold quite high when selecting a typeface for my clients. At its core, I wouldn’t select this typeface for my clients, which is too low for my own standards of production.
Learning to Space a Font and Evaluating the Process
What I learned from Cheng’s text, was that there were proportions and ratios involved in the spacing business. My math-brain was intrigued. I thought aloud on stream, “those things [sidebearings] are just percentages of the inner space. So, if you could input inner space, and pull a percentage out of it, you would get a precise number! And the beauty of percentages is that it doesn’t matter if you’re using points or picas or bits or ems or whatever it is that Glyphs uses: 67% is 67%.” See Figure 7 for a simplified image of what that all means.
Building the Spacing Calculator 1.0
In order to do this, I needed a data set. To begin, I started with the sans serif version of data with foresight of a more complicated issue later on. The dataset was composed of seven different fonts—some that did heavy lifting and are used frequently and others from contemporary type foundries that have found recent popularity. Namely, the fonts studied were:
- Roboto by Christian Robertson
- Open Sans by Steve Matteson
- GT America by Grilli Type
- Whyte by Dinamo
- Dia by Schick Toikka
- Noto Sans by multiple designers
In a spreadsheet, I input the side bearings for each letter, then divide that by the inner space of the “H” or “n” depending on the letter case in order to get a percent. This was done for all seven fonts in their upper- and lowercase letterforms, plus numbers and simple punctuation.
Then I simply averaged the percentages, which looks like Figure 8.
With this, I had an average average. The trick then was to apply those percentages to my letterforms. To sort out this proportion, the math looked like Figure 9.
And what I got was a beautifully precise spreadsheet. Feel free to take a look by downloading it here. It’s massive, it’s oppressive, and it’s gorgeous.
At 9:43 of the video, you can see a walkthrough. On the left of the sheet, there is an output, and to the right of the line, there are the fonts studied. At the top, there are inputs for the measurements of the font being designed: the inner space of the lowercase “n”, and the inner space of the uppercase “H”. WIth the sheet, a designer may input any measure on the top where it says, “inner space” and it’ll output sidebearings for the letterforms. For example, the input is changed to 100, all the letters get a value. And that value can be changed to anything. 647? Side bearings. 1298? Boom, side bearings. 1,652,988? ...point made.
And, once I entered the data, the Spacing Calculator 1.0 gave me Figure 11. See Figure 12 for an overlaid comparison between my optically adjusted spacing following the first formula, and the spacing with the calculator.
The visual results of the spacing calculator on Caeli were beautiful. It should be the goal of a type designer to get a font to look as good as it possibly can without kerning, and the Spacing Calculator worked wonders with Caeli. It was at this point that my previously mentioned challenge came into play.
Overcoming the Mathematical Challenge of Serifs, Spacing Calculator 2.0
While the results with Caeli, a sans serif grotesque font, work beautifully, my premonition about serifs came true. Before I entered the spacing numbers for Harveaux, I realized a fatal error—serifs broke the system.
Of course, serifs have to complicate the system because it’s math based, not visually based. Right? Technically speaking, Glyphs and other font design software adds sidebearing measurements to the furthest point. So the serifs get in the way—where I wanted to space via stems, glyphs wanted to space via math. See Figure 13 for the error.
Fortunately, I was already taking in measurements and noticed how Cheng was measuring space in her Garamond example: by subtracting the serifs. Again, math would come to the rescue. The last formula looked like Figure 14, right? Well, that was going to change.
So I pulled 7 more fonts, this time, with serifs. The fonts this time, were:
- Adobe Garamond by Robert Slimbach
- Tiempos Text by Klim Type
- Libre Baskerville by Impallari Type
- Alegreya by Huerta Tipográfica
- Heldane by Klim Type
- GT Sectra by Grilli Type
To pull out the “visual” sidebearing, it’s as simple as measuring the width of the serif and adding it to the sidebearing total. This produces a number that includes the serifs, or starts to calculate the sidebearing from the stem. Then, with the same math in mind as last time, I pulled out the ratio with a proportion. We started with Figure 10.
And now, I’m taking the width of the serif into consideration, so the equation looks like Figure 15.
To average, again, I added seven together, dividing by seven to get an average percentage for each letterform.
To add it back into my font, or any font, I had to make sure to ignore the serif there, too. Applying these percentages to my letterforms took an equation that looked like Figure 15.
Which looks similar to the first formula, but with the addition of the serif measurement.
Ironing out the Kinks
Now, anyone who is thinking ahead might realize that letters like “O”, “C”, “G”, “D”, “B”, “o”, “b”, “q”, “p”, and more don’t have sides affected by serifs. You’d be right. But, the calculator has a sans serif measurement from the first study, which means for Spacing calculator 2.0, I combined the two to create a more robust serif calculator, see Figure 16.
In the new calculator, the grey boxes use the sans serif formulas and averages, and the black boxes use the serif formulas and averages. This combination takes into account those letterforms that don’t have serif as well as those that do.
With the serifs calculated in, the outcome looks like Figure 17.
To me, the results are so satisfying! In Figure 18, Harveaux and Caeli are spaced with the new calculator. It may be worth noting that Harveaux isn’t a normal serif font either, and yet the calculator gave it a pretty satisfying paragraph color.
Spacing in the Type Industry
These fonts take the average spacing in industry-leading typefaces to come to a result for each individual character. While there are multiple plugins, tools, and examples of how to properly space fonts, this tool might be able to find its place among other resources. With so much work going into the development of letterforms and software capabilities, just as much work ought to go into the space between. After all, spacing can make or break a beautiful typeface.