Updated IFT Demo

Previously we had a wasm based demo of IFT that was built on a prototype
(non spec compliant) version of the technology. I've just upgraded that
demo to use the latest encoder <https://github.com/w3c/ift-encoder> and
client
<https://github.com/googlefonts/fontations/tree/main/incremental-font-transfer>
implementations,
which are both compliant with the latest specification draft.

You can find the updated demo here: https://garretrieger.github.io/ift-demo/

Notable changes:

   - Most importantly the demo is now compliant with the latest IFT
   specification draft <https://w3c.github.io/IFT/Overview.html>.
   - For the text samples using Roboto, the previous demo used a table
   keyed only encoding. Now it's using a mixed (glyph and table keyed)
   encoding. The glyph keyed segmentation was generated using the experimental
   closure based segmenter
   <https://github.com/w3c/ift-encoder/blob/main/docs/experimental/closure_glyph_segmentation.md>.
   Performance (in terms of # of bytes transferred) is looking good so far.
   - For the CJK fonts the demo extends both CFF2 (Noto Serif SC) and glyf
   (Noto Sans SC) fonts. The prior version did not include any CFF fonts.
   - The previous demo included an example of layout feature extension,
   that's been removed for now as the encoder does not yet fully support that
   use case yet. I'll be getting that added back in once I get support
   finished in the encoder.

I'm planning to make some more improvements to this over time including:

   - Utilize codepoint frequency data when generating the glyph
   segmentations for Roboto.
   - Improvements to the encodings (such as using table keyed patch preload
   lists).
   - General performance improvements.
   - Demonstration of layout feature extension.

Lastly, if you're interested in more details about how the IFT encodings
for the font are created, the demo repository contains all of the code
necessary to generate the IFT font encodings:
https://github.com/garretrieger/ift-demo/blob/main/Makefile

Received on Friday, 25 April 2025 00:51:11 UTC