Turn 120 pages of handwritten notes into a working font

Harshpreet gave Claude Code phone photos of 120 pages of college notes and got back an installable font of their own handwriting in 66 minutes for $13.68.

Done withClaude Code· Oct 17, 2026

What they did

The developer, harshpreet931 on GitHub, put 120 phone photos of their Computer Networks notes (blue ballpoint on ruled paper) into one PDF and handed it to Claude Code with a single prompt. The session built a chain of Python scripts: render the pages, separate the ink from the paper lines, margin and bleed-through, split pages into words, match 704 transcribed words to letter groups, rank each letter's samples, trace the pen's centerline, and build the font with potrace into TTF, WOFF and WOFF2. Letters missing from the notes, such as G, J, X and most punctuation, were built from parts of other letters. The result was published as a repo with a specimen page and a making-of video.

How it went

The run took 1 hour 6 minutes, 158 model calls and 184 tool calls, for $13.68 measured from the session log at API rates. The font covers A to Z, a to z, digits, punctuation and Western European accents, with 2 to 3 variants per letter that rotate as you type, plus kerning and a Bold weight. V, W and Z had only one clean sample each, so they have one variant. There is no hinting, so it is not tuned for tiny text on older Windows.

Worth knowing

About 700 transcribed words gave 2 to 3 good variants for most letters; fewer pages would mean fewer variants. The author credits prompt caching (98% of 34.2M tokens cached) with keeping the bill near $14 instead of about $140. The pipeline is tuned for blue ink on ruled paper; other inks need the colour model adjusted.

Try it

With Claude Code· 6 parts to fill in

I have a PDF of [number] phone photos of my handwritten pages in [ink colour] on [ruled or plain] paper at [path to PDF]. Build a pipeline of plain scripts that separates the ink from the paper, splits pages into words, and asks me to transcribe a sample of [number] words. Use those to collect letter samples, pick 2 to 3 typical variants per character, trace the pen path, and build a TTF and WOFF2 font named [font name] with contextual alternates and kerning. Show me a contact sheet of the chosen variants and wait for my approval before building the final font. Stop when the font installs and a specimen page renders every character.

Square brackets are the parts to fill in. The prompt is ours; the story is theirs.

Where they said it

Related