How to calculate other stem widths of masters from Regular weight

Hello everybody — I would really appreciate some insights on this matter: I started designing a Regular weight (because the course I am doing requires that) and it is currently 86 units stem width. I have seen Lucas de Groot theory of interpolation and I get I would need two extreme values to calculate the different stem widths to see how it grows exponentially. However, how would you approach to calculating what the stem width of say a Light and an Extra Bold should be given the situation I am describing here? When it comes to masters, I have heard some use only 2 for weight axis, others 3 being the Regular in the middle....On what grounds do you determine these things? Thanks in advance 


  • Thanks a lot for the tip and quick response @PabloImpallari — I will do that then :)
  • Thanks for the suggestion James. That book looks really interesting indeed.
  • John HudsonJohn Hudson Posts: 2,872
    I use Linus Romer’s steminterpolation tool, which offers several different formulae for calculating progressive stem weight instances between two extremes (I usually use the Lucas de Groot formula).

    As Pablo notes, you need to determine what your extreme weight will be, which can be done by pushing your design as far as possible in terms of lightest and heaviest forms, as he suggests, or can be done by deciding what kind of text you want to support. Obviously, if you take the design as far as possible, then you can always define limits within that range: quite often, my lightest and heaviest weights are not actually shipped, and the Thin and Black variants are defined within the design space weight range.

    Sometimes, I work only with weight extremes, and interpolate the nominal regular weight. Sometimes, I design the regular or another intermediate weight master first, in which case I have to make a decision how to handle the weight progression on either side of it. One way to do that is to treat the intermediate master as a pivot point, in which case I use the steminterpolation tool to calculate two progressions: one between the lighest instance and the intermediate master, and one between the intermediate master and the heaviest instance. This can result in a weight axis with a definite kink in the middle where the two progressions meet. You can then decide whether to accept that kink, or you can reconfigure the weight of the intermediate master by interpolating a new master closer to the natural position according to whatever progression formula you prefer.

    Note that if you have a nominal regular or other intermediate master and, say, a heavy master, you can calculate appropriate lighter masters. So, for example, if I have a Regular master with a stem weight of 174 units and a Black master with a stem weight of 440 units, I can easily calculate a progression between these:

    But I can also calculate the progression on the lighter side of the Regular master down to a Thin master. People better at math than me can probably do that on paper, but I just experiment with the steminterpolation tool, guessing at the stem value for the Thin master and adjusting it until the 4th step in the the progression—corresponding to my Regular master—equals 174 in whatever formula I favour:

    One last note: if you are making a variable font—and, arguably, even if only exporting discrete instances along a weight progression—, I strongly recommend calculating a progression with all the steps of your overall weight range as they correspond to the OS/2 table weight class values, even if you only define some of these as named instances:

    That way you can plot the relationship of your progressive stem weights to these cardinal values, controlling the progression along your wght axis:

    [That’s the axis graph in FontLab 8, my preferred tool.]
  • edited May 2
    Thanks for the thorough explanation @John Hudson. When you suggest determining what the extreme weights will be are we talking about aiming for a Thin and a Black? or a Light and an Extra Bold? If the second, is it correct to say Thins and Blacks should be extrapolations of Lights and Extra Bolds in the type design process or does this depend on the nature of the project?
  • Thomas PhinneyThomas Phinney Posts: 2,644
    edited May 3
    Ideally, you want to design the most extreme weights and interpolate, rather than extrapolate, whenever possible.

    That said, you may change your mind at some point in the design process; this is not unusual. It doesn’t necessarily represent stupidity or moral failure.   >:)

    If, at some later point, you decide a lighter or heavier value is needed, you extrapolate that, generate the instance as a master, and then inspect it and decide whether you can use it as is, or you need to fix it up.

    Depending on both your tools and the nature of your design, you may well find that certain things that were consistent (or good) in your previously most-extreme master are now no longer consistent (or good) and need to be fixed.

    At the very least, if you have precisely consistent stroke thicknesses, extrapolation (or interpolation for that matter) and then rounding-to-grid will, in most tools, generate off-by-one errors a fair bit of the time.

    For example, if you have a 200 (Extra Light) and 900 (Black) masters, but you want to extrapolate 100 (Thin). Let us suppose that your 900 is not monoline, but you want your 100 to be monoline.

    If your 900 is not monoline, and your existing 200 is monoline, the extrapolated 100 will not be. It is not possible. If neither the 900 nor the 200 is monoline, it is almost impossible for the 100 to turn out so, by extrapolation.

    (I mean, technically it could happen, but as a practical matter it would only happen if you had planned it all from the beginning to work that way, in which case you did about 10x as much work as if you had simply directly designed the monoline 100 master in the first place!)
  • John HudsonJohn Hudson Posts: 2,872
    Thanks for the thorough explanation @John Hudson. When you suggest determining what the extreme weights will be are we talking about aiming for a Thin and a Black? or a Light and an Extra Bold? If the second, is it correct to say Thins and Blacks should be extrapolations of Lights and Extra Bolds in the type design process or does this depend on the nature of the project?
    It is very much in the nature of the project, which might be determined by several factors: the particular design and how light and heavy it can practically be made, the kinds of uses for which the typeface is intended, the specific needs of a client, etc..

    As Thomas says, ideally you want to control the design space through interpolation, and avoid extrapolating beyond the lightest and heaviest masters. Extrapolation can be a useful tool in developing additional weights, but the results are seldom perfect. I use extrapolation sometimes to rough in a heavier weight master if I decide that an existing design can usefully be made heavier.

  • Thomas PhinneyThomas Phinney Posts: 2,644
    Unsurprisingly, I agree with John.

    A couple of additional thoughts:
    • in most cases, extrapolation works better in the “bolder” direction than in the “lighter” direction
    • the more extreme the target weight, the more likely it is to need more work, afterwards

  • edited May 3
    That's very helpful @Thomas Phinney and @John Hudson . I think now I have a good picture of what the process looks like after your helpful comments. Thank you all again.
  • jeremy tribbyjeremy tribby Posts: 190
    I would recommend having a look at Linus Romer's stepinterpolation tool, which is slightly different from the steminterpolation tool John mentioned. it is a generalization of lucas de groot's formula that allows you to pick a third value between extremes (like a Regular). in case it's useful to you, I ported it to python a while ago though I didn't recreate the GUI
  • Thanks @jeremy tribby — yes, being able to pick up a third value is indeed really handy.
Sign In or Register to comment.