Spiro curves

Spiro curves

Spiro curves go mad when they don’t converge.

I’ve been meaning to give Spiro curves (or clothoids) a try for a while. By now, I’m fairly confident with Bézier curves, but I’m always interested in finding other ways to do things, and Spiro curves have a very different quality to them. As we all know, Bézier splines are especially nightmarish when drawing curves that don’t have an even radius — think of a slightly bowed vertical stem leading into a much tighter serif bracket. The problem is Bézier only allow control of the slope of a curve, without balancing the curvature. So extra points and handles are required to create smoothly connecting curves. With Spiro curves, on the other hand, as points are moved, the equation instantly rebalances to maintain a smoothly changing curvature, even when the curves have a significant change in radius from one point to the next. Spiro curves are used in the construction of train tracks, as they eliminate the jarring bumps that would be felt from any discontinuous bends in the track. Unlike with Béziers, there are no control handles to worry about: simply plot the on-curve points through which the curve should pass and the equations take care of the rest, drawing a smooth curve all the way. This makes quick adjustments pretty fast.

I used Raph Levien’s Spiro tools on FontForge. FontForge was a complete nuisance to install, and is a rather unattractive and bumpy experience, but my first adventures with Spiro curves seem quite promising, and it would be hugely interesting if FontLab could add support for this alternative way of drawing in the future.

The best thing about Spiro on FontForge is when the equation can’t be solved and the curve pops into loopy madness! I’m looking forward to seeing the more sensible results of this little experiment.