Building a local handwriting font workshop with editable glyphs
Description and use
Creating a local handwriting font subset with per‑glyph editing using GlyphSprout, covering scanning, rectification, tracing, tuning, and export to TTF/WOFF2.
Problem
Creating a small, editable subset of a handwritten font from scanned pages
Outcome
A 3,284‑byte TTF containing six letters was produced from public domain NIST samples, verified with Fontconfig, LibreOffice, and Poppler
Workflow
- 1. Scan an A4 page as a flat PNG or JPEG
- 2. Assign page number and confirm visible ID
- 3. Place four registration corners by hand
- 4. GlyphSprout rectifies preview and confirms page
- 5. Tracing thresholds each cell, removes specks, and follows ink contours
- 6. Tune threshold, speck filtering, crop, scale, offsets, and spacing per glyph
- 7. Draw or erase corrections if scan is unsuitable
- 8. Load live specimen with generated font
- 9. Export finished project as TTF or WOFF2, or export a completed subset if incomplete
- 10. Download project JSON for backup
Evidence
I built GlyphSprout for projects that need a small set of personal characters. It turns a handwritten page into a font subset that I can inspect and adjust one glyph at a time.
The workflow begins with an A4 template. Each page has 35 cells, and a project can use up to 512 supported BMP characters across 15 pages.
I assign the page, confirm its visible ID, and place four registration corners by hand. GlyphSprout shows a rectified preview and asks me to confirm the page before worker processing starts.
The tracing step thresholds each cell and removes small connected specks. It follows the black ink as independent contours, so counters and detached dots remain part of the glyph.
I can also draw and erase when a scan is not the right input.
The live specimen loads the generated font rather than a simulated rendering.
Finished projects export as TTF or WOFF2. If some selected characters are incomplete, I must choose an explicitly labeled completed subset export.
Paper Bloom is the first visit example. It contains six real letter crops from public domain NIST SD19 form f1002_33. The TTF measures 3,284 bytes.
I checked its family and character map with Fontconfig, used it in LibreOffice, and confirmed the PDF text and embedded font with Poppler.
Project data stays in browser storage. IndexedDB keeps current and previous recovery snapshots and warns about a write from another tab.
I still recommend downloading the project JSON because browser storage can be cleared.
- Record date: 2026-10-14T00:40:54.562Z