FontClustr – Automated Hierarchichal Clustering of Fonts Based On Their Appearance

Something has always bothered me about fonts: I have to pick one alphabetically.

I have over 1200 fonts on my computer. Why am I forced to pick the perfect one by going through an alphabetical list? Not even the major font families (serif, sans-serif, condensed, cursive, fantasy, etc) are grouped together.

No longer. I’ve written a program in python that can hierarchically cluster fonts based on their appearance. For your enjoyment, I’ve picked 35 of the best clusters (this is actually more than 80% of the total output) to illustrate how powerful this technique is. Hit the jump for those.

If you are a software company that makes a product with a font selection dialog (like Word, Photoshop, Gimp, Inkscape, Illustrator, Powerpoint, etc), PLEASE START DOING THIS. I WILL BE HAPPY TO HELP YOU.

Let me stress this again, the screenshots you’re seeing here were from an automated font comparison and clustering program.

Typewriter fonts

Some thin-lined fonts

This is a hierarchical cluster, so notice that the top 2 fonts are similar to each other, the bottom 2 are similar to each other, and both of those clusters are similar to each other.

By moving up or down the tree, you include more or fewer fonts in the cluster… but each cluster hangs together visually.

Even stylized fonts can be considered similar.

Fonts in the same family are regularly grouped together, even though I’m not looking at the font name to help sort them.

Some thicker, more rounded fonts.

More styled fonts.

Some varied styles that are actually quite similarly shaped.

Can you imagine how much time it would take you to find the perfect condensed-but-stylish font if you had to search for these 1 by 1?

More stylish groupings.

Some not-quite-roman fonts.

I cut off the top half (maybe more) of this image… there were literally that many sans-serif fonts that were nearly identical. If these were separated by their spelling, how would you know that they were all the same?

Some more odd-shaped fonts. Even the clusters that look like junk drawers still have some common threads.

Another junk drawer.

These fonts all look like Arial Black, all grouped together nicely… because they’re the same typeface. These are asian-language fonts, so I guess the variations are in the logograms and not the alphabet.

All the participants fonts together! Automatically! Results like this make me really happy!

Whatever this style is called…

…or this style…

…or this style… they are all nicely grouped!

Some not-quite-serif fonts.

Futuristic fonts.

Bubbly fonts!

Stencily fonts!

More fonts that are difficult to describe, clustered nicely!

Thinner futuristic fonts.

Fonts with big lowercase letters.

I like how it noticed that plasticbag and welfarebrat are really similar even though one is inside blocks!

Thick stylized fonts.

Thin-lined fonts.

Not-quite-thin-lined fonts.

I like how it grouped 2 dotted-line fonts even though one is a single line and the other is a double line.

A huge list of serif fonts, grouped automatically!

One more junk drawer.

The code for this is based on open source libraries. I’ll release it after I clean it up and possibly improve it.