Non-linear interpolation

How hard is it to implement curved interpolations on variable fonts?
Thanks to Underwaer’s talk linear interpolation feels a bit boring :slight_smile:

It looks like that all is needed is the Linking of axes and allowing of the same master to be placed at diferente positions in the design space. Surely it isn’t as simple to make it happen, so I’m just asking.

A Practical case in which it would be really handy, without having to place entire intermediate masters:
I have a typeface with a width axis. On the condensed side, fonts have a somewhat consistent width while the wide masters have more classical widths (wide O, narrow E, and so on…). Interpolation between the two gives weird proportions, but with curved interpolation it would work great.



The problem is it would require an update to the spec. I was fantasising about splitting the polynomes up into different concurrent deltas, but I think that was too optimistic because each delta is scalar/linear. What it would require is a variable delta that changes over t.

So am I right that if I want non-linear interpolation on the opsz axis in a variable font, the best I can do now is include a bunch of masters to approximate the ideal curve?

The avar table is supposed to solve that problem. Implementing it is quite high on my list.

Does that mean that multiple masters (>3) along a single axis won’t work at all right now, or just that a cleaner implementation is coming?

You can have as many masters per axis as you like. But that would blow up the file size quite a bit.

Following this typedrawers discussion, it seems that non-linear interpolation (or higher order interpolation) is already possible, though not formally part of the variable font spec. From what I gather, it may take a while to update the spec. In the meantime, is there any chance this ‘loophole’ (as John Hudson calls it) may be exploited in Glyphs, through the main app or through some plugin?

Some insight would be much appreciated :slight_smile:

I’ve been trying to create Higher-Order Interpolations in Glyphsapp, and I’ve had some success, but not in a way that I really understood what was going on. Before I waste all of my time, is it at all possible to create HOI in Glyphs? I understand it may be cumbersome and involve some workarounds, I just want to know whether, in theory, it could work.

Also, in case you would like beta-testing of new HOI features, I would very much like to help out.

1 Like