Weight interpolation and maths

matteson's picture

I have a question (or two) about weight interpolation schemes.

My question regards, in part, Luc(as) de Groot's method. It seems to be, more or less, Palladio's 'geometric mean', or the maths that govern equal temperament of fixed-pitch musical instruments. So I'm wondering if the compulsion to use that particular mathematical series is based on something more than just convenience or mathematical ease. Is there something about it that I'm missing?

I'm certainly not the most prolific or accomplished type designer, but my own personal work-flow doesn't mesh with the geometric mean method. That method seems to demand that you draw 2 weights, and let the geometric mean determine the third (and the weights amongst them). On the few occasions I draw fonts, I draw the 'medium' weight, then the lightest and darkest weights. And I'd like to interpolate intermediate weights from there.

It seems that if you have three stem weights already drawn, and know how many 'steps' you'd like between them, you can (fairly) easily determine a quadratic equation that defines the intermediate weights.

We have values for x and y (see the graph below), x being the 'weight' or 'step', y being the stem width. Given that the form of a quadratic equation is y = Ax^2 + Bx + C--and using our three predetermined stem widths and steps within the weight scheme--we can easily figure out what A, B, and C equal. Then it's merely a matter of plugging in the 'steps' we desire (as x in our generic quadratic equation), and the values for A, B, and C we just sorted, and we get our stem weights.

The graph above shows a hypothetical situation in which you want your lightest weight to have stems of 25 units, medium weight 100 units, heaviest weight 255 units, and 3 weights in between.

The GM L+M curve shows the interpolated weights using the geometric mean system when you start with the light and medium weights. In order to get the amount of heavy weights desired, you need to draw a font with stems 435 units wide. If we give up the heaviest weight, we still need to draw a font with 301 unit stems.

The GM M+D curve assumes that you start with medium and darkest weights. To get to a 25 unit stem, you need to draw two extra light weights.

But the quadratic curve closely matches the top and bottom 'halves' of these two curves.

Is this a case of 'six of one, half-a-dozen of the other'? Or is there some fundamental aspect of the geometric mean that I'm not understanding, that makes it desirable? Other that it being one of the classical mathematical series that we find 'aesthetically pleasing'.

Christian Robertson's picture

For aesthetically pleasing, eyeball it.

andreas's picture

I have my doubts Lucas used his own method for his current font projects.


blank's picture

I think that Lucas’s theory is intended as a starting point for planning a family and not as an exact mathematical model for final font development.

matteson's picture

For aesthetically pleasing, eyeball it.

You're certainly right. I wind up tweaking the crap out of everything I interpolate anyway, so worrying about the math is probably pointless. I guess I'd just like to know that the ballpark I'm shooting for isn't ridiculous.

I have my doubts Lucas used his own method for his current font projects.

Interesting. I don't have the Thesis family, but it'd be intriguing to measure the stems and see how closely they fit the model.

Well, I have my own petty beefs with equal temperament in music anyhow, so I'll just keep on keepin' on with with my quadratic scheme. Thanks for the comments.

Nick Job's picture

Here are some thoughts I had. I am working on a font that has six weights and it seems to work, based on the geometric progression (b^2=ac where b is the optical midpoint of a and c). Using a quadratic suggests to me that your three starting weights aren't 'pure' and that your lightest weight (hypothetically at least) is not zero units thick (otherwise you wouldn't need a C in the quadratic equation.

For me, either your medium and dark weights (yellow line) are too far apart (gradient is too steep) or your light and medium (red line) are not close enough together (gradient is too shallow). Either way, I'd work out which of the two relationships I'm happier with and then finding out where the other weight ought to fall using the geometric mean.

I'm not saying I'm right. The quadratic route may be better.

matteson's picture

I think that Lucas’s theory is intended as a starting point for planning a family and not as an exact mathematical model for final font development.

Agreed. I'm just trying to find a reasonable way to quickly interpolate some rough weights. Although the amount of time I've spent dinking around doesn't suggest this to be a very fast method. Enjoyable -- but not fast. And most likely unreasonable :-)

