Sunday morning designspace-thinking. While it is worthwhile to make each variable font source perfect, the majority of your designspace consists of mixes of these sources. How far does your perfect reach? When and how were you going to look at the actual outcomes? Oh of course, Longboard for @RoboFont , right from the start https://github.com/LettError/longboardRoboFontExtension Illustration with @drawBot
@letterror @RoboFont @drawBot In my mind, it’s all the same design so it’s all perfect. “Draw the sources, proof the instances”
@klim @RoboFont @drawBot This was a question about getting there.
@letterror @RoboFont @drawBot I don’t understand the question 😂
@klim @RoboFont @drawBot Sources and interpolations end up being perfect. But it doesn’t start that way, it takes effort and relentless proofing. You know all this!

@letterror @klim @RoboFont @drawBot The biggest issue I find in variable font development—beyond more than one axis—is that one can’t know at the outset how many masters one is going to need, and how much work is going to be involved in making corner locations correct* until one has completed and tested the axis extrema masters.

This obviously has implications for pricing variable font making.

*Where ‘correct’ is a locally and technologically restricted ersatz for perfection.

@TiroTypeworks @letterror @RoboFont @drawBot That’s always been a problem since MM-based development, right? Like when you think you’re finished and realise you need a lighter / bolder / narrower style…
@klim @letterror @RoboFont @drawBot Except MM technology *required* a master at every extreme location, so interaction between axes was always explitictly controlled by corner masters. OT variations technology does not require corner masters, but it is difficult to anticipate whether a particular design will need them at some corners, whether those masters will need to be complete or only for specific glyphs, whether you might only need metrics variations....

@klim @letterror @RoboFont @drawBot MM development always involved a predictable number of master designs derived from the number of axes.

I made this 2016 illustration of a three-axis variable design space using an MM font (Kepler), because I didn’t have an actual OT variable font. In the MM font, every one of these letters represents a complete master. In OT var, all the orange ones are technically optional, but you can’t know which ones you’ll need until you’ve made the green ones.

@TiroTypeworks @letterror @RoboFont @drawBot The orange are technically optional in OT var? Wouldn’t that mean you’re extrapolating the rest? Wouldn’t that just be a mess? I look at that design space and see 8 corners of the cube, those are the definite sources. Maybe a regular. And I’d try my damndest to make it work with as few other sources or braces as possible

@klim @letterror @RoboFont @drawBot OTvar is defined in terms of a single outline set (which may or may not correspond to a design master), and deltas to other fixed locations in the design space. The only locations that technically need delta sets are the extrema of the individual axes, and those tend to be design masters in sources.

The interaction between the axes is indeed extrapolated—but extrapolated within the confines of the axis extrema—unless additional delta sets are introduced.

@klim @letterror @RoboFont @drawBot So in the diagram, those orange locations indicate corners of the design space between two or moore axes, which can be either extrapolated or controlled.

The math used is actually really good, and if you design your axes extremas carefully you can often avoid needing to add delta sets in all the corners.

@klim @letterror @RoboFont @drawBot So, for example, if you have a weight axis, you can often pass a width axis through one weight extreme—or through an intermediate default instance location—and the extrpolated corner between the width axis and the other extreme of the weight axis will be good. And with the avar—and better, avar2 table—you can bend the design space to adjust the location of the corner. So, for example, you can have Bold Condensed be less narrow proportionally than Light Cond.

@klim @letterror @RoboFont @drawBot

“I look at that design space and see 8 corners of the cube, those are the definite sources.”

Except, the variation axes do not connect those corners, and if they were to then the corners would be elsewhere and you’d still need to decide whether to inset delta sets of let them be extrapolated.

@klim @letterror @RoboFont @drawBot What you could do at the source level is design the corners, then interpolate the axis extrema locations between them. So that gets you the design approach you describe with a known number of masters, but with derived OTvar axis structure. That’s quite an attractive way of working in that you have a known scope of work from the outset.

@klim @letterror @RoboFont @drawBot I’ve seen some projects in which axis extremes have been designed, then corner extrapolations have been instantiated as masters, then those have been tidied up, then the original extrema masters have been deleted and re-interpolated between the new corner masters, then those corner masters deleted, leaving extrema masters that are guaranteed to cleanly extrapolate to the corners.

Fun!