# Designing a Typeface as an Engineered System

My Weird Prompts — an AI-generated podcast. Daniel Rosehill sends in a prompt; AI hosts Corn and Herman discuss it. Verify important claims independently.

- Episode: 6407
- Published: 2026-11-02
- Duration: 25:01
- Audio: https://episodes.myweirdprompts.com/audio/typeface-design-readability-system-17909.m4a
- Tags: open-source, programming-languages, local-ai, prompt-engineering
- Web page: https://myweirdprompts.com/episode/typeface-design-readability-system-17909/
- JSON: https://myweirdprompts.com/api/episodes/typeface-design-readability-system-17909.json

## Summary

Font design is an engineering problem rather than an art project. A proper typeface relies on strict rules, starting with why x-height, aperture size, and invisible overshoots determine readability long before aesthetics matter. The discussion details the disciplined drafting sequence—beginning with the letters o and n rather than A—and the modern open-source toolchain on Linux, including FontForge, UFO sources in git, and the fontmake compiler.

## The prompt

> One of my creative life projects is creating my own font. As I remark often on the show, I have ADHD. Typography is one of those areas where I think that people underestimate how much people appreciate an easy-to-read font. There are some informal gold standards in a readable font, but I want to create my own. Walk me through what's actually entailed in drafting your own glyphs. And I'd also like to explore what the process would look like if I created my own Hebrew font, which is I think a very interesting project. This would be an unvowelized font used for rendering modern Hebrew text. I'm using Ubuntu Linux, so walk me through everything from the creative side of it to the technical side.

## Show notes

Designing a typeface is an engineering system rather than a purely illustrative art. Establishing strict rules beforehand protects legibility, prioritizing friction-free reading over decorative personality. Key levers of readability include x-height, where sans serifs traditionally cluster around fifty-two to fifty-three percent of the em, as well as open apertures and optical overshoot that compensates for human perception on curved glyphs. Rather than drafting the alphabet sequentially, sound design begins with "o" and "n," using their foundational structures as shared DNA across related letters. On modern Linux workflows, tools like FontForge, fontmake, and UFO source formats enable reproducible builds and version control, treating font binaries as disposable outputs generated from precise source code.

## Sources

- [Peter Biľak, Designing Hebrew Type, Typotheque](https://www.typotheque.com/articles/designing-hebrew-type)
- [W3C, Hebrew Layout Requirements, editor's draft](https://www.w3.org/International/hlreq/)
- [Microsoft, OpenType Hebrew script development spec](https://learn.microsoft.com/en-us/typography/script-development/hebrew)
- [FontForge repo, latest release 20251009 (2025-10-09)](https://github.com/fontforge/fontforge)
- [fontmake README](https://github.com/googlefonts/fontmake)
- [Ubuntu Font Family README](https://github.com/canonical/Ubuntu-fonts/blob/main/README.md)
- [Building a Great Font: A Practical Design Guide, measured metrics from Liberation/Carlito/Caladea/FreeSerif](https://dnalepoc.com/labs/building-a-great-font.html)
- [Hebrew script shaping in OpenType, Shaping Documents 0.9alpha1](https://fontspec.org/opentype-shaping/opentype-shaping-hebrew.html)
- [FontForge manual, Creating Your Type's DNA](https://archive.flossmanuals.net/fontforge/creating-your-types-dna.html)
- [Google Fonts Guide, Build the fonts](https://googlefonts.github.io/gf-guide/build.md)
- [Fontra, browser-based font editor](https://github.com/fontra/fontra)
- [TypeType, UniversiTTy Lesson 6](https://typetype.org/blog/universitty-lesson-6-designing-basic-latin-characters-introduction/)
- [Glyphr Studio tutorial](https://www.glyphrstudio.com/help/tutorial/)
- [TYPE01 interview with David Březina](https://type-01.com/how-important-is-harmony-when-designing-multiscript-type-systems-an-interview-with-david-brezina/)

## Transcript

Corn: Daniel's got a creative life project on the go: he wants to make his own font. He's noticed people badly underestimate how much an easy-to-read typeface matters, and he suspects there are informal gold standards for readability. He wants the real walkthrough of drafting glyphs from scratch, both the creative side and the technical side, on Ubuntu Linux.

Corn: Then a second project, which is harder: an unvowelized Hebrew font for modern Hebrew text. He says himself that it's a very different problem from the Latin one.

Herman: Herman Poppleberry here, and I've been waiting for a font prompt for months. Where do we begin?

Corn: Readability. It's the thing everyone thinks they can eyeball and almost nobody can.

Herman: Right, and the reframe underneath it is that a font is not a drawing. It's a system. A few hundred shapes engineered to look right together, at any size, in any sequence, on any surface.

Corn: So I can't just draw a lovely g and go home.

Herman: You can, but then you need an h that agrees with it. And an n, and a b, and the space between them, and all of it at nine pixels on a cheap tablet.

Corn: At nine pixels my claws wouldn't hit the right glyph anyway.

Herman: Fair. Here's the order of judgement that matters. First readability: can the eye move through text without friction? Second, character: does the type feel like something? Third, craft: the thousand invisible adjustments that make letters behave consistently in every word, weight and size. Beginners work in reverse. They fall in love with character, they never reach craft, and readability gets assumed.

Corn: Which is how you end up with a wedding invitation font on a gas bill.

Herman: Exactly that. And the order matters for Daniel in particular, because he's been open about his ADHD. I don't think this is a joke. The method here is fixing the rules before the enthusiasm shows up, then letting the system carry you. That's why the advice is so rigid about the order of operations.

Corn: Rigid how? Most people hear "rules first" and their eyes glaze.

Herman: Because rules feel like the opposite of creativity. But think of it as removing decisions. If the x-height is already written down, you never have to wonder at eleven at night whether this particular e feels big enough. The number answers for you. The energy goes into the shapes instead of into relitigating proportions.

Corn: It's like meal prep. You decide on Sunday so Wednesday-you doesn't have to negotiate with the fridge.

Herman: That's it exactly. Wednesday-you is tired and will pick the worst option with great confidence.

Corn: So the Latin font is the training ground, and Hebrew is the exam.

Herman: Hebrew punishes nearly every Latin instinct he'll have built by then. But we start with the numbers.

Corn: Go on, then. Gold standards. Are there actual ones?

Herman: There are, and x-height is the biggest lever. Measured from production TrueType files, sans serif designs cluster at fifty-two to fifty-three percent x-height to em. Serif designs sit lower, at forty-five to forty-eight.

Corn: Why would a serif get away with smaller lowercase?

Herman: A sans has nothing decorative to carry the eye, so its lowercase leans larger and more open to compensate. A serif earns its rhythm from the terminals, so it can afford smaller lowercase and spend the room on ascenders and descenders. Those give the word its shape, and shape is how you actually recognise a word at speed.

Corn: Hm. So the tall letters are doing more reading than the short ones.

Herman: In a lot of cases, yes. There's the old demonstration where you cover the bottom half of a line of text and it's still quite readable, but cover the top half and it falls apart. The upper edge of a line carries more information, because ascenders are what make the skyline of a word distinctive.

Corn: And if the x-height is huge, the skyline flattens.

Herman: Right. Everything crowds toward the middle band, and words start to look like the same grey brick. Think of how much "bill," "hill" and "kill" differ by the tall bits alone. Squash those and you're reading letter by letter, which is slow.

Corn: Reading letter by letter. That's me before coffee.

Herman: Next lever is the aperture. That's the opening where a counter meets the outside, like the bottom of a c or the top of an e. Open apertures keep letters distinguishable at small sizes. Close them up and a c starts to look like an o.

Corn: Does that explain why some fonts feel kind to read and others feel like a fax?

Herman: Largely. Faxes smeared the small openings shut. Humanist sans designs, Gill Sans, Frutiger, Open Sans, Calibri, are generally the most readable sans for long text. Geometric ones like Futura, Avenir and Century Gothic are striking, but every round letter becomes the same circle. And high-contrast Didones, Bodoni and Didot, are elegant and not very legible small. Keep them off body text.

Corn: Why not the Didones? They look so crisp.

Herman: Because the hairlines are razor thin and the stems are heavy. At small sizes the thin strokes wash out and the letters fragment into stripes. Crisp on a magazine cover at seventy-two points, fragile in a paragraph.

Corn: Century Gothic has been in my documents for years. I'm choosing to hear that as a compliment to me.

Herman: It isn't. Now, overshoot. This is the invisible one. A round letter has to poke slightly past the baseline and the x-height to look the same height as a flat letter. In Liberation Sans, the lowercase o reaches one thousand one hundred and two against an x-height of one thousand and eighty-two.

Corn: Twenty units.

Herman: Just under two percent. Too little and the rounds look undersized, too much and the whole line looks wobbly. And nobody notices when it's right.

Corn: Why do rounds look smaller in the first place?

Herman: A flat letter like x or z presents a long edge that touches the line, so the eye reads that as the height. A round touches the line at a single point, so the eye reads it as lower than it is. The overshoot is a correction for how we see, not for what the ruler says.

Corn: So if I print a word like "zone" and measure it, the o is taller than the z?

Herman: Slightly, yes. The ruler says the o is wrong. Your eye says the o is right. In type, the eye wins.

Corn: A skill whose success condition is that nobody notices. That's most of my career.

Herman: Corn, you napped through most of your career.

Corn: Nobody noticed.

Herman: Fine. Now the drafting process, and this is where the scaffold lives. Step one is the brief. One paragraph on what the font is for. Something like, a humanist sans for long-form magazine reading on tablets, fourteen to eighteen pixels, with a quiet, slightly bookish personality. Every later decision gets judged against that paragraph.

Corn: And without it?

Herman: You drift. You spend three weeks on a swash ampersand for a font that was meant for spreadsheets.

Corn: Daniel's a developer. A spec paragraph he'll respect. It's the unglamorous kind of file.

Herman: Step two is metrics before drawing. Pick units per em, conventionally one thousand or two thousand and forty-eight. Then decide cap height, x-height, ascender, descender and overshoot, and write them down. Before one curve exists, the vertical proportions are fixed, and every glyph is measured against them.

Corn: Which is a fancy way of saying: build the shelves before you buy the books.

Herman: And then the counterintuitive rule. Don't draw the alphabet in order. The FontForge manual is emphatic: once the o and n are designed and spaced, populate the font with letters whose structure gives you useful DNA. It says it may be tempting to rush to populate the font as rapidly as possible, and you should resist this urge.

Corn: Why o and n?

Herman: The o teaches you the round forms. The n teaches stem and shoulder. Those two shapes propagate into b, d, p, q, h, m and u. Draw them in alphabetical order and you'll make an a, a b and a c with three different ideas of what a curve is.

Corn: So in practice, once the n exists, the h is mostly the n with a taller stem?

Herman: Very nearly. Same shoulder, same stem thickness, same junction where the arch leaves the stem. The u is the n rotated and adjusted. That's the DNA idea. You're not drawing new letters so much as reusing decisions you've already made and verified.

Corn: And the m?

Herman: An n with a second arch squeezed in, though you have to narrow the arches a touch so the letter doesn't sprawl. That's the kind of adjustment you only discover by testing it against the n you already trust.

Corn: I'd have started at A. Obviously. Everyone starts at A.

Herman: And everyone stalls around g.

Corn: Before we get into glyphs, let me hold you there for a second.

Hilbert: Medieval Pottage Facts. Peasants thickened their pottage with oatmeal or crumbled bread when there was nothing else. It kept the hunger at arm's length and no further.

Corn: Right. Glyphs.

Herman: Vocabulary first, though. Stem, crossbar, bowl, counter, aperture, terminal, bracketed versus unbracketed serif, spine, ear, tail, spur, flag. You cannot critique what you cannot name. And naming lets Daniel see his own font as a system instead of a pile of drawings.

Corn: The ear on a g. I like that someone had to name that.

Herman: Someone also named the spur. And once you have the word, the critique gets sharp. Instead of "this g feels off," you can say the ear is too heavy compared with the terminal on the r. That's a fixable sentence.

Corn: Now the technical side.

Herman: On Ubuntu the native editor is FontForge. It reads and writes OpenType, TrueType, UFO, and it has a Python scripting API. The latest release is tagged twenty twenty-five, October ninth.

Corn: And the scripting API matters because?

Herman: Because a developer can automate the boring parts. Check that every round glyph overshoots by the same amount, or that every stem matches the n. A script doesn't get tired at eleven at night and decide that close enough is close enough.

Corn: And the thing that turns the drawings into a font file?

Herman: Fontmake, the compiler. You install it with pip, it wants Python three point nine or newer, and it takes UFO or designspace sources and produces OTF and TTF binaries, static or variable. It's also packaged in Ubuntu, maintained by the Debian Fonts Task Force.

Corn: Why not just export from the editor? Click, done.

Herman: That's the discipline. Google Fonts won't onboard binaries exported from editors. Everything has to be built with a reproducible, libre toolchain. For a personal project the lesson is the same: the source is the truth, and the binary is disposable. If a build goes wrong, you rebuild. You don't excavate.

Corn: Disposable binaries. That I can get behind. I've never been attached to anything I could regenerate.

Herman: And for a developer it should feel familiar. UFO is plain files in a folder, so it sits happily in version control. Daniel can commit a glyph, diff it, and roll back the afternoon he ruined the s.

Corn: Font source in git. That's the first thing in this episode that sounds like his day job.

Herman: Quick map of the alternatives. Fontra is a browser-based editor, GPL three, actively developed, runs fine on Linux. Glyphr Studio is free and browser-based, pitched as possibly the only tool you need to make a whole typeface. Runebender, the Rust one, hasn't been pushed since June twenty twenty-three. Treat it as dormant.

Corn: And I'd guess you've already installed all of them.

Herman: Three. One of them has taken my font menu hostage. I'm working on it.

Corn: Of course you are.

Herman: And here's a nice local case study. The Ubuntu font family. Dalton Maag developed it in twenty ten and twenty eleven, Canonical funded it, it was expanded in twenty fifteen, variable fonts came in twenty twenty-two and twenty twenty-three, and both the binaries and the design sources are published. Daniel is probably reading a terminal in a font whose source he can open.

Corn: Which means he can see how a professional handled the o and the n.

Herman: Exactly that. Open the source, check the overshoot, compare it with Liberation. It's a free masterclass sitting in his menu.

Corn: So everything we've said so far is the system. Numbers, brief, metrics, DNA. Is that universal?

Herman: No. Everything we just said about readability is true, and almost none of it transfers. Hebrew is the proof. Peter Biľak, who runs Typotheque, wrote up his Hebrew work, and he confesses the thing outright. Following the optical rules he was used to, he made complex shapes like tsadi and shin wider, and simpler shapes like dalet and he narrower.

Corn: That sounds sensible. Complex gets room.

Herman: To a Latin eye, yes. It looked odd to native designers, and retraining his eyes and brain took years of work. So Daniel's premise is right: there are informal gold standards. They're just script-specific.

Corn: Years of work. To undo a habit.

Herman: The second inversion is stroke endings. Serifs are foreign to most non-Latin scripts. Biľak tried dozens of solutions for terminations and none seemed to work. He settled on smaller, stylised endings inspired by the broad-nib pen. And because Hebrew letters have a fairly homogenous structure, he had to vary the endings slightly to avoid a monotonous texture in big blocks of text. Individualising them also helped legibility.

Corn: So the endings aren't decoration, they're how you tell the letters apart.

Herman: Which matters because several Hebrew letters are near twins. Dalet and resh, vav and final nun, bet and kaf. Tiny differences in a corner or a tail are carrying the whole distinction.

Corn: So a rounded corner on a bet versus a kaf is the equivalent of the gap in a c?

Herman: Roughly. A fraction of a unit in the wrong place and a reader hesitates, or worse, reads the wrong word without noticing.

Corn: Which is a very different job from deciding whether a c looks like an o.

Herman: Which is why Daniel should learn the canon before he draws anything. Rafael Frank, Henri Friedlaender, Ismar David, Zvi Narkiss. Their work defines the look of modern Hebrew typography. The three most used faces are still Frank Rühl from nineteen ten, David from nineteen fifty-four, and Hadassah from nineteen fifty-eight.

Corn: Newer typefaces never overtook them?

Herman: Never quite. That's the Hebrew version of learning the gold standards. You study what the readers already trust.

Corn: Daniel's lived in Jerusalem a while and reads Hebrew daily. That's a head start Biľak didn't have.

Herman: Biľak couldn't tell one letter from another, or whether the page was right side up. His words: completely unqualified. He argues outsiders can still contribute, since many advances came from outsiders, but they have to work harder at the history and conventions. It took four years before a twenty fifteen workshop at Bezalel, where Michal Sahar, Daniel Berkovic and Daniel Grumer all reshaped the design. The programme became twenty-one families and over two hundred fonts.

Corn: A professional newspaper face and a one-person weekend project are different animals.

Herman: And that's the good news. Unvowelized Hebrew is the easy version. It's an abjad, so normal use represents consonants and long vowels. No case, right to left, letters not joined cursively. Most Hebrew is written without diacritics. Niqqud turns up in children's texts, poetry, religious texts, and occasionally in prose. So Daniel's target is the normal case, not the edge case.

Corn: Which, from where I sit, is the best sentence in the episode.

Herman: Technically it's lovely. Five letters have word-final forms: kaf, mem, nun, pe, tsadi. Each is encoded separately in the Hebrew block, so fonts don't need substitution rules to reach them. A basic unvowelized font needs no complex shaping, just the right glyphs at the right codepoints. Twenty-two letters plus five finals. Twenty-seven glyphs.

Corn: Twenty-seven. I can almost count that on my claws.

Herman: And I'd say more than almost. So the hard part is aesthetic, not technical.

Corn: What does that mean in practice? If the code is easy, where does he get stuck?

Herman: On texture. Twenty-seven glyphs have to produce an even grey when set in a paragraph, and with such homogenous letterforms, a flaw in one shape repeats everywhere. There's nowhere to hide a bad resh.

Corn: How would he even spot it? Squint at it?

Herman: Honestly, yes. Set a full paragraph, step back or blur it, and look for dark patches or pale stripes. A heavy letter shows up as a dark blotch that recurs every few words. It's a crude test and it works.

Corn: Italics next. Presumably he wants an italic.

Herman: That's a fork. Italics in Hebrew are controversial. Some designers say slanted fonts shouldn't be used at all, some say only meticulously designed ones. Newspapers don't use them, and bold appears where English papers would use italics. For emphasis Hebrew uses letter-spacing, to highlight names, concepts and terms. So he can ship a single-weight upright and skip italics entirely.

Corn: A whole style he doesn't have to draw. That's the kind of controversy I like.

Herman: There's a short list of small things even an unvowelized font should include. The dotted circle, U plus twenty-five C C, plus the left-to-right and right-to-left marks. Otherwise an invalid combining mark renders as a missing-glyph box. The maqaf, the Hebrew hyphen, has to behave like a hyphen for selection and cursor movement. And quotation marks follow the Academy of the Hebrew Language rules: low quotes in traditional printing, high quotes where devices can't type them.

Corn: I'd have missed all of that and found out when a quote mark showed up as a rectangle.

Herman: It's the kind of detail where, as David Březina put it, there's a big difference between including some shapes for required characters and designing those shapes well. Shaping is simple but not zero. The hebr script tag follows the default model apart from right-to-left, and the pipeline is composition, discretionary ligatures, kerning, mark-to-base. If Daniel later adds niqqud he needs mark positioning and correct combining classes. Sheva is class ten, holam nineteen, rafe twenty-three.

Corn: That's version two.

Herman: Definitely version two. Herman's rule: if it has a combining class, it's not a first project.

Corn: You've never followed a rule like that in your life.

Herman: I've never claimed to follow my own rules. I'm telling Daniel.

Corn: So the Hebrew font is actually better suited to an ADHD brain than the Latin one.

Herman: I think so. The scope is bounded: twenty-seven glyphs, no substitutions, no italics. The rules are documented, in the W3C layout requirements and Microsoft's Hebrew spec. And the canon is small and named. The Latin font is where he learns the system. The Hebrew font is where the system is small enough to finish.

Corn: Ask me what I'd do, then.

Herman: What would you do?

Corn: Hebrew first. Twenty-seven glyphs and a deadline I can see. Latin is an alphabet that never ends, and it has lowercase.

Herman: Interesting. I'd have said Latin first, so he learns the vocabulary on forgiving ground.

Corn: Forgiving ground is how you drift. Your own brief said so.

Herman: Hm. That's fair. You can do the brief paragraph for either.

Hilbert: Staedtler Mars Lumograph, two B, one shekel eighty at the stationer on Agrippas. I've been counting the a's on one page of a paperback with it. Three hundred and twelve. By hand, not searched. You're right about the system, Herman, but readability isn't in the letter. It's in the reader's habit. Three hundred and twelve times a page, you should at least enjoy looking at it.

Corn: Three hundred and twelve by hand takes a while.

Hilbert: Forty minutes. The neighbour downstairs, Mr. Kessler, wants labels on the building's mailboxes, and he wants the double-storey a. Says it looks proper. I've said I'll letter them single-storey or not at all. That was the second of the month. We still haven't spoken on the stairs.

Herman: The single-storey a is easier to produce by hand, to be fair. One bowl, one stem, and no join to get wrong.

Hilbert: My brother-in-law Osvaldo, he's in signs, says the double-storey is a coward's letter. Osvaldo also painted the wrong street number on his own van, so I wouldn't lean on him. He says a kid learns the single-storey first anyway, and children are the only honest readers. He gets that from a pamphlet.

Corn: The double-storey a is still what most text faces default to, though. Habit's the whole argument.

Hilbert: Mr. Kessler's labels are eleven. I'm doing nine. He can paint the other two himself.

Herman: Nine single-storey and two double would look like a spelling mistake on the building.

Hilbert: That's his problem. I brought the pencil and the ruler. Mr. Kessler's is the one with the green door, Corn.

Corn: So, the misconception. People assume readability is a property of the letter itself, a universal.

Herman: It's learned, and it's script-specific. Biľak's wide-complex, narrow-simple proportions looked wrong to native readers, and it took him years to fix his eye. A standard is a habit that a lot of people share.

Corn: Which leaves a question for the next twenty years. If readability is learned, do our fonts converge on one global standard, or fragment further by script and device?

Herman: My bet is fragmentation, with a few trusted faces like Frank Rühl holding the centre. And Daniel should know which project he's actually signing up for. The Latin font is a years-long apprenticeship. The Hebrew font is bounded and finishable. Nine labels, if it comes to that.

Corn: Thanks to our producer Hilbert Flumingtop, who keeps the desk running. If this was your kind of episode, go back for episode seven, Building Custom ASR Tools; and episode ninety-one, The Story Behind the Show. This has been My Weird Prompts. You can find the archive at my weird prompts dot com, which has plenty of build-it-from-scratch episodes if this one's given you the itch.

Herman: See you tomorrow.