your lightest weight (hypothetically at least) is not zero units thick (otherwise you wouldn’t need a C in the quadratic equation.

Originally I thought that there'd be a way to have the lightest weight fall at the vertex of the equation. That would be the 'hypothetical zero' as I see it, since my lightest weight won't have a stem width of zero.

Not sure it's a viable solution though. Perhaps some other curve...

I’d work out which of the two relationships I’m happier with and then finding out where the other weight ought to fall using the geometric mean.

No doubt good advice.

.00's picture

I generally create 20 to 30 different instances between the 0 and 1000 axes, print them out and then begin my decision making process taking into account that each lighter weigh must get a corresponding heavier weight to function as its bold. Where does the medium weight fall and how many weights on each side of the medium does the design support?

Will the Medium be the classic 1:5 stroke width to height ratio, or something different?

Not a quick process at all.

hrant's picture

Nathan, great thread to start.

I don't know how much Luc[as] deviates from his method (it should be not too difficult to check), but I think it's generally quite sound; this is because it deals with human perception, not taste. The important thing to remember is that it's not meant to determine what weight is best for a Regular or any "master" weight. The point of it is to find a weight between two masters that looks equidistant from the two (and by extension you could split the range into more than two halves and get weights that span the segment equally).

The thing is, as Nick says, if you have three master weights that are not nicely spaced, your intermediates aren't going to like each other. And this leads to another -more troublesome- issue, the one James noted: fonts tend to be used in pairs; typographers often use one weight for the body and something else for secondary stuff, so they need that pairing more than they need all the weights to play nice with each other, which means equidistance isn't really a big requirement. However, if you have a fine enough gradation in a font family (something that does appeal to me) this is less of an issue.

> I wind up tweaking the crap out of everything I interpolate anyway

If you're tweaking the stuff between the extremes, either:
- you're an exceptional type designer,
- the design does not lend itself to interpolation,
- your extremes are not good enough.

In my case it's never the first, rarely the second, almost always the third. What I'm getting at is: in general I recommend tweaking the crap out of the extremes until you get to 99% of the intermediates you want*. It's often overhead well spent.

* It might seem nuts, but I dump my original Regular once I have an optimal weight axis going.

> I generally create 20 to 30 different instances

For Nour&Patria, I had to worry not only about the weights in the Latin playing nice and the weights in the Armenian playing nice, but since the system assumed in-line mixing of the two scripts I had to make sure the two scripts play nice with each other as well! So I got velox output of 5% increments between the lightest and the darkest* for each of the 5 typefaces (which means I guess 21 for each), cut up all the paragraphs into rectangles, and went through two grueling days of putting them all next to each other and doing Olympic Squinting! I don't think I've ever had to focus that intensely for that long in my life. Oh, and I made each Italic match the color of the Roman one step lighter (a useful trick).

* Which actually happens to be a much-smaller-than-usual difference in N&P, like the range in Rotis.


matteson's picture

Thanks for the responses, James and Hrant.

- you’re an exceptional type designer,
- the design does not lend itself to interpolation,
- your extremes are not good enough.

I can guarantee it's not the first; could well be due to the second; and is almost certainly caused by the third.

Oh, and I made each Italic match the color of the Roman one step lighter

Very cool.

Not a quick process at all.

I think what I'm looking for maybe isn't a process that's quick, so much as a process that helps me thread through the following two obstacles:

(1) IMHO, the 'geometric mean' method can have a tendency to create families that are quite bland. Maybe that's not quite the right word. But as Hrant notes, because of the maths, the proportions amongst all the steps are exactly the same--'equidistant' as Hrant says. The pay-off is that these faces tend to be very flexible as far as combining a variety of weights on a page is concerned.

(2) I find that some faces I use -- ones that obviously aren't based on a geometric mean -- can be somewhat restrictive. As though the hand of the type-designer is so apparent, that it suggests certain ways the face should be used. I can't think of a specific font of the top of my head; but, for example, a particular weight works great as a bold companion to another -- but not so hot as an intermediate weight between the two adjacent weights. Or, there are times when I think a demibold is a better bold than the 'actual' bold.

Not to say that aren't times when the face should suggest how it wants to be used. But I don't think it's a solution for every typeface.

I'd very much like the project I'm working on to be a utilitarian face--so I'm loathe to suggest too heavily to the end user which faces are the appropriate bolds for others. Yet I'd like it to have a bit more 'character' (again, for lack of a better term at hand) than the geometric mean might lend.

It seems that the work-flow that James and Hrant mention is pretty similar. And since I admire the work of each of them, I'd probably be saved much aggravation and trigonometry by following their advice. But what fun would that be!? ;-) It's fortuitous that I have a seedy love affair with spreadsheet applications.


Music is probably a bad analogy, but I can't help comparing the weights in a typeface to the notes in a scale. The geometric mean is equal temperament in music (the math is the same). And you can play in every key equally well -- but everything is equally out of tune, except the octaves. And the major third is damn near unplayable. Then there's Pythagorean tuning, or perhaps Mean tone temperament, where you can play in a few keys beautifully and in tune, but other keys are unusable.

What's in the middle of those two is what I find intriguing. The variety of 'well' tempered systems, particularly Bach's (or what some think is/was Bach's). Where you can play in every key, but each key has its own Affekt since the notes aren't equidistant from one another. In each key, some notes are more 'in tune' than others.

And then I think: why does the family have to 'play in each key' anyway? In my own work, I (almost) always use the regular/medium/book/whatever weight as the 'musical' root or tonic or fundamental. And the heavier and lighter weights are 'intervals' of that. But, I suppose assuming all of the end users will work that way is being prescriptive, which is what I would like to avoid.

hrant's picture

You're putting good thought into all this - thanks for sharing.

> It seems that the work-flow that James
> and Hrant mention is pretty similar.

Maybe, but James is a better model to follow overall, not least because he's far more productive, experienced and successful than I am.


matteson's picture

Oh, incidentally, as an aside, there's another way to find the geometric mean series than the b^2=ac equation. One that's useful if you don't want/need to have a weight exactly in between the extremes. For anyone interested...

You have your light and dark extremes--let's say the light is 20UPM and the dark is 260. And you want 6 weights in between them. That's a total of 8 weights, with seven 'steps' from light to dark.

You can easily calculate a 'constant' to determine the weights in the series: (260/20)^(1/7). Or: darkest weight divided by lightest weight raised to the power of one over the amount of steps.

Multiply the light weight by the constant to get the next weight. Multiply that weight to get the next, etc. After seven steps, you'll be at your darkest weight. Or you can start at the darkest weight and divide by the constant.

As far as planning ahead for a geometric mean series, I find this equation to be a bit easier or more flexible to work with.

ebensorkin's picture

The thing that struck me when I tried to apply to formula to my Reading MATD design was that the jumps in weight didn't seem to correspond to what I wanted see. The changes were either too subtle or gross. This might not be true for another design - I have yet to try in on a sans for instance. But I suspect similar things will happen. But beyond that I also think that the scale the type will be used at is also factor. The jump you need at 36 points is probably different from what you need at 6 - and will probably follow to some extent pattern of type for small sizes needing features to be more robust.And finally it seems like testing the type outside of purely optical terms and thinking about it in document terms where implied semantic differences which make use of these changes need to be slight (or great) is also important.

Nick Job's picture

> Oh, incidentally, as an aside, there’s another way to find the geometric mean series...

Cheers, Nathan. That is an interesting and very helpful formula.

Like others here, I have really enjoyed this thread. I like the thought that there is some deep maths involved here. It makes me think that God is very clever. I also love the fact that optics alone can find robust solutions to these challenges without needing to know the maths (if there are any!)

My challenge is less how to find the mean weight(s) between two others and more how to know how much thicker on weight should be from the next to work as a robust family. This is where the golden section began to fascinate me. I was also convinced that if you were to use the golden section for the difference between a roman and a bold, that you could only satisfactorily have one intermediate weight between them.

.00's picture

My challenge is less how to find the mean weight(s) between two others and more how to know how much thicker on weight should be from the next to work as a robust family.

Pick the ones that look the best.

Again paraphrasing Duke Ellington, "If it looks good, it is good."

Nick Job's picture

> Not a quick process at all.

James, maybe you should try a geometric progression, it might be quicker!

It might even look good ;o)

.00's picture

I'm happy with my process Nick, and I'm not looking for a quicker one, I work fast enough. Taking a bit of time here and there is where the fun lies.

hrant's picture

For myself, the main reason I haven't used any weight-interpolation math is that I don't make enough fonts! I work too slow for it to really help. :-/ But otherwise I'm a big believer in math, and in fact did use some in the designing of N&P: I used letter-frequency analysis to decide the relative vertical proportions of the Latin and Armenian - see here:
In that case math saved me from a ludicrous amount of iteration.

BTW, a bit off-topic, but: Another technical trick I use is to make a given character in each weight a predictable "distance" in letterspacing from the other weights; so for example using -5 tracking on the Bold might make it width-identical to the Regular; this is useful in cases where the typographer wants to change the weight without affecting linebreaks for example.


matteson's picture

I think that designers like James -- who have an enormous amount of experience drawing letters, and looking at letters they've drawn -- bring a wealth of empirical knowledge to bear on their process. And whether or not that knowledge can really be articulated, it forms a very sophisticated system of decision-making.

Designers, such as myself, who lack that wealth of experience, have to (or feel like they have to) find some other means of generating a similar system to inform their decision-making. Which is where math seems helpful. Even though there's always the chance that it is, in fact, not helpful at all.

I'm beginning to think that I'm approaching this whole affair backwards. I'm hoping that there's some actual perceptual phenomena that would recommend certain weighting schemes. But without understanding the physiology, tinkering with the math is probably useless as far as forming a useful, rational system is concerned. But damn, it's still a fun hobby-horse to ride.

The other thing I'm sure I've turned around is the attempt to compare a musical scale to weights in a typeface. I know less than nothing about the cognitive processes of the brain, but I'm pretty sure that the auditory distinctions we make are very different than the visual ones.

If you take someone who's 'musically ignorant', and play them a perfectly tuned interval, and one that's slightly out of tune, they can hear the difference -- and typically pick out the one that's more "in tune". I don't think that the human eye is capable of discerning differences as slight as the ones that we can hear in the musical world. Not that there aren't people who have that level of visual acuity -- some highly skilled designers, and some autists maybe. But it's the exception not the rule.

I.e., I can hear the awfulness of the major third on a guitar (which is one reason to turn the volume to 11, and overdrive your tubes!) -- but I can't think of a way that that same, slight, grating hideousness could be visible in the weights of a typeface. Not in the same way. I was fiddling with a 'well tempered' weight distribution this morning, and even a 4096 UPM em doesn't have sufficient granularity to render the differences between that an a geometric mean.

using -5 tracking on the Bold might make it width-identical to the Regular

Nifty trick. Seems like another way to give the end user a bit more leverage.

Eben: Thanks for those links. I obviously didn't do my due diligence in looking up previous threads.

hrant's picture

> I’m beginning to think that I’m approaching this whole affair backwards.

Maybe, but not necessarily. Lacking certain information, it might be entirely advisable to reverse-engineer this. You come up with something, test it, refine it. Rinse, repeat.

I remember when I was a teen I concocted a nicely elaborate formula for predicting the 0-60 time for a car based on its weight, HP, and I don't remember what else. I could have done this by learning about mechanics etc. first or done some intelligent research, but that would have been hard in the 1980s (in Beirut) so I reverse-engineered it (which additionally appealed to my particular character). It worked out quite well.

> The other thing I’m sure I’ve turned around is the attempt
> to compare a musical scale to weights in a typeface.

I'm personally no fan of strongly linking reading and listening.


.00's picture

Before I started designing and making type, I had a long career as a magazine art director. I now make the type that I wish I had when I was in that role. Experience aside, I think the only thing that should inform your work is what looks good to you, and what you find to be useful. You can use math or geometry or your own visual determinations, but it has to look good to you.

That is all.

matteson's picture

Apologies if it sounded as though I were putting words in your mouth, James. It wasn't meant as such -- but more of a general comment about experience.

As I've been thinking about this, I've become more disheartened at the approach of looking at stem widths. After all, if I use several weights of a family on one page, rarely am I using them all at the same size. I'm guessing that most folks don't apply a geometric mean to the type sizes they combine on a page -- so if a geometric mean is structuring stem width, that progression is lost once the type sizes change.

I looked briefly at some lowercase n's I've drawn for this family, comparing stem width to the width of the internal counter. And, oddly, even though the stem widths don't hold to a geometric mean, the ratio of stem width to counter width is pretty darn close to the mean.


So I've dusted off some calculus and some RoboFab, hoping to calculate the surface area of positive and negative space. Thinking that if the ratio of black to white maintains an even progression, it shouldn't matter (as much) what size(s) the type is. The progression will be visible in the color of the weights. Of course this begs several questions; particularly 'Where does the counter space end?"

hrant's picture

That last paragraph makes the mouth water!
Go for it.


Nick Job's picture

It's what you might call notantastic.

Syndicate content Syndicate content