as expected, my four oblique masters to build a VF (width and weight axis) had only few matching glyphs ((i made the masters individually (regardless matching), then combined)).
some glyphs with curves are designed with added nodes (more than just extremum nodes). those nodes define curves the way i prefer.
to match masters, i had to decide whether to keep/force the complexity (adding nodes in the respective masters glyphs) or delete nodes/simplify outlines (compromise the design). i did both, depending on situations, to learn about VF.
the result makes me uncertain. i fear for the coherence of the font design and quality.
complex glyphs may interpolate bumpy, depending on my rather guessed positioning of the added on-curve-nodes. this can be super detailed (only notable zooming in or print at large).
simplified designs deliver better interpolation but may lack expression.
how consistent are you regarding this problem? do you rather simplify or not?
in the Euro glyph (€) i even did redesign two curves without extremum points , since i couldn’t make it work smoothly with adding complexity.
what do i risk/can go wrong with missing extremum points?
any opinions?
Comments
Then you’ll need to decide whether to keep the semibold as an intermediate master, or simply remove it and interpolate that weight from the new bold.
‘Delta set’ is the technical term for how master design outline data is stored in an OpenType variable font. In your design tool, you work with ‘masters’, but the OTvar format does not actually include all those masters in the font; rather, it stores only the difference—the delta—between those masters and the single set of outlines (‘default instance’) stored in the font.
A delta set may be a complete set of deltas between the default instance and an axis extreme, as derived from your design masters, but can also be between the default instance and an intermediate masters, and can even be for a single glyph at a specific location within the design space. So, for example, if you were to decide that some glyphs benefited from having a semibold master design but that most could be interpolated from the new bold master, you could provide a master design only for those glyphs, and these would be stored in the font as a delta set for those glyphs only (how you go about this will depend on your tools).
The part about "intermediate master" is clear. i tend to understand the "delta" thing, but was confused because FL8 allows me to "add delta filter" to my points. but i will create/draw proper master outlines, instead of tweaking it with deltas, not to complicate this more.
Thanks again!
In such a case, the corners are created by vector addition rather than interpolation.
The orange letters represent the corners between two or three axes, which in the OpenType variations technology may be extrapolated between the axes at run time, i.e. technically the font does not need to store any delta sets at these locations in the design space, although typically some corners of a design space will benefit from having delta sets there, representing corner masters.
Because, as type designers, we work in our tools with ‘master’ designs, it can be hard to transition our thinking into OTvar terms. One way to approach this conceptually is to think about making variable fonts primarily in terms of designing design spaces. So rather than starting with a master or couple of masters, think from the beginning about how you want things to relate across the design space and what you want the user experience to be as he or she interracts with that design space. To do this, it is important to understand the way OTvar fonts can represent the design space, which is quite flexible and, hence, benefits from intentional decisions about how you want to structure the space, especially when more than one axis is involved.
So, for example, ask yourself where you want the default instance to be located, which will determine the number and kinds of deltas the font will store. In the diagram above, the default instance is in the middle of the (rationalised) design space, but it doesn’t need to be. The default instance could be at an axis extreme, or in a corner, or anywhere else within the design space, and the design space is unlikely to be an actual cube because not all the axes will have the same scale or plot instances in a linear fashion.
Because OTvar was developed in part as a kind of compression format—enabling complex related font families to be packaged into a single font file storing deltas rather than multiple sets of outline and metrics coordiants—, I’m sometimes thinking about design space structures in terms of data efficiency, but must also think about them in terms of design quality, and then user experience. So, for example, a variable font is going to be smallest if the default instance is at an axis extreme and the corners of the design space are extrapolated at run time. But the nature of the design might benefit from having a kind of anchor somewhere in the middle of the design space, through which the various axes pass, and at least some of the corners of the design space are likely to benefit from having delta sets because extrapolation between axes is additive and can produce unwanted visual results, e.g. collapsing counters or sidebearings.
[In the coming years, variable fonts are likely to get technically more complicated but also more flexible in ways that will make it easier to balance considerations of data efficiency, design quality, and user experience. It will be possible to bend and trim the design space, providing more control over extrapolation between axes without resorting to corner delta sets. This technology is currently going through the standardisation process.]
_____
The delta filter tool in FontLab 8 is not related to delta sets in variable fonts, but involves a similar principle. It is a way to manipulate individual glyph outlines with FL8 by applying x,y deltas to the position of individual outline points, in a way that causes the position of other points to interpolate. It is an extremely useful tool that I use almost daily. It is in FL8 because I kept pestering Yuri to implement something like it to restore the functionality of the ‘Interpolate Nodes’ tool from FontLab Studio 5; he chose to implement it as a filter, which in FL8 is a kind of editing state that can be used on a glyph and either kept active or ‘expanded’, i.e. applied to the glyph (I always expand delta filters after I have made the adjustments I want, and have yet to come up with a situation in which I would want to keep a delta filter active on a glyph).
@Thomas Phinney
So, to achieve that given example, i would…
– draw/create six “green” masters on three axis: light/bold, narrow/wide, large/small.
– interpolate all “orange”, of which i “generate instance” (FL8; you call this “vector addition”) the eight corners to font masters. The “green” masters may serve as intermediate masters or may be deleted.
– “red” is an interpolation and could be added as a generated instance/added vector/intermediate master and saved as the default outline, of which deltas are stored for all possible renderings within the design space. (as John explains it.)
…this is for a variable font. any static font could be exported after stage “green”.
@John Hudson
Thinking design space does make more sense to me once a 2nd or 3rd axis is in the font, i seem to have been confused with the terms “axis-extreme” and “corner”. i re-design old fonts of mine, thus my approach with given masters that i want to bring “alive”. i understand a new font project should be thougt in design space.
You say “although typically some corners of a design space will benefit from having delta sets there, representing corner masters.”, and “at least some of the corners of the design space are likely to benefit from having delta sets” – iow, those should be “generated instances”, Thomas says “vector additions”. Can corner masters be done on a glyph basis (supplement to all axis-extremes) or should those encompass the complete glyphs-set, alike the axis extremes?
Thanks for the insights in your use of “delta filter”. i venture into new fields.
You could also have a hybrid setup where you have some of those green masters but not all, presumably because you only needed to do manual adjustments/corrections in some areas of the designspace. For example, the bold-condensed areas might need manual fixing, but not the light-expanded areas.
Deleting orange masters after creating the nearby green ones is optional. Again, it depends on the degree of design control required.
And this is where it gets interesting. Every delta set (‘master’ for one or more glyphs in a design source) influences the design space to a greater or lesser degree, depending on its location. So each corner master that gets added to the mix may affect what happens at other corners. This thankfully seldom means that a new master at a corner will have a bad effect on otherwise nicely extrapolating corners from the first phase of work, but what it might actually improve some of the distortions elsewhere. So iterative variable font development has to be planned with in sequence, figuring out which corners to tackle first, and then testing those results and their influence on other corners before proceeding.
I have seen a situation in which the shapes of glyphs in a corner were okay, but the sidebearings were much too tight—due to the influence of both the wdth and opsz axes on spacing—, in that case one might have the option of not including an outline delta set at that location but instead using the HVAR table to affect only the glyph metrics.
The green glyphs in the diagram represent the axis extremes (the axes are represented by the solid red lines). So you can’t really delete those if your design space is structured as shown in the diagram, with the default instance being located in the midst of the design space, with all the axes passing through it. Every axis must have three identified locations: the min, the max, and the default. The default may =min or =max, but conceptually all three locations exist on every axis.
At the moment, I don’t think you can’t delete the delta sets at min or max of an axis without putting something else there. In future, it will be possible for at least some axes in a font not to have extreme delta sets, but instead the min, max or default could be defined as locations within the design space that are defined by other axes. In that model, conceptually, I can imagine a font that has only corner delta sets, and the extremes of all the axes are defined as locations interpolated between those corners. Interesting.