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

I’m not sure if it’s worth posting to an old thread but afer seeing @thundernixon’s posts on Twitter I’m wondering if there’s a similar way to preview an interpolation state in the main window to help create control mastrs for NLI ?

Is there a way to preview an interpolation across all axes a the same time?

What do you have in mind? Can you draw a UI mockup?

I haven’t tried this yet, but from reading Arrow type’s explainer, it seems that what you need is Mark Fromberg’s Variable Font Preview plugin (a steal at only €59,99!):

If you try it, please let us know how it goes!

The Variable Font Preview Plugin is kind of capable to preview, but at the moment for Glyphs 2 there are some limitations with the plugin. You’d need to move 2 or more sliders simultaneously for example. Also it is not too flexible (yet) with how you set up your masters and locations. I was working on HOI (which is the actual term it should be called by, as initiated/discovered by Underware) tools since early 2019, but never had time to make anything releasable. My in-developments tools for HOI are IMO not too shabby, but I was wishing to have more time to create a sophisticated, intertwined set of tools that also integrates seamlessly into GlyphsApp.


any update about this?

Yes, a lot stuff but nothing to show, yet.