Lab · 10 August 2026 · 6 min read

By Edo (Myat Htet Hlaing)

How do you draw a typeface with an AI assistant?

In code, one coordinate at a time, with a human saying no at every step that mattered. The no is the method.

A High Renaissance fresco: a white bearded master letterer draws an immense script letter a on a scroll easel in a marble hall, while robed assistants carry great panels of alphabets past a wall carved with rows of gilded letters.

A typeface for doing nothing

Siesta is experiment 001 from the Dots Lab: a hairline Didone for warm afternoons, two styles, 210 characters, free under the SIL Open Font License. It started because a client layout kept pulling toward a Didot look on slate green, and I wanted to know what it costs to own that look instead of licensing it.

One constraint made it interesting. No font editor. No Glyphs, no FontForge, nobody dragging points around a screen. Every glyph in Siesta is a few lines of coordinates in a UFO source file, compiled headlessly, rendered to a sheet, and judged by eye. Which is where the assistant comes in.

The loop: draw in code, render, look

The working loop never changed. Claude drafts an outline as Bezier contours against rules we wrote down first: points at curve extrema, stems 60 units, hairlines 19, rounds overshooting the baseline by 12 so they look level. Then the build compiles, renders a specimen, and we both look at it. I say what reads wrong. Again.

A construction sheet for the Siesta letter a: the real outline drawn on warm paper with its Bezier handles, on curve points marked as squares, off curve points as red circles, and the x-height, baseline and overshoot guides labelled with their unit values.
The sketch, exactly as it exists: the letter a as coordinates, handles at horizontals and verticals, and the metrics that rule every glyph.

Spacing is the clearest example of how the labor split. The rule is old, the numbers are ours: straight stems get a sidebearing of 22 units, rounds get 16, and the word space equals the width of an i, 208. Claude applied the rule to every glyph in seconds. Whether the row of nonon actually breathes evenly is not something a script can tell you. That check happened by eye, on rendered sheets, more times than I kept count of.

Where the assist ends and taste begins

The design record is a list of vetoes. At v0.4 I flagged the joints where bowls meet stems from a screenshot, and the whole construction method changed so curves bury themselves inside the stem instead of poking through it. At v0.6 three independent reviewers, looking at images only, caught ghost seams that turned out to be a dead contour hiding in two letters. And at v0.7 the face got warmer on purpose: true Didot contrast measured 14 units of hairline against 60 of stem and read brittle, so we thickened the hairlines to 19. A siesta should not cut you.

The model never once said this feels wrong. That sentence, every time it mattered, was a person's.

An animation of the Siesta letter a being made: the outline draws itself over the metric guides, the control points land for the extrema check, and the letter fills into its compiled form.
The loop, compressed to four seconds: draw, check the extrema, compile, look. This ran more times than anyone counted.

The Bold that did not survive

A construction sheet comparing two drawings of the letter n: the Light with stem 60 and hairline 19, and the Bold trial with stem 108 and hairline 25, struck through in red with the note cut in review.
The trial, redrawn from its own geometry: stem 60 against stem 108. It compiled fine. The red pen is the review.

We drew a Bold far enough to set real words in it, and then killed it. Not because the outlines failed, the sheet above is the outlines working. It died because the whole idea of this face is air and hairlines, and the Bold kept filling the air in. A typeface for doing nothing does not need a voice for shouting. Shipping two styles instead of three was the cheapest good decision in the project.

The italic, and the character that got away

A construction sheet of the Siesta Italic letter a: the drawn outline with its on curve points, a red 12 degree slant guide, and the upright roman a ghosted beside it for comparison.
The Italic a on the drafting sheet: slanted 12 degrees, drawn rather than sheared, with the roman ghosted beside it.

The Italic is the second voice, drawn the same way at a slant with its own corrections. It also taught the most embarrassing lesson in the project: the first public build went out missing its ellipsis. Three periods nobody drew. A person spotted it, after release, in use. The fix took minutes. The lesson stuck: the build now counts the character set against a list instead of trusting anyone's memory, mine or the model's.

What assisted actually means here

  • Claude drew every outline, in code, to rules written down before drawing started. It compiled the builds, rendered the sheets, and audited its own geometry.
  • I chose the genre, the reference, and the name. I flagged the broken joints, warmed the hairlines, killed the Bold, and said when it was done.
  • Nobody traced anything. The outlines are original, and the record of every version says exactly who changed what, and why.

That split is what AI native means at Dots: the model does the labor at machine speed, and a person owns every call a reader can see. The result is not a font the machine made. It is a font that would have taken a studio like ours months, made in days, without giving up the part that makes it worth releasing.

A sheet showing the word Siesta twice: above as drawn outlines on their baseline, below as the compiled, filled letterforms.
The whole story on one sheet: drawn, then compiled. Labor at machine speed, taste at human speed.

Siesta is free for anything under the SIL Open Font License, at dotsstudio.io/lab/siesta. If you pull it into something good, we genuinely want to see it.

Claude Code handles drawing and compiling the outlines inside our engine. We were not paid to write this and there is no affiliate link in it.

Want this running for your startup? We build the engine around your brand and point it at one number: people who buy.

Book a callAll posts