Repository navigation
Add machine-made Heddle 0.1: Swiss display grotesk, variable wght and wdth - #4
Conversation
The loom ports the approved sketch engine to Python. It writes 12 point-compatible UFO masters (wght 100, 400, 700, 900 x wdth 70, 100, 140) and fontmake compiles the variable font and 11 statics. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UHtj1XPp34FFs8LVpY1PRF
- Check every static union against a nonzero fill; work around pathops failures (S spine) with a tiny jitter. - Add a wght 700 master; zero-pad master names for interpolatable. - New glyphs use linear widths, so the variable font matches the engine everywhere. Redraw & ß * ~ and the chevrons; K arm no longer pokes out left of the stem. - Short width names (Compressed to Extended) and 13 named instances, so names fit in 32 characters (Fontspector). - Tests, proof sheets, the sketch comparison and the drift report. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UHtj1XPp34FFs8LVpY1PRF
- shuttle/BRIEF.md (metrics, glyph set, axes, cuts, name check), STATUS.md, CHANGELOG.md, RELEASE-NOTES-0.1.md. - .github/workflows/shuttle.yml: tests, build, byte check, interpolatable, drift report, Fontspector, proofs. - release.yml: a shuttle job for shuttle-v* tags (push and manual run); package_release.sh packs Shuttle. - Site: Shuttle page (playground with weight and width, width and weight rows, glyph map), home card, download section, nav link. - Root README, STATUS, CHANGELOG and LICENSING list Shuttle. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UHtj1XPp34FFs8LVpY1PRF
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the
|
|
This PR has 7,647 reviewable changed lines after ignored/generated files are excluded, above this repository's 5,000-changed-line automatic review limit. Most of the diff comes from:
Comment |
The founder renamed the family because of a clash with "Shuttle" (Volcano Type, 2006) and "Shuttleblock" (Fort Foundry, 2024). - shuttle/ -> heddle/ (package heddle/loom), fonts/heddle, proofs/heddle, heddle.yml, site/pages/heddle, site/assets/heddle.js, heddle/reference/heddle-sketch-0.1.* (content kept as approved). - Family "machine-made Heddle", PostScript MachineMadeHeddle; name table, STAT, OFL header, release job on heddle-v* tags, packaging, site, root docs. - New name check for Heddle in heddle/BRIEF.md: no typeface found. - The sketch comparison reads the engine through module.exports. - Rebuilt fonts and proofs (outlines unchanged). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UHtj1XPp34FFs8LVpY1PRF
Adds machine-made Heddle 0.1, the third family. It is a Swiss display grotesk built from the approved sketch. Its integration mirrors Weft.
Renamed from "Shuttle" before the release, because "Shuttle" (Volcano Type) and "Shuttleblock" (Fort Foundry) clash. No typeface named Heddle was found (see
heddle/BRIEF.md).What is in it
heddle/loom/: a Python port of the sketch engine (heddle/reference/heddle-sketch-0.1.js). It uses four primitives: rect, superellipse ring (n = 2.6), parallelogram and V.MachineMadeHeddle[wdth,wght].ttf(107 KB, WOFF2 49 KB). It keeps the overlaps and sets the overlap flags.Figures are tabular.
&is redrawn.fvarhas 13 named instances. Only 18 of the 45 width + weight names fit in 32 characters, so the other combinations stay unnamed.proofs/heddle/), a comparison of the sketch with the font, and a drift report..github/workflows/heddle.yml: tests, build, byte check, interpolatable, drift report, Fontspector, proofs.release.ymlgets aheddlejob forheddle-v*tags (push and manual run).package_release.shpacks Heddle.Checks (local, 2026-10-27)
pytest: 334 passed. One test runs the sketch engine in node and compares advances at all 12 masters.fonttools varLib.interpolatableis clean on the designspace, the master UFOs and the variable font.contour_countandmandatory_avar_tableon the variable font;Review
proofs/heddle/heddle-sketch-vs-font-charset.pngheddle-sketch-vs-font-pangram.pngheddle-designspace.pngheddle-width-ladder.pngheddle-accents.pngheddle-kerning.pngheddle/STATUS.md:W >= 2.3 S(proofs/heddle/drift.json).🤖 Generated with Claude Code
https://claude.ai/code/session_01UHtj1XPp34FFs8LVpY1PRF