Branch: refs/heads/avar2-instancing
Home:
https://github.com/fonttools/fonttools
Commit: d83ecfb8991704be252d52b1e8b41862064ffbde
https://github.com/fonttools/fonttools/commit/d83ecfb8991704be252d52b1e8b41862064ffbde
Author: Behdad Esfahbod <
beh...@behdad.org>
Date: 2026-07-01 (Wed, 01 Jul 2026)
Changed paths:
M partial-instancing-avar2-design.md
Log Message:
-----------
[instancer] Update avar2 design doc for moved-default kink and shared rows
The design doc still described the pre-fix offset-compensation model
(a single kink at z=0, encoded as a fixed empty-bias + two tents) and
claimed the inverse renormalization is "always two-piece linear". Two
fixes since made that stale:
- Moved-default kink (commit 3382ab8): when a partial instance moves an
axis default, inv_renorm gains a second kink at z_old (the new-space
image of the old default). The code now collects breakpoints
{-1, 0, +1, z_old} and synthesizes tents with a 1-D VariationModel,
reducing to the classic two tents when the default is fixed.
- Shared-row privatization (commit 0c0efb8): VarIdxMap may map several
axes to one IVS delta row; offset compensation must privatize such
rows before writing, or offsets leak into co-resident axes.
Update sections 4.3, 4.4, 5.4.3, and 9.2 accordingly, add section 5.4.5
on privatization, and state the exactness condition honestly: the
{-1,0,+1,z_old} breakpoint set is exact only when avar v1 is linear
across the retained sub-range (no interior segment breakpoint). Collecting
in-range avar v1 breakpoints for full generality remains a known,
unimplemented limitation.
Assisted-by: Claude Opus 4.8 (1M context) <
nor...@anthropic.com>
To unsubscribe from these emails, change your notification settings at
https://github.com/fonttools/fonttools/settings/notifications