Trantor: Extending the Foundation Titles Fonts

Trantor: Extending the Foundation Titles Fonts

View online: desholmes.github.io/trantor-type

Source: github.com/desholmes/trantor-type | Licence: SIL Open Font License 1.1

👀 You’re already looking at it: the headings on this blog are now set in Trantor Hand, one of the three fonts in the Trantor series.

The inspiration

The title sequence of Foundation, the Apple TV+ series, was created by Imaginary Forces. The lettering in its titles and credits stands out: monoline strokes with round ends, a dotted o and a crossed w. It’s simple, geometric and a little bit futuristic.

I wanted to use that style for headings. The lettering isn’t a font you can download, so I went looking.

Finding Foundation Titles Hand

Roger Sperberg had already done the hard part. In October 2021 he released Foundation Titles Hand, a font he drew from the character design in the title sequence. Version 0.85, from November 2021, comes in Regular and SemiBold and covers Basic Latin.

There was one catch: it only has capitals. The capitals, figures and punctuation are all there, but the lowercase slots hold copies of the capitals. That works for a title card, but you can’t set a sentence in it.

Extending it into Trantor Hand

Foundation Titles Hand is released under the SIL Open Font License, which lets you modify and redistribute the font. The licence also reserves the name “FoundationTitlesHand”, so a modified version needs a new name. I picked Trantor, the capital planet of the Galactic Empire in the books and the series, and it became the name of the whole series.

Trantor Hand adds:

  1. a new lowercase a–z, drawn in the same rounded, single-weight style as the capitals;
  2. accented letters for UK English loanwords such as café, naïve, rôle, façade and señor;
  3. £, €, …, •, ° and a no-break space;
  4. rebuilt kerning: the original capital pairs, plus new lowercase pairs such as Ta, Yo and We;
  5. an optional stylistic set (ss01) with the dotted o and crossed w from the title sequence.

From one font to a series

Roger also drew two other fonts from the show’s lettering: Foundation One and Foundation Logo. They had the same gaps, so they got the same treatment. Each one is renamed for the same licensing reason and gains a lowercase, a SemiBold and the characters for everyday UK English:

Font Based on Use it for Stylistic set 1
Trantor Hand Foundation Titles Hand 0.85 Titles, headings and short text Dotted o and crossed w
Trantor Caption Foundation One 0.4 Labels and captions, usually in capitals Dotted e, like E
Trantor Mark Foundation Logo 0.3 Wordmarks and a few large words Capitals from the thinner logo

Every font in the series comes in Regular (400) and SemiBold (600).

Drawing letters with code

I didn’t draw the lowercase in a font editor. Every new letter in the series is defined in Python as a skeleton: the centre line of the stroke. The build then expands each skeleton into an outline that matches the capitals: round caps and joins for Trantor Hand, flat ends for Trantor Caption and Trantor Mark.

Here are a few Trantor Hand letters from build/hand/glyphs.py:

X = 470    # x-height
ASC = 740  # ascender
R = X / 2  # bowl radius

GLYPHS = {
    "a": Glyph([bowl(), Stroke(X, X).line(X, 0)], (ROUND, STEM), top=R),
    "b": Glyph([Stroke(0, ASC).line(0, 0), bowl()], (STEM, ROUND), top=R),
    "c": Glyph([arc(R, R, R, 45, 315)], (ROUND, 25), top=R),
    "d": Glyph([bowl(), Stroke(X, ASC).line(X, 0)], (ROUND, STEM), top=R),
    # ...
}

Because the letters are centre lines, one drawing gives both weights. For Trantor Hand, the build strokes each skeleton at 80 units for Regular and 101 units for SemiBold, the same stroke widths as Roger’s capitals. Trantor Caption and Trantor Mark start from a single weight, so their SemiBold is made by thickening the finished glyphs. To change a letter, I edit its skeleton and rebuild, and both weights update together.

The build

The build script uses fontTools and skia-pathops. For each font in the series, it:

  1. loads Roger’s upstream TTFs;
  2. replaces the placeholder lowercase with the stroked skeletons;
  3. adds the accented letters and symbols;
  4. rebuilds the kerning, names and vertical metrics (the original metrics had no room for descenders or accented capitals);
  5. writes desktop TTFs, WOFF2 and WOFF webfonts, and a ready-to-use @font-face stylesheet.

The dependencies are managed with uv, pinned to exact versions and locked with hashes. Very new releases are ignored, and only pre-built wheels are installed, so no third-party build code runs.

Using it

The quickest way to use the series is to load its stylesheet from a release, which includes all three fonts:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/desholmes/trantor-type@v1.000/fonts/trantor.css" />

To self-host just one font, copy its webfonts folder into your site, e.g. the Trantor Hand webfonts, and include its stylesheet:

<link rel="stylesheet" href="/fonts/trantor-hand.css" />
h1, h2, h3 {
  font-family: "Trantor Hand", sans-serif;
  font-weight: 600;               /* SemiBold */
  font-feature-settings: "ss01";  /* dotted o, crossed w */
}

The fonts only come in weights 400 and 600, so use 600 rather than bold (700); otherwise the browser fakes a bold. Each font has its own specimen page showing every character in both weights.

Credits

Thanks to Roger Sperberg for Foundation Titles Hand, Foundation One and Foundation Logo. The capitals, figures and punctuation are his work, and none of this would exist without them 🙌

The Trantor fonts are free to use, embed and modify under the SIL Open Font License 1.1. Foundation is an Apple TV+ series based on the Isaac Asimov books, and this project isn’t affiliated with or endorsed by Apple, Skydance or the Asimov estate.