Non-linear or higher-order interpolation (HOI)

Jasper de WaardJasper de Waard Posts: 617
edited March 2020 in Font Technology
Hello there,

Following a discussion in this thread, I thought it would make sense to create a new thread on the topic of non-linear interpolation.

The principle is explained very nicely (I think) by Underware here.

I'm personally interested in this, because I'm trying to create an animated version of a typeface I'm working on. Of course one could simply animate it in animation software, but HOI in a variable font would be a much more elegant and flexible solution. Obviously this is just one example use for HOI, the possibilities are endless.

So, is there any chance we will see HOI become part of the variable fonts spec? Are there any work-arounds or alternatives to animation? And what would be the key arguments for making HOI a reality?

Lots of questions, I know. Just throwing it out there.



Picture by Underware:


  • So, is there any chance we will see HOI become part of the variable fonts spec?
    Yes. It's been discussed by an ad hoc working group (along with some other much-needed improvements and extensions to the OTvar spec), but there's an administrative block to actually getting the spec updated at the moment, because Microsoft currently doesn't have anyone in charge of the OT spec. There are people like @Rob McKaughan who are actively pushing OTvar development from within Microsoft, but he doesn't have 'ownership' of the spec.
    That's great news! Any idea what sort of timeline we're looking at? Months, years?
  • John HudsonJohn Hudson Posts: 2,976
    In answer to the query raised in the other thread:

    [@Matthew Smith] Based on what Underware is doing with HOI (Higher Order Interpolation), I think variable fonts already support that, however, I don't think many tools are built for it at the moment.
    [@Jasper de Waard]  FAFAIK, the variable font spec does not support that. ( Underware must have created their own tools, but this is not something that can be implemented straightforwardly in design apps.
    HOI is sort of supported. Underware found what might be classed as loopholes, i.e. undefined behaviours, in OTvar that enabled them to use the existing architecture as a basis for HOI. The working group has discussed how to properly define these behaviours and to make HOI a formal part of the spec.

  • Adam JagoszAdam Jagosz Posts: 689
    edited March 2020
    Does SuperFont™ exists in the InterWebs™? I could only find mentions on three pages from Underware's website, and not much more. @John Hudson HOI is sort of supported — by what software/rendering engine? I mean, am I unable to find that font because it can't be... viewed just yet? :smiley:
    The article is spot on, until it starts giving me a headache at this hour from the complexity, but still cool™. Thanks for linking @Jasper de Waard!
  • John HudsonJohn Hudson Posts: 2,976
    edited March 2020
    by what software/rendering engine?
    In principle, I think it may work pretty widely. The loophole in the spec is that more than one axis can have the same tag, and the result is that they move in unison. This allows a point to be moved in x and y directions along a path, rather than in a straight line, because both axes are affecting the movement at the same time. I'm pretty sure Underware have made their own tools to create the complex HOI fonts they've been showing, but as I understand it the behaviour at the format level is mostly in place and just needs to be formally specified.

    That said, I've not played directly with any HOI fonts, and don't know what environment dependencies might exist. This is why I consider the mechanisms used to be loopholes — which sounds nicer than 'hacks' —, because the behaviour is undefined in the spec, so platforms might interpret the data in different ways.

  • I would like to add meta-axes to the specification, which will not only cover HOI needs, but also provide other options. 
  • John HudsonJohn Hudson Posts: 2,976
    Meta-axes have definitely been discussed, and a few different models put forward. The most likely implementation path is probably a version rev to the avar table.
  • Microsoft currently doesn't have anyone in charge of the OT spec. There are people like @Rob McKaughan who are actively pushing OTvar development from within Microsoft, but he doesn't have 'ownership' of the spec.
    I know I'm probably shouting into the void here, and personal opinion only, but if they can't maintain it, I'd argue there's a moral imperative to release it to a community of people who can. This right here is the reason why the specifications for most widely-used technologies are normally held by a consortium of stakeholders (Unicode, IETF, W3C), not a single company. I know, I know, historical reasons and so on, but a really good question is "What's the right thing to do now?"
  • Thomas PhinneyThomas Phinney Posts: 2,748
    @Simon Cozens
    There already exists an open version of the OpenType spec: the Open Font Format (ISO/IEC 14496-22:2019). I could imagine that if MS continues to stall on the OpenType spec per se, new-stuff momentum might shift to the Open Font Format.
  • John HudsonJohn Hudson Posts: 2,976
    Updating the OFF version of the spec requires working within the ISO framework and standards procedure, which seems overly bureaucratic to a lot of people. Frankly, I think the only reason anything happens on the OFF side is that Vlad (Monotype) understands the process and keeps on top of the bureaucratic requirements. By contrast almost everything of value that's been done on the OpenType side has been done via ad hoc working groups (and without formal constitution and without involving corporate management or lawyers).

    Something between those two approaches would be best: an established but less bureaucratic and more flexible framework than ISO, and a more open and transparent process than the ad hoc working groups. For a while, I thought W3C might be a good place, because their draft it, build it, publish it approach to specification seems like a good model for a font format, but given the obvious synergies between text encoding and text display, and the significant crossover of individual expertise and engagement, I think Unicode would probably be the best place.
  • There is now an issue for discussing how an implementation should handle multiple axes with the same axis tag.

    That being said, this thread (and much later the above issue) got me thinking about how there seems to be a lot of interest in HOI but not a lot of explanation of the actual nuts and bolts, which would help in understanding what can and cannot be done. Then I realized that I didn't really know either, so I wrote up an explainer to try and explain it to myself. At the moment this is a very terse explanation with a bit of math on bezier curves and assumes some prior knowledge of how 'fvar' and 'gvar' work. It could also really use some animations. It does work everything down to an actual example font which is fun to play with in Samsa. As terse an explanation as it is, hopefully it's helpful.
  • Waiting for notan...
  • ... so I wrote up an explainer ...
    I've also taken a stab at writing up an explanation. And I don't feel I need to explain Bezier in order to explain NLI/HOI.

    Understanding Non-Linear Interpolation in OpenType Variable Fonts

Sign In or Register to comment.