I'm sorry if I this is something that's already in the spec. I get the impression that the GVAR table
will dealing mainly with deltas. In the overview
, there's a example of how deltas could be used to make a Q tail pop at a certain weight. As I understand it, it involves moving deltas at close together positions so they quickly snap rather than move smoothly.
I'm going to refer to that effect as delta-popping.
One of the the limitations of MM was not being able to implement structural changes during interpolation. An example of where this might be needed is the asterisk. In heavy weights, a 9 pointed asterisk looks too dense. In an ultra-light, a 5 pointed asterisk looks too light. At certain weights, I want this asterisk to change its structure; sprout more legs. I can imagine how this could be accomplished using deltas but it's kind of nasty. At certain weights (or whatever axis) I want a new shape, not just deltas.
What about the GVAR being able to show/hide shapes? The overview shows how deltas could delta-pop a very plain Q. But maybe my Q has a rather flamboyant tail and I want to completely change the structure when it pops.
If I have a pilcrow (¶) and I want the ultralight to have an open loop and the heavy to have a filled loop (no counter), I can see how it would be possible to use delta-pops to make that counter suddenly disappear in an inelegant way.
Now imagine I've got a art deco typeface and I want an axis that makes the counters toggle. I could use delta-pops to mangle the counters, tucking them away so they're unseen. I could use delta-pops to make all sorts of decorative variations. Hearts that turn into stars and flowers at certain points across the axis. But wouldn't it be more elegant if I could simply change the visibility of shapes with GVAR? I could have a Q with 2 tails and GVAR would toggle the visibility at specified locations on the axis. I could have 3 types of overlapping asterisk and toggle them in and out. I could make counters disappear, decorative elements change.
I can use Feature Variations to sub a glyph with alternates at certain weights. With the example of the asterisk, I could have alternate glyphs that would swap at certain axis locations. That would be acceptable in the case of the asterisk. But if I wanted changes throughout alphabets, it would require storing a lot glyph variants. Especially, if the changes are merely decorative like engraving, inline, polka dots etc. Why not change the visibility of shapes rather than storing alternate glyphs.
Another use for this would be for reducing detail in textured fonts. Picture a grungy alphabet with dirt speckles. I could set up a detail axis and use GVAR to have those speckles vanish. Deltas could be used to smooth out the outline. You'd end up with the ideal dirt axis. One end of the axis is filthy, the other end clean. Or you could use delta-pops to make each individual chunk of dirt vanish. But it's nasty stuff.