Hershey Fonts – The original vector fonts

Emulate the DEC PDP 12, you get a free PDP 8 thrown in.
Emulate the Burroughs B1700 /B1800 you get 100’s computers for free.
This has writable microcode 4K+, and wide (24 bits) main memory 64K b+ that could emulate almost any small computer, from the 1970’s.
Still reading the book, on that, Ben.

Yes, the PDP-6, 10, 11 and 12 are something, I’ve still to learn/become confident with, but are certainly worth the afford. And thankfully, you usually get one architecture for free while learning another. :slight_smile:

Something I found interesting about these listings, A.J. Hance used a slash ("/") to start a comment in his annotations, which is clearly DEC cargo cult, while comments on the LINC start with a square bracket ("["). It’s the earliest case of IT-related cargo cult, I personally know of.

BTW, the LINC is really interesting, as it hasn’t been designed by DEC, but by Lesley Clark, but was manufactured by DEC and relied on their modules. Many traces of the LINC can be found in the architecture of the PDP-8. (The memory architecture of the PDP-8, however, is totally different and can be traced back to the PDP-1B prototype that went to BBN *. Production PDP-1s, on the other hand, used an entirely different memory expansion scheme. In this respect the PDP-8 is quite a Franken-machine.)

*) Console of the PDP-1B production prototype, “BBN prototype” – See the FIELD control lights at the lower right. Looks familiar, doesn’t it?

[P.S., In order to not to hijack this thread, I will report any further news on this – if any – in a dedicated post of its own.]

There is a full matrix embedded in this document: https://gtoal.com/history.dcs.ed.ac.uk/archive/apps/edwin/edwin5-user-guide-1984.html
( image files are in Index of /vectrex/vector_fonts/gimms )

2 Likes

Whoah, even more glyphs in that GIMMS archive! I especially like that it has Westminster / Data 70-style “fauxCR” characters: nothing said “the future!” back then like text that looked liked OCR or MICR but couldn’t be read by computers. (Fun fact: Marshall McLuhan’s memorial marker is set in Data 70)

Years back, I made a book of all the Hershey Font Outlines I could find. It’s 120 pages long. That also reminded me that in an even earlier attempt of mine at parsing the Hershey fonts, I had a tiny demo in a now-legacy version of Python that used turtle graphics: turtle-hershey-example.py
Screen Shot 2022-07-28 at 10.48.03

4 Likes

On a related note, here’s a talk by Frank Grießhammer (currently a type designer at Adobe and the previous proprietor of The Adapter Museum) pertaining to his own research on the Hershey fonts. This talk was first presented at TypeCon2015.

2 Likes

Nice talk! There’s a clip of a video embedded within, which is this one, by General Dynamics, about the Charactron and the S-C 4020, with a 2 min historical preamble before the details. (There’s a hum on the soundtrack, but never mind.)

1 Like

Got some more printouts of the GIMMS fonts for you: https://gtoal.com/history.dcs.ed.ac.uk/archive/staging-area/JHB/ex%20inf/GIMMS%20font%202.pdf

scruss: have you considered fitting a spline to the hershey or gimms fonts rather than lines? I have some code that can force a spline to go through the given points rather than using them as control points: bezier.c (for a sharp corner repeat the control point again).
Since you show an example of a handwriting font in your post: a project I’ve always wanted to do but never had the time is create a font of digraphs - pick a point in a letter that doesn’t change when cursively connected to the following letter (ie approximately halfway through the path of the letter) and construct pairs consisting of the rhs half of one letter smoothly joined to the lhs half of the next letter. This will give really good joined-up writing compared to current algorithms. It’s basically the graphical equivalent of diphones (half of one phoneme and half of the next) which is the way that low-tech phonetic talkers avoid discontinuities between phonemes.

1 Like

I have tried spline-fitting the control points, with remarkably little success. You end up with something that doesn’t look like a Hershey font, but also doesn’t look anything close to a decent modern font. So using the original control points drawn with a fixed-width pen is a good-enough process.

It seems that the old Windows plotter fonts may be based on Hershey fonts. This is a rambling issue text from a popular font editor that has some interesting details on that matter: FontForge does not support vector (plotter) FNT/FON format · Issue #3841 · fontforge/fontforge

Personally, I’m utterly uninterested in cursive fonts that are output without nuance (= variable line thickness). Your digraph project might be a diverting one in retrocomputing, but it’s one that’s entirely solved in modern OpenType typography. Languages such as Arabic require different letter forms for the same character depending on where the character is in the word: initial (which for Arabic is on the right, since it’s written R-to-L), medial (middle: neither first nor last) or terminal (end of the word, on the left in Arabic). Opentype supports glyph substitution based on letter position, so you end up with characters that always join very neatly. ISTR there’s a very swoopy OpenType font shipped with MacOS that shows off this feature rather well.

There’s a really interesting chapter in Your Computer Is on Fire about the history of displaying Arabic on computers. I know there was an MSX model (Sakhr AX-170) that attempted to support Arabic back in the 8-bit days.

Thanks, I’m vaguely familiar with the issues. I implemented the Arabic keyboard and VDU for the BBC Micro. ( Index of /acorn/files/arabic2 )

1 Like

You mean like this?

It’s a problem that was entirely solved by Metafont years before Microsoft even knew what a font was. (Literally - we implemented outline fonts at Acorn while M$ were still using bitmaps.) You follow the path of the spline with a pen that is not just a simple point or circle, and you can specify key points on the path where the pen is turned to a particular angle, and interpolate the angles between using the same algorithm as you use for interpolating the Bezier path (i.e. treating nib angle as just one more coordinate in a multi-dimensional coordinate space.). Metafont usually uses an ellipse as its pen stamp for recreating metal type, but you can get effects much more like a traditional pen for creating handwriting by using a nib-like straight line segment. Unlike Truetype/Opentype fonts which fill outlines, Metafont works by scribing the centerline with an appropriate pen, which allows it much more scope in parameterising the font for different sizes. The little demo in Scratch above does something similar. ( https://scratch.mit.edu/projects/131761413/ )

I’m aware of Hobby’s Algorithm, as used in MetaFont. You’d have to completely redo the control points to make it useful for Hershey Script, and even then, it wouldn’t provide all the variation of a brush stroke.

Not quite: Windows 2.1 had at least the Script plotter font in 1988, which is based on Hershey’s outlines. They weren’t much use unless you had a vector output device, though

we implemented anti-aliased outline screen fonts at Acorn in '86 working from ideas in some early academic research papers. Neil Raine designed and wrote the Acorn font system. I worked with him to convert TeX’s bitmap fonts to outlines for use on Risc OS’s TeX previewer, and we also created Adobe Type I outlines for laser printers and phototypesetters. I think the Xerox Alto had outline fonts before us, but I think we were the first mass-produced system to have them. (I’m fairly sure the Apple Lisa used bitmap fonts on screen and only used outline fonts in the postscript printer itself.)

An interesting aside… in CNC engraving, you use a (effectively, when it is spinning) conical tool to follow the path of the letter and the thickness of the line is determined by the depth of the tool in a technique called “V-carving”. So again you can interpolate line thickness the same way you would interpolate the x and y coordinates of a Bezier using 1-D interpolation generalised to N dimensions! Basically you store your font info as a 3d font, not a 2d one.

1 Like

I am not aware of outline fonts on the Xerox Alto. Before the Alto Alan Kay’s group used Data General Nova minicomputers expanded with custom bitmap displays and they spent a lot of their time playing around with fonts. You can see some of that in the Dynabook paper and recently one of Alan’s talk from back then has been posted.

1 Like

I didn’t know that talk – thanks for the link!

While we’re on the subject, I just now discovered that Chuck Bigelow (old time TeXie who has written a lot on the subject, incl a couple of papers on the “Font Wars” of MS vs Adobe in 1989 which unfortunately I can’t find outside a paywall) has a blog: Bigelow & Holmes: Digital Type Archaeology

1 Like

You may be right - we had a Lisa at Acorn but we didn’t have an Alto so I just went by what I read. It’s possible the fonts were designed as outlines and the outlines used to create bitmaps, with the bitmaps being what were actually used to print on screen. I’m fairly sure that their outline software (or a later development of it) was used in rendering outline fonts in laser printers. Anyway the point was that Acorn had outline screen fonts out in a product before Apple or Microsoft were even talking about it in public. Apple never admits it, but they ripped off quite a few ideas from Acorn. They strung us along for ages as potential partners when they feigned an interest in switching to ARM chips for Macs but as some of us (by that I mean us techies, not the management) suspected, they were just using us as leverage to get better prices from Motorola at the time.

I was just pointing out that the in the early years they were super excited about having enough memory for bitmaps and focused on that.

But there was the group that eventually spun out as Adobe to sell Postscript. I don’t know the details of what hardware they used for the Interpress project (which I would expect included outline fonts).

I was aware of the font technology at Acorn and was as impressed by the anti-aliasing as by the outline aspects. I had experimented with it myself to try to get something usable with the low resolution monitors I had access to.

A little research would have shown me that JaM did run on an Alto before it evolved into Interpress.

I tend to think of Alto stuff as the 1970s while this shows people were still working on it in the early 1980s. I suppose not everyone had moved to D machines at that point.

1 Like