Local Interpolation

Any example / explication / link explaining “Local Interpolation” custom parameter please?
Also, wouldn’t be cleaner to keep the properties list ordered alphabetically? :slight_smile:

You have to add a list of numbers separated by semicolon and an ‘include’ statement:


The numbers are the instance coordinates in the order as thy are in the UI.

1 Like

Ok and A,B,C is the list of glyphs to be impacted by the modified instance values (weight,width,custom), right?

You are right.

Where is more information on that “Local Interpolation” custom parameter?

In the upcoming handbook. But that is about it, what else do you need to know?

A sample/hypothetical use case?

1 Like

Yes, what does it do? It sounds interesting.

You can use different interpolation values for specific glyphs. That’s what it does.

I see; that could be pretty handy for balancing weights between scripts. Would it be possible to allow a range based on glyphOrder such as A-Z, a-z, 0-9 or ka-myanmar-tone5-tailaing, rather than having to input every glyph name?

What happens to kerning and/or anchor attachments between glyphs if one of a pair has a different interpolation value?

I suppose this is the implementation of a feature I recently requested?

A realistic use case would be that you have a brace layer for the w because it needs a slightly heavier semibold (compared to pure interpolation), for example. So, to create this brace layer, I would make it Semibold {120}, re-interpolate, then rename it it to Semibold {110}. Originally I requested a new syntax option like Semibold {120=110} but the custom parameter is also a good solution (and actually more powerful).

So, assuming I understand it right, Local Interpolation can replace the brace layers technique if the only adjustment is the weight. Another example would be superiors, copyright, at or the registered sign – any glyph that needs weight adjustment in the interpolated weights.

1 Like

I don’t like the ranges. It depends either on glyph order (that can change and you might not be aware of the setting you did in the instances) or it depends on Unicode ranges and that limits the usefulness to consecutive ranges. A lot scripts have scattered their glyphs in several places …

And the interpolation can be adjusted for all axis in your file.

True. How about allowing wildcard glyph names? It could look for any glyph names containing -thai or whatever.


For now, it should be easy enough to copy and paste all the glyph names, or, if the glyph set still changes a lot, have a simple script update the parameter.

The impulse to do it that way came from someone else but I was hoping that you would be able to use it, too.

something new there: “Local Interpolation” to manually set the factors
What’s about? :slight_smile:

You can set the factors for each instance manually (with a script). Now you can do that with the ‘Local Interpolation’ parameter, too. We’ll put that in the documentation.

I have also come to really love this feature!

So, I understand that glyph ranges were rejected.

But how about allowing glyph classes (from the OT features tab)? Or, even cooler (but a bit dangerous if working on multiple computers), using list filters from the side bar? That would be very helpful.

I strongly believe in the Don’t Repeat Yourself rule, and having the same list(s) of glyphs in Local Interpolation for several instances feels completely wrong. We need a solution to define these lists globally instead of repeating them for each affected instance. I’d really appreciate a solution!

1 Like

Hi I have a feature request concerning local interpolation: it could be aware of virtual masters. When I export a font with the custom parameter “Local Interpolation” and I set the coordinate for a virtual master, the glyphs that have the special layers for this master don’t export at all and there is no error message showed either.