I built a browser-local handwriting-to-OTF font generator with no AI, no OCR, and no server upload
Hi everyone, I’m building Penform, a browser-based tool that turns handwriting into a real installable OTF font. The idea came from seeing people use AI tools to recreate handwriting for personal cards and notes. The results can be touching, but the workflow felt backwards to me. Personal handwriting should not require a black-box model, a server upload, a GPU, or a hidden training pipeline. Penform takes a more deterministic approach: Print an A4 Template or use a tablet Write characters into predefined Glyph Slots Upload a JPEG or PNG scan/photo Align four printed Alignment Markers Optionally add more filled templates for contextual alternates Review and optionally refine the extracted glyphs Preview the generated font in the browser Download an installable .otf Everything runs locally in the browser. There is no account, no upload, no OCR, and no AI. A TemplateManifest defines the page geometry, so the app knows where every Writing Box, Glyph Slot, Alignment Marker, and font metric reference is. The manifest is the source of truth instead of OCR or server-side inference. The part I’m considering open-sourcing is the browser engine behind it. It currently handles: image decoding and EXIF-normalized capture manual marker alignment homography-based perspective correction A4 warping at 150/300 DPI writing-box cropping from a Template Manifest thresholding and empty glyph detection glyph vectorization contour winding correction pixel-to-font-unit mapping OpenType font generation OTF validation before export per-glyph threshold, scale, offset, and rotation overrides I’m trying to figure out two things: Whether this engine is useful enough to open-source as a standalone package Whether the product itself is useful beyond my own use case It is not meant to replace professional font design software. The goal is narrower: preserve someone’s actual handwriting well enough that it becomes usable as editable text for cards, notes, labels, classroom materials, personal project