draw-your-font

Alphabet écrit dans un carnet à spirale et la police obtenue, dans la fenêtre d'installation de macOS

Une photo d'alphabet manuscrit transformée en police

draw-your-font fabrique une police installable à partir d'une ou plusieurs photos d'un alphabet écrit au stylo. Le traitement d'image tourne sur la machine : seuillage adaptatif, détection des blocs d'encre, vectorisation par potrace, placement de chaque glyphe dans des métriques communes. Les lettres sont étiquetées par Claude via la skill Claude Code, ou d'après l'ordre d'écriture fourni à la CLI. La sortie est un TTF, avec WOFF, WOFF2 et CSS sur option, et la police appartient à qui l'a écrite, usage commercial compris.

La géométrie à la CLI, l'étiquetage à Claude

  • Chaque caractère a sa bande verticale dans un em de 1000 unités : capitales à 700, hauteur d'x à 480, jambages à -220. Le g passe sous la ligne de base et le o reste à hauteur d'x.
  • Le tracé passe par potrace, le moteur de FontForge et d'Inkscape, chargé comme module npm. Node 18 ou plus suffit sous macOS, Linux ou Windows, sans FontForge, ImageMagick ni binaire potrace à installer.
  • Dans la skill, Claude lit une planche de contact où chaque bloc d'encre est numéroté, écrit la correspondance dans labels.json, puis juge l'aperçu. Il ne modifie jamais un tracé.
  • Le gabarit A4 de la commande template s'imprime en gris clair, que le seuillage efface. Ses cases suivent l'ordre du jeu de caractères, si bien qu'une page remplie se monte sans reconnaissance.
  • Les retouches repartent des découpes enregistrées, sans nouvelle photo : --smooth (0 à 2) arrondit les courbes, --weight (-2 à 2) règle l'épaisseur du trait. --delta et --cap adaptent la détection à un stylo pâle ou à une page ombrée.
  • La démo du site officiel traite la photo dans l'onglet du navigateur, mais ne sort qu'un TTF.

Pas de jeu français, une seule version publiée

Le français n'a pas de jeu de caractères. Le gabarit en connaît deux : minimal (79 caractères : capitales, minuscules, chiffres et 17 signes) et spanish, qui en ajoute 15. La table des hauteurs de src/metrics.js ne place que les accents espagnols. Tout autre caractère reçoit la bande des capitales : un ç minuscule monte à leur hauteur, cédille au-dessus de la ligne de base. La commande template ignore par ailleurs --chars. Un ticket ouvert le 10 septembre 2026 apporte un jeu french et le correctif des bandes.

Sans Claude, la CLI ne reconnaît aucune lettre. Elle attribue les caractères de --chars ou du jeu choisi aux blocs d'encre dans l'ordre où elle les trouve, et prévient si les deux nombres diffèrent. Sur une photo libre, un étiquetage exact demande un labels.json écrit à la main ou le passage par la skill. Une étiquette de plusieurs caractères, une ligature par exemple, est écartée par build.

Le README se mesure à Calligraphr. Sa FAQ justifie la gratuité face aux 8 dollars par mois de ce service, qui paie des serveurs et un éditeur dans le navigateur, alors qu'ici la machine fait le calcul et l'agent est l'éditeur.

La 0.1.0 reste la seule version. Elle est parue sur npm le 22 juillet 2026, le jour de la création du dépôt, et GitHub n'a ni release ni tag. Le dernier commit date du 5 août 2026. Aucun des six tickets ouverts n'a reçu de réponse, pas même les deux qui apportaient un correctif. Crénage, ligatures et variantes aléatoires de lettres attendent une v2 que le README ne date pas.