Futile Fonts

I make fonts sometimes. All of them have very permissive licensing.

  • mnicmp — you all wanted the DECwriter dot matrix font, but with the option of making the dots tiny stars? Of course you did …
  • ThreeFourTwoTwo — In the early 1980s, just before dot-matrix displays became a thing, companies produced more and more complex alphanumeric displays based on LED segments. One of the last of these was Litronix’s DL-3422, a huge DIP device holding four twenty two segment characters. These are now rare and stupidly expensive, so I made a font based on the matrix in the datasheet.
    sample
  • FifteenTwenty — A mono-spaced font family derived from character stroke coordinates from the Commodore 1520 plotter ROM. This has been documented here – http://e4aws.silverdr.com/hacks/6500_1/ – and here – https://github.com/Project-64/reloaded/tree/master/1520/rom. The original font encoding is extremely compact, packing a move/plot/end instruction with coordinates in 8 bits. (github archive: scruss/FifteenTwenty)
    FifteenTwenty-demo
  • AVHershey-OTF — a work-in-progress to convert the old Hershey fonts to usable OpenType fonts with as many of the symbols mapped to Unicode as possible. I’ve been working on this on and off for the last four years.
    pr-AVHersheyComplexMedium

If you really must, there’s my fairly ancient and relatively terrible code for creating a TrueType font from your handwriting with your scanner, your printer, and FontForge.

FifteenTwenty: Commodore 1520 plotter font

FifteenTwentyFor the impatient: download FifteenTwenty-master.zip FifteenTwenty-Regular-OTF.zip (or more options …)
Updated: now with all ASCII glyphs!

Update, September 2016: this font was officially squee‘d over by Josh “cortex” Millard on the Metafilter Podcast #120: Hard Out There For A Nerd. I had the great pleasure of meeting Josh at XOXO 2016, too.

The Commodore 1520 was a tiny pen plotter sold for the Commodore 64 home computer. It looked like this:

Commodore 1520 printer plotter (adjusted).jpg
Commodore 1520 printer plotter — by Oguenther (Dr.Guenther). – This file was derived from Cbm1520-2.jpg: , Public Domain, https://commons.wikimedia.org/w/index.php?curid=39145769

I never owned one, but it seems it was more of a curiosity than a useful product.

From a nerdy point of view, however, this device was rather clever in that it packed a whole plotter command language, including a usable font, into 2048 bytes of ROM. Nothing is that small any more.

Thanks to the epic efforts of Jim Brain and others, this ROM is now archived on Project 64 Reloaded. Looking at the code, I was struck by the elegance of the encoding: it packs a full X-Y plot instruction in one byte.

Based on my work with the Hershey font collection, I thought it would be fun to extract the coordinates and make a real OpenType font from these data. I’m sure others would sense the urgency in this task, too.

Since Commodore computers used a subset of ASCII, there’s a barely-usable set of characters in this first release. Notable missing characters include:

U+005C    \    REVERSE SOLIDUS
U+005E    ^    CIRCUMFLEX ACCENT
U+0060    `    GRAVE ACCENT
U+007B    {    LEFT CURLY BRACKET
U+007C    |    VERTICAL LINE
U+007D    }    RIGHT CURLY BRACKET
U+007E    ~    TILDE

I’ll get to those later, perhaps.

Huge thanks to all who helped get the data, and make the bits of software I used to make this outline font.

(Note: although the Project 64 Reloaded contains some extraction code to nominally produce an SVG font, it doesn’t work properly — and SVG fonts are pretty much dead anyway. I didn’t base any of my work on their Ruby code.)

Hershey Writes Again

Update: very preliminary OTF font files are available here: scruss/AVHershey-OTF. These don’t yet even encode all of ASCII, so aren’t yet generally useful.

Major breakthrough: yesterday (Feb 5th), I got the old Hershey fonts outlined properly, and today I have compiled them (sorta) into vector fonts. They’re not yet ready for release, as they have no metadata and are missing some key characters (even for ASCII).

I based the line thicknesses for the fonts as if I were drawing a 16 pt character, and using a plotter with a 0.3 mm (light), 0.7 mm (medium) and 1.0 mm (heavy) pen. You can see in the individual characters from the Hershey Complex font shown below, that the double hairline strokes merge into thicker single strokes. The same effect occurs on a real plotter, too:

S_AVHersheyComplexLightS_AVHersheyComplexMediumS_AVHersheyComplexHeavy

Here are some preliminary bitmap samples:

Complex Heavy
Complex Heavy
Complex Light
Complex Light
Complex Medium
Complex Medium
Simplex Heavy
Simplex Heavy
Simplex Light
Simplex Light
Simplex Medium
Simplex Medium