Skip to content

Zero Config IFT Font Generation#186

Merged
garretrieger merged 3 commits intow3c:mainfrom
garretrieger:zero_config
Mar 9, 2026
Merged

Zero Config IFT Font Generation#186
garretrieger merged 3 commits intow3c:mainfrom
garretrieger:zero_config

Conversation

@garretrieger
Copy link
Contributor

This adds a new auto segmenter config module which can be used to automatically produce segmenter configs based on an input font. This in turn allows font2ift to go from input font to output IFT font with zero configuration needed.

If no segmentation plan is provided to font2ift then it will use the auto config module to generate a segmenter config, run the segmenter to produce a segmentation plan, and then finally generate the IFT encoded fonts using the compiler.

The current quality level definitions used by the auto config generator were hand picked which is sufficient as a starting point, however as a follow up I'll need to gather data of cost vs encoding times by quality level across a larger corpus of fonts and use that to make more informed selections for the quality level definitions.

This new util can analyze an input font and generate a segmenter config for it. Currently very early stages.
Numeric value which controls the performance vs quality tradeoff. Lower values maximize performance, higher values maximize segmentation quality (at the cost of longer analysis times).
@garretrieger garretrieger force-pushed the zero_config branch 2 times, most recently from aa40a69 to 0bcfc03 Compare March 9, 2026 20:46
This allows font2ift to perform the full IFT encoding process:
1. Auto generate segmenter config.
2. Run segmenter.
3. Compile the font.

If a segmentation plan is not supplied to font2ift it will then using the segemnter auto config and closure segmenter to generate one.
@garretrieger garretrieger merged commit 3d9602a into w3c:main Mar 9, 2026
3 checks passed
@garretrieger garretrieger deleted the zero_config branch March 9, 2026 23:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant