Family Stem Weights Calculator

PabloImpallari
PabloImpallari Posts: 806
edited March 2013 in Type Design Software
This is a simple little tool that will help you plan the stems weights values across a 9 styles family.
Input your thinnest and boldest stems values, and it will show you a wide range of possibilities to get you started.

The first column will provide steps of equal size.
The last column will provide progressive steps.
The 3 columns in the middle will provide intermediate steps.

You can use this values as a starting point to plan your family.
The final decision, of course, is up to you!

http://www.impallari.com/familysteps/
«13

Comments

  • This is a great tool. One thing you should add is an option to specify the number of steps.
  • Thanks Georg!

    Currently I've chosen those 9 weights as to match the CSS3 specs.
    The option to specify the number of steps is in my To-Do list, maybe in the next update.
  • [Deleted User]
    [Deleted User] Posts: 0
    edited December 2012
    The user and all related content has been deleted.
  • I agree, it's a great tool. And if there's any possibility to start with Regular weight and thinest (or boldest) and it calculate the rest. Some kind of extrapolated calculation.
  • @ mean?
  • The user and all related content has been deleted.
  • Thanks for the explanation, James. And a very merry ### to you.
  • Lovely! Thanks for that addition.
  • Nice! and timely for me too. Thanks, Pablo.
  • PabloImpallari
    PabloImpallari Posts: 806
    edited January 2013
    Updated once again (version 4), with lots of goodies!
    Please, take a few minutes to analyze the results, compare to your own families, and let me know what you think, or what can be done to improve it.

    If you wants to contribute the data from your own fonts (will be helpful to further improve the results) you can do it like this:
    MyFontName = 20, 40, 60, 80, 120, 140
  • v3 has already been of great benefit to me by using it to validate the manually selected numbers I already had set up for a family of six weights. It let me know that one of my numbers was out of range and needs redoing.

    Thanks so much for this tool; it's saved me a lot of wasted time.
  • Let's not forgot to trust our eyeballs. Formulas are great to start but I've found some instances seem to need adjustment, either for an smooth transition across weights or for the intended size/use (regular being used more in text, thins more in displays, etc).
  • PabloImpallari
    PabloImpallari Posts: 806
    edited January 2013
    Yep, exactly.
    That's why I made this, my eyes were not happy with the Lucas formula. It works great when the difference from Black-Thin is small, but it fails when the range is bigger, as the Thin steps get too close together, while the Bolder weights get too far apart.
    I hope this ones get closer to better result, but of course there is room for improvements.
    All in all, I think my tool offers a good starting point, and then we can refine from there. That's the whole idea.
  • Pablo, it is a good tool for the planning stages, and along that line, do you think it would be useful to allow the user to tweak the numbers for one or perhaps two fields and display an overlay curve showing how it would affect the chosen curve?
  • Goerge, Thanks.
    I'm open to make modifications and improvements.
    Which values would you like to be able to tweak?


  • As an example, suppose you had calculated eight steps and you wanted to adjust one or two of the intervening steps to see what effect it would have on the curve. It might be useful enough to let one know that a deviation from the calculated numbers would not be that detrimental to the curve.
  • Interesting idea. I will try to implement it.
  • This has come at just the right time for me. Thank you I'm looking forward to playing happy families.
  • Pablo, here's another idea. Assuming, of course, that it would be a desirable thing for the sidebearings to follow a similar somewhat smooth curve, this tool might be used to calculate proposed sidebearings for interval font weights based on the curves generated for the weight numbers.

    As it exists, it won't do this and generate similar curves based on a test I did. One additional bit of information it would require would be the EM size. Is it doable?
  • PabloImpallari
    PabloImpallari Posts: 806
    edited January 2013
    If you input a bigger value in the Thin input field, and a smaller value in the Black input field, the tool will still work (surprisingly!)

    A) Thin 220, Black 20, Steps 8 will produce:
    200, 148, 116, 95, 79, 62, 43, 20

    As another option, you can load your thin sidebearing value in the Black input field, and your black sidebearing value in the Thin input field, and sort the result in reverse.

    B) Thin 20, Black 220, Steps 8, -reversed results- will produce:
    200, 170, 136, 102, 72, 48, 30, 20

    One will be and S-shape, the other an Inverted-s shape (not sure which is which).
    Try both options, and let us know which one works best for sidebearings... or if both fail
  • I had tested that earlier and the results were a "curve" with straight lines and peaks. I did try it both ways too and was happy to see it worked in reverse.

    Try these values and you will see what I saw: 7 steps, 105, 101, 97, 93, 89, 86, 78. If you invert it then it becomes quite different.
  • Excuse me, I just made a huge mistake. I gave you the results, not the input. Input would be 7 Steps, Thin 105, Black 78. My apologies.
  • PabloImpallari
    PabloImpallari Posts: 806
    edited January 2013
    No problem.
    The "lines and peaks" are the effect of rounding values ​​in small ranges.
    Choose "2 decimals" and the graph will be smooth again :)

    In the "Decimals" option you can choose: to use 1 or 2 decimals, to round numbers, to round-up (ceil) and to round down (floor).
  • That works although the curve is much more shallow than I would have thought it would be, likely because the numbers are so close together. Interesting thing, though, if one chooses "Round Down" rather than one of the decimals you end up with 1 less than the input value -- not a deal breaker, though.

    Forget what I wrote about specifying an EM value. Since the resulting curves are so different from the weight curves it won't matter, everything being relative. The tool is perfectly useful as it is.
  • This is very handy! Thank you.

    BTW, the Lucas formula numbers break down if I enter 0 and 1000 as the two numbers.

    Why would I do that, you ask? Because I don't want to know what the stem thicknesses are, I want to know what values to use in FontLab Studio for the instances in a multiple master space which uses labels of zero and 1000 by default....

    Mind you, I can just enter 1000 and 2000 instead. Easy enough to subtract 1000 from the results.
  • MM! I hadn't thought of that but I can see how it might be useful.
  • PabloImpallari
    PabloImpallari Posts: 806
    edited January 2013
    Thanks Thomas.
    Lucas formula numbers break down if I enter 0 and 1000 as the two numbers.
    Yep, as there are divisions involved and division by zero is not possible.
    I want to know what values to use in FontLab Studio for the instances ... Mind you, I can just enter 1000 and 2000 instead. Easy enough to subtract 1000 from the results.
    I'm not sure you will get the same results. Let us know if it works.

    I always struggle with decimals in FL/Superpolator to get the instances in the exact point. In Superpolator is easier than FL, as you can live-preview the stem weight measurements. Georg's Glyphs app is super nice, as you can simply use the stem values for creating the instances.
  • In Superpolator is easier than FL, as you can live-preview the stem weight measurements. Georg's Glyphs app is super nice, as you can simply use the stem values for creating the instances.
    You can work around to use stem values in Superpolator:
    Insert your masters with a value == stem width
    Insert your lightest master a second time with a value == 0
    Easy

  • I want to know what values to use in FontLab Studio for the instances
    In Fontlab’s masters graph move your masters to positions that match stem weight values. Now you can set instance values that equal your stem weight.