How to make round corners

oribendor's picture

I'd like to try to soften a little a typeface I'm working on by making its corners round (like those of ShinnType's Figgins Sans, for instance).

The obvious way would be to use FontLab's bold effect: first "bold" it by –X%, then bold it by X% making round corners.

Two questions –

First, would you consider the result of such a procedure generally satisfactory? I'm getting the feeling that perfect contours become much less than perfect this way, requiring tedious cleanup, even for relatively small values of X. But maybe I care too much over tiny details that nobody cares about? What would you do?

Second, if I do it this way, then all resulting arcs have the same radius, regardless of the corner's angle. Is it not preferable that greater angles would be replaced by arcs with greater radii, so all would look softened by the same amount?

Jackson's picture

That sounds like a terrible way to do it.

The best way to do this would be to write a python script.

William Berkson's picture

You can just do it yourself, but here is a program for doing it. You have to get into the whole UFO thing, though.

blank's picture

Glyphs has a nice little plugin that will round corners and there’s a Fontlab python script for corner rounding on the BetaType web site.

Nick Shinn's picture

...like those of ShinnType's Figgins Sans...

Sorry, I forget how I did that.
It wasn't a python script, though, just something in the basic FontLab menu.
But I can tell you there was a huge amount of clean-up involved.
A lot of that was because of the "resolution" of 1000 units to the em.
I would probably have been better to work at a much higher resolution.

I'm not sure it is possible to avoid manually finessing the details.
Here is the right terminal of "s" from Figgins, and from AG Rounded.
In both instances, the shapes do not correspond to a simple "circularization" of corners.


What is other people's experience with making rounded fonts?

oldnick's picture

I draw all of my outlines in CorelDraw, generally using a stroked centerline method, so it's VERY simple to specific round line caps and round corners. Corners usually don't require any adjustments, but end caps generally do, but correcting the problem is as easy as deleting the center point and re-adding it...if that makes any sense.

Tim Ahrens's picture

I also second the Glyphs suggestion, just tried the rounding function myself last week. And it's (still) free.

oribendor's picture

@jackson

The best way to do this would be to write a python script.

Executing what algorithm?

@William Berkson, James Puckett and Tim Ahrens

Thanks for your suggestions, but I'm a PC... :-)

@Nick Shinn

I would probably have been better to work at a much higher resolution.

But then when you turn back to 1000 upm, contours get distorted and you must clean them up all over again. I was under the impression that it was never a good idea to work at a different resolution than the one you'd use for the final product. Was I wrong?

In both instances, the shapes do not correspond to a simple "circularization" of corners.

What did dictate its precise shape, then, if any? The eye alone?

Nick Shinn's picture

But then when you turn back to 1000 upm

You don't have to.
Many TrueType fonts have an em square of 2048.

What did dictate its precise shape, then, if any? The eye alone?

Yes, but I often paste circles into the mask layer, as in the image above, to use as a reference.
When eyeballing the shape of curves, I use the "vertical flip" feature of the FontLab metrics window, which gives a different view; working in fonts that have a contrast of stress between vertical and horizontal, often at an angle, can play tricks on one's eyes, so flipping brings back a measure of objectivity.

oribendor's picture

Interesting, Nick. Perhaps it's because I'm novice, but the whole "do it by the eye" approach scares me a bit, and I always wish I found more systematic approaches.

Jackson's picture

The best way to do this would be to write a python script.
Executing what algorithm?

Math

oribendor's picture

jackson, could you please elaborate?

As I see it, anything a script can do, I can do too (tedious as it may be). So if I had known what to put in the script, I would have known how to do it myself, which I don't (hence my question).

Jackson's picture

Look over the Betatype rounding corners script James mentioned above.

oribendor's picture

Oh, thanks, I missed James' comment. But I could only find there a script for mitering corners, not rounding them. :-/

Syndicate content Syndicate content