Show HN: Photo of a handwritten alphabet to installable TTF, open source

danilo_z_j1 pts0 comments

GitHub - danilo-znamerovszkij/draw-your-font: Turn a photo of your handwriting into a real font (TTF/WOFF/WOFF2) - free, open source, no uploads. Node CLI + Claude Code skill. · GitHub

/" data-turbo-transient="true" />

Skip to content

Search or jump to...

Search code, repositories, users, issues, pull requests...

-->

Search

Clear

Search syntax tips

Provide feedback

--><br>We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

-->

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

danilo-znamerovszkij

draw-your-font

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

main

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>15 Commits<br>15 Commits

.claude/skills

.claude/skills

.github/workflows

.github/workflows

assets

assets

site

site

skills/draw-your-font

skills/draw-your-font

src

src

test

test

.gitignore

.gitignore

LICENSE

LICENSE

README.md

README.md

package-lock.json

package-lock.json

package.json

package.json

View all files

Repository files navigation

draw-your-font

Turn a photo of your handwriting into a real font (TTF/WOFF/WOFF2) - free, open source, no uploads, no credits.

Draw your alphabet on paper. Take a photo. Get your font.

This is a real one-shot result: dim light, spiral binding, page shadow. One photo in, installable font out.

Use it as a Claude Code skill (the fun way)

npx skills add danilo-znamerovszkij/draw-your-font

Then in Claude Code, just talk:

"here's a photo of my handwriting - make my font" (drag the photo into the terminal)

Claude finds your letters in the photo, labels them with vision, builds the<br>font, shows you a preview, and critiques its own work. Iterate by talking:

"make it rounder" / "a bit bolder"

"the g looks bad" - it shows you the crop and fixes or asks for a re-shoot

"give me woff2 + css for my website"

"how readable is it?" - a legibility score and the two worst letter pairs

No photo yet? Say "give me a font template" and you get a printable PDF grid:<br>write your alphabet with a dark pen, photograph the pages, and hand them back.<br>Messy freeform photos work too. Napkins, notebooks, spiral binding, bad<br>lighting: that's what the vision step is for.

Everything runs locally on your machine. Your handwriting never leaves it.

Use it as a CLI (no AI at all)

The skill is a thin layer over a deterministic npm CLI. It works on its own<br>when you can tell it what you wrote:

# freeform photo, you know the order you wrote in:<br>npx draw-your-font make photo.jpg --chars "ABCabc" --name "My Hand"<br># → MyHand.ttf - double-click, install, done.

# best quality: print a template, fill it, photograph:<br>npx draw-your-font template -o template.pdf --charset minimal # or: spanish<br>npx draw-your-font make page1.jpg page2.jpg --charset minimal --name "My Hand"

Pure npm, zero system dependencies: no FontForge, no ImageMagick, no potrace<br>binary. Works on macOS / Linux / Windows wherever Node ≥ 18 runs.

CLI reference

Command<br>What it does

template<br>printable A4 PDF grid (--charset minimal|spanish)

segment<br>find letters → crops + numbered contact sheet + blobs.json

build<br>labeled crops → font (--labels / --chars / --charset)

make<br>segment + build in one shot

preview<br>render any text with the built font

Refinement flags: --smooth 0..2 (rounder curves), --weight=-2..2<br>(thinner/bolder), --formats ttf,woff,woff2,css (web-ready + @font-face<br>snippet). Run draw-your-font --help for everything.

How it works

photo ──► adaptive threshold ──► blob detection ──► label (Claude / you / template order)<br>──► potrace vectorize ──► shared em-square metrics ──► TTF/WOFF/WOFF2 + preview

The craft is in the metrics step: every character has a vertical band in a<br>shared 1000-unit em square (cap height, x-height, descender depth), so your<br>g hangs below the line and your o stays small. That's what makes it feel<br>like a font instead of a ransom note. Vectorization is potrace, the same<br>engine inside FontForge and Inkscape. AI never draws your letters; it only<br>finds, labels, and judges them.

FAQ

Who owns the font? You. 100%, commercial use included. It's your<br>handwriting.

Why is this free when Calligraphr charges $8/month? Their cost is<br>servers and a browser editor. Here your machine does the work and the agent<br>is the editor.

Kerning, ligatures, letter randomization? v2. The pipeline...

font photo draw claude template handwriting

Related Articles