Add machine-made Warp 0.1: a Modern serif for science, drawn by a pen
Merged
RI
8h ago+22253+22253+01234567890123456789012345678901234567890123456789-28-28-01234567890123456789
Summary
machine-made Warp 0.1, the fourth machine-made typeface, built from the approved sketch 0.2.
- Six static fonts. machine-made Warp Regular, Italic, Bold and Bold Italic (text, opsz 10), and machine-made Warp Display Regular and Italic (titles, opsz 60). TTF, OTF and WOFF2 in
fonts/warp/. The variable font (wght and opsz) is planned for 0.3: pen sweeps are not point-compatible across masters. - The loom (
warp/loom/): a line-by-line Python port of the sketch engine (warp/reference/warp-sketch-0.2.js): level superellipse nib, pressure per node, smootherstep, contrast 9, bracket 0.2, teardrops. The sweep is unioned with skia-pathops and fitted with cubic curves (median 76 points per glyph, extrema on curve, no segment under 4 units). - Bold is a true bold: stem +59 %, hairline +30 %, serifs as long as the Regular's, skeleton 6 % wider.
- Glyph set: 429 glyphs, 306 characters. ASCII, Latin-1 (accents drawn by the pen, composites), Œ œ Ÿ, basic Greek (24 + 24 + ς; Γ Δ Θ Λ Ξ Π Σ Φ Ψ Ω drawn, look-alikes referenced), 37 maths symbols, ffi ffl, four figure styles, small capitals (Latin and Greek), combining marks.
- Features: ccmp, liga, onum (proportional old-style, as in the sketch), lnum, pnum, tnum (default lining tabular), smcp, c2sc, class kerning from the sketch's table (Latin, Greek, figures), mark, mkmk. The MATH table is planned for 0.2.
- Name: "Warp" alone is taken by display faces (Intellecta Design, MyFonts 2007; Google's Tilt Warp). The fonts ship only as "machine-made Warp" and "machine-made Warp Display". See
warp/BRIEF.md. - Repo integration:
warp/(BRIEF, STATUS, CHANGELOG, RELEASE-NOTES-0.1, OFL with RFN "machine-made", tools, tests),proofs/warp/,.github/workflows/warp.yml, awarpjob inrelease.ymlforwarp-v*(existing-tag logic kept),package_release.sh, README, STATUS, CHANGELOG, LICENSING. - Site: a Warp page in the look of the sketch page (ivory, hairline rules, small capitals, one ink blue) with a style switch, a paragraph from a paper, Greek, figures and small caps, the glyph map from the cmap, and a download button to
releases/tag/warp-v0.1.0. Warp is on the home and download pages and in the nav.
Checks (local run, 2026-10-27)
pytest: 44 passed. One test runs the sketch engine in node and compares advances and ink bounds with the port (within 0.02 unit).- Byte-reproducible build: two builds give identical files (serial and parallel).
- Fontspector 1.9.0, universal profile: 0 FAIL, 0 ERROR on 6 TTF and 6 OTF. Accepted WARNs: PostScript names over 27 characters (Display); unreachable capital marks and denominators in the OTF (used only in composites).
- Outline fidelity (
proofs/warp/fidelity.json): every glyph of the compiled TTF against an independent fill of its pen sweep at 16–128 ppem. Largest difference 4.7 % of the ink, mean about 1.4 %. Limit 5 %. - Sketch comparison (
proofs/warp/sketch-compare.json): mean IoU 0.95 (Regular, Italic, Display), 0.94 (Display Italic). - OCR gate (Tesseract 5.3.4, 10/12/14 px): Regular CER 2.3 %, Italic 1.9 %; DejaVu Serif 0.1 % and 0 %. The gate (reference plus 3 points) passes. Warp reads a little worse than DejaVu Serif at 10 px: Tesseract takes the open loop of g for a comma, f for t, fi and fl for h and H. Optical sizes 9 to 12 give the same numbers.
- Site: builds; no console errors, no failed or external requests, no horizontal scroll at 360 px; all six Warp styles load.
Review
Please look at these proofs first:
proofs/warp/warp-sketch-vs-font-regular.png(and-italic,-bold,-bolditalic,-display,-displayitalic): the sketch engine in red, the font in blue, dark where they agree.proofs/warp/warp-paragraph.png: a paragraph from a paper at 9–12 pt, regular with italic, and bold.proofs/warp/warp-equations.png: equations set by the sketch's maths setter with the font's glyphs.proofs/warp/warp-styles.png: Regular, Italic, Bold, Bold Italic, Display, Display Italic.- Also:
warp-greek.png,warp-accents.png,warp-kerning.png,warp-smallcaps-figures.png,warp-charset-*.png.
Deliberate deviations from the sketch (details in warp/STATUS.md):
- The crossbar of A (roman and italic), Æ and ∀ now reaches the hairline; in the sketch it stops a few units short and the counter is open.
- × < > share the advance of + with the other operators, so they line up in tables.
- The sketch engine has a wedge head serif that it never draws (it reads
p.lc, which is never set); the font keeps the flat serifs the sketch shows. - Italic capitals other than A C G M N O Q V W are slanted roman with unbracketed serifs.
- Two optical sizes (10 and 60) instead of a continuous
opsz.
Open items: 0.2 MATH table, OCR at 10 px (g, f, ligatures, word space), Ξ is light, more kerning, Latin Extended-A and Greek accents, hinting. 0.3 variable font. Not merged and not tagged: merging needs the founder's OK for this PR; then release with Actions → release → Run workflow, tag warp-v0.1.0, and a new site-v*.
🤖 Generated with Claude Code