With many masters: instance interpolation gets messed up

Dear Glyphs forum

quickly translated from German into English

we are working in a Glyphs file with 16 Masters.
8 Masters got “Inktraps” and 8 Masters don’t. This way, each Style exists in two variations.

46 48

Between all Mastes we have 2 Instances defined. In total we’re generation 40 Styles.

Now we noticed that the optical result of the interpolation doesn’t “sit” between the Masters. Two examples:

We tried to split the file into two, with 8 Masters each, which solved the problem. However, we need them to be all in one file (in order to produce a Variable font which allows to transform from non-inktrap to Inktrap).

Is there a workaround or a way to “refresh” respectively restart the setup so it works again correctly?

Thanks for your help!

I would need to see the full setup of the masters and the paths. Can you send me the file? And how should it look like?

1 Like

thanks Georg, I just sent you the entire file via Email.

Can you illustrate what you expect?

@GeorgSeifert we expect the interpolation to be more linear between the masters (the green lines). It works fine with less masters, like this:

Currently, with 8 Masters, it looks like this. There is a “interpolation dip” in the middle (red arrows). The ink traps suddenly go deeper than any of its two masters right and left.

You can see easily that something funny happens that if you move the weight of – for example – the Book Instance between 85 to 95, the preview jumps.

@GeorgSeifert We have tried to create an entirely new glyphs file made in Glyphs 2.6 (glyphs got updated a couple of times during the design of this project) but it didn’t help.

did you come across a solution for this?

Do you do Python? You can query and set the interpolationDict of an instance, and that way control which masters have which influence on the interpolation.

How do we access interpolationDict? Can you provide an example?

for instance in Font.instances:
    print instance.interpolationDict

Traceback (most recent call last):
  File "<string>", line 5, in <module>
AttributeError: 'NSKVONotifying_GSInstance' object has no attribute 'interpolationDict'

I’m on Glyphs 2.6 (1192).

Try instance.instanceInterpolations and look into the GSInstance documentation on docu.glyphsapp.com

Thanks, that helped us solve the issue!
For those who want to quickly view the instanceInterpolations of each instance, I’ve written a small script which outputs them in a simple UI:

1 Like

Useful script–thanks for posting it! I had to add vanilla. in front of Window and TextEditor. Don’t know why.