Is there a magical way to make stems thinner/thicker

I love in Glyphs app as it simplifies font design with minimal tools and less effort.

While I’m using Glyphs app for a month so far. I have a suggestion for making life easier in designing deferent weights of a font.

Most people start designing a regular weight with offset filter then modify optical edits on the path.

But when designing a lighter version of the same font it takes long time managing stem widths all over the letters manually…

A hack that I’m using is to use the same filter offset with negative values then fix some heights accordingly.

But with one problem…

When doing that, some sharp/thin edges will be destroyed.

Example:

  • The same thing applies when doing a bold version, you don’t want sharp edges to be too much bold.

My suggestion is to add a value called (limit or threshold) that will not (decrease/increase) the offset less than the given number.

for example it will not go more than 10 points. it will stem thinner stem that 10 points:

Please advise if that feature already their in a plugin that I’m not aware of? or if that can be deployed by a script? Or there is a better solution for that all? I don’t know…

Thanks in advance

You can have alook at the RMX Tools, but you will need to have already designed a different master on the weight axis, so this is not exactly what you are looking for.

Generally speaking, there is no “magical” way to make stems thinner, although your idea of adding a threshold is an interesting one.

1 Like

Such weight/width automation is probably under 1% of the work required, which is why there’s still no magical script, afaik. You might get decent results faster by making glyphs out of other glyphs of the same style (/n → /m) rather than from the same glyph of a different style (/n bold → /n thin), because glyphs relate to each other more so than to the other style.

The offset algorithm doesn’t know how thick a stem is. It “just” shifts points in a certain direction.

Thanks for your commendation. if you are a developer and could help?

you are correct for latin letters, but for more complex scripts and languages that does not apply. you will need to do a lot of work

I can argue with that as vectors and points is a simple math that can be solved.
The idea is simple. (if happens an intercept) just stop moving these points that has been intercepted to a certain thresh hold.

There are more complex scripts @mekkablue built. I think he has the magic in his hands? :magic_wand:

You can save yourself a bit of work if you uncheck the lock in the offset curve panel and only transform the vertical stems. Horizontal stems will need manual shifting, but there are less of them. And, like others said, rebuilding by copying is faster than thinning everything.

1 Like

One method I have used is to use the Offset Curve filter with the Interpolate With Background function. First, select your contours and copy them to the background layer (command-J). Apply an offset curve to the background layer. Make sure “Keep Compatible” is checked.
Then, on the regular layer, select only the nodes and handles you want to move—eg. the nodes and handles on each side of the thick stems. Then apply a Interpolate With Background and only the nodes/handles you selected will move.

1 Like