2013-06-22

2020-12-19

https://github.com/blobject/agave

*Agave* was an attempt at making a small, monospaced, outline font that would be geometrically regular and simple. The endeavor was motivated by a deep adoration of old-school console bitmap fonts, of Consolas, of Pragmata Pro, as well as a novice's curiosity for typographical design.

When it came to establishing a "simple" design scheme, the natural inclination was to separate the glyph design concerns into that of "frame" and "trait". By frame, we refer to the naive geometric extent of a glyph and its parts. And by trait, we mean, for example, the "way" in which a stroke curves, or the relationship between one part of a glyph and another.

Adhering to personal tastes, bone-deep laziness, and the quirky spirit of old computer terminal fonts, the delineations of frame and trait amounted to two mathematical patterns: the power of two and the golden ratio.

And, as may be expected with such a slender foundation, constructing the font turned out to be a rather repetitive and mechanical activity, and the resulting font was of such a plainness that made it embarrassing to read at larger sizes. At smaller, terminal-standard sizes, however, something of the aspired retro quirkiness could be detected.

Between the aforementioned design concerns of frame and trait, the idea of the "power of two" features most prominently in the frame part.

For instance, each glyph lives in a box of width 1024 and height 2048. The baseline rests at the 512 line from the bottom. The x-height occurs within a space of 1024, and a basic glyph extends at most 1536 vertically, leaving a buffer of 256 at the top and at the bottom for diacritics.

Horizontally speaking, depending on the overall shape of the glyph, the edges rest on the 64, 128, or 256 lines, etc. If any edge of a glyph is defined by a curve, that edge is afforded 8, 16, or 32, etc. for the overshoot.

As for the size of the stroke, it was calculated to be `(floor (/ 2048 x))`

, where `x`

is 12 horizontally and 13 vertically.

To illustrate, here is the ascii lowercase `a`

, featuring the basic frame, the overshoot of the bowl, and the variation of stroke size.

The image also includes some other notation, as seen inside the `a`

's counter, and this will be covered in the following section.

The golden ratio plays a large part in what is deemed the "trait" part of the design scheme, the part corresponding to a glyph's style and tendencies.

*Agave* was drawn using Inkscape, together with the latter's native interface with cubic Bezier curves. Due to the simple manipulability of Bezier curves via handles, the definition of "how a stroke curves" amounted merely to deciding on a length for the curve handles.

Quite naturally, the golden ratio seemed to be the most appealing and consistent way to choose that handle length.

As demonstrated by the top part of `a`

's bowl in the image above (img: the length "C"), a curve begins at the golden point of a given span (img: "Cp" leftwards from the stem. Where p = 0.618.. = `(/ 2 (+ 1 (sqrt 5)))`

). The length of the handle, then, is p of the remaining length (= "Cp³"). Though a few situations called for a sharper curve with corresponding handle lengths of 0.75 or 0.8, most curves that appear in *agave* are indeed determined by the method just outlined.

Wading through the construction of the first several glyphs, I quickly learned that most of the design decisions were arbitrary. My hope in invoking the power of two and the golden ratio was to ground that arbitrariness as much as possible in a sound and orderly aesthetic.

Yet some glyphs still summoned frivolous decision-making that could not be boxed into neat principles like 2^n or phi. In such cases, I adhered to the personally preferred precepts of regularity, legibility, and coding-friendliness.