-
Notifications
You must be signed in to change notification settings - Fork 0
Description
At Libre Graphics this year, I had a number of excellent brainstorming discussions, which led to the thought that radial basis functions could be a better foundation for variable interpolation than the current piecewise multilinear approach. I've expanded on this in a document, and have also done some code prototyping; see the rbf-interp repo in particular. I have started an interactive demo of these ideas, and hope to have it soon, but not just yet.
A major motivation of this work is to capture similar design intent as Higher Order Interpolation, but hopefully in a manner that is both easier and more intuitive for designers, and also more efficient to encode into binary fonts. I believe it's worth exploring adding smooth basis functions to the OpenType spec, so these more efficient fonts can be delivered to end users.
Another consideration which I think is relevant to standardization is the requirement that basis functions be zero at the default value. Since most radial basis functions are not designed this way, I propose a "bias" term that makes it so by construction. Then, I believe, the default can be moved around fairly freely, preserving encoding of the basis functions and letting the base font be encoded the same as an instance.
Obviously this proposal is not backwards compatible; clients would need to be upgraded to be able to interpret variable fonts using these new mechanisms.
I make a number of claims in the proposal, particularly a more intuitive design process and a more economical encoding of sophisticated design intent. I don't yet have solid empirical data to back these claims, but expect to roll out prototypes and demos in the coming weeks, as I build up the Runebender toolset. But since the maximum benefit depends on changes to the OpenType font format, I wanted to start the discussion relatively early. If it turns out that I can't substantiate these claims, then I will withdraw the proposal with egg on my face. Hopefully we will have learned something, though.
I'm happy to discuss the proposal further. Editorial suggestions are probably best left as comments on the Google doc, but discussion of the merits and drawbacks of the proposal are probably best done here.