Manage interpolated instances in a variable font

Hi fellow font nerds,

I’m designing quite an extensive font, and as masters I have a hairline and a black weight. Halfway through though I noticed my black master doesn’t really seem heavy enough to cover the ‘whole spectrum’ of weights I’m aiming for. Instead of redesigning everything I opted to rename my master to ‘ultrabold’ and create a few more instances (black, extrablack, super) with stem-widths exceeding the master. So my setup looks like this (from thin > heavy):

master > instance > 2 million other instances > master > instance > instance > instance

My question now is twofold:

  1. Is this an acceptable method or should instances always be in between 2 masters? I’m checking all characters thus far and they seem to look pretty fine beyond the masters. Could this create issues in the future (during export, or when using or something)?

  2. Does the exported variable font also include these exceeding the masters? Can you (or do you have to) set extremes/min-max values for a variable font’s parameters manually or how does this work exactly?

  3. bonus questions: Is it possible to expand an instance to shape and alter it? For example you have an interpolated $ in regular weight, and I want to make a slight adjustment. Or do I make an in between master and redesign my $ manually? Will it then affect other characters by having this middle master where they are ‘empty’ not redesigned? (many questions sorry, I Googled but couldn’t find the info that helps me).

Thanks in advance! <3

I think extrapolated (vs. interpolated) instances can export okay on their own so if they look okay they are okay, but a variable font’s axes are determined by masters.
Note that you can have Glyphs create a new master from an instance.

I did not know this (or forgot about this. Thanks! So in order for my variable font to include my heavier weights, I would have to finish my whole font as I’m doing, then create a master from my heaviest extrapolated instance? I guess this is how you also can finetune your font in the end, creating some masters from instances inbetween and adjust a bit, to have more control over even stem widths etc…

How would I fork a single character tho in a variable font? For example the $ sign? If I want this other version from a certain weight, where does it cross over in a variable font, or how would you go about setting this up?

Hello Joren, welcome to the Glyphs forums!

This concept is somewhat acceptable, at least technically possible. Extrapolation, which is what interpolation beyond the defined design space is called, is useful for experimenting with design space extremes when you’re not quite sure about them yet. Once you are sure about your design space extremes, it is very much advised to re-define your master coordinates accordingly, as this will otherwise not work well with variable fnts – as you guessed at, the extrapolated instances will not export within the variable font.

You can, somewhat un-intuitively, click the + button on the instance panel while selecting a certain (e.g. extrapolated) instance and select “instance as master”. This will add your defined instance as a new master in the font which you can edit. You can afterwards delete the old master, in case the interpolation looks good otherwise.

Regarding your bonus question: This is what is you use bracket and brace layers for, as eliason linked to above.