Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Smallest Typeface (devroye.org)
170 points by simantel on Dec 28, 2023 | hide | past | favorite | 110 comments


If you can spare extra pixels, Tom Thumb (3x5) [1] is more legible. The upper case M and N are somewhat hard to distinguish without context, but it's the only major flaw compared to this one.

Tom Thumb is also Public Domain (CC0).

[1] https://robey.lag.net/2010/01/23/tiny-monospace-font.html


FYI: all typefaces (e.g. bitmap fonts) are de facto public domain in the US. (unless they've been design patented)

https://en.wikipedia.org/wiki/Intellectual_property_protecti...


As computer programs are protected as literary works in the United States, a font file program can only be eligible for copyright protection in the US if the source code of the computer instructions within the file was written by a human; due to the prominence of modern user-friendly digital font editor programs, this method of creating a font file is now quite rare.

Very interesting. IANAL but presumably this means that anyone can trace a font automatically, generating a new one that looks exactly the same, but isn't subject to copyright.


You can, but you'll still end up paying legal fees to defend yourself if Adobe or Monotype comes after you if their rent team sees a public design from a company not on their list.

Maybe it won't matter if you're a hobbyist, but they both go after businesses over alleged unlicensed use.


I would presume Adobe and Monotype file design patents for the design and trademarks for the name of each font.


It's one of those weird exceptions that legal systems are full of.

(There might be good reasons for this particular loophole, just like there are good reasons for any other loophole, if you dig deep enough. But the total sum makes for an overly complicated system.)


I wouldn't really call it a loophole, it's explicitly excluded in the law. Given that copyright only applies to original works of a sufficient level of authorship, I think there's a valid perspective that typefaces are excluded.


Yes, not sure whether loophole is the right word. But it's a complication and exception.

> Given that copyright only applies to original works of a sufficient level of authorship, I think there's a valid perspective that typefaces are excluded.

Typefaces are typically a lot more sophisticated than when I'm taking a selfie or jot down some nonsense words and declare it a poem. Yet, the latter two are protected by copyright law.


Well yeah, sophistication isn't part of the criteria for copyright protection. I think the perspective applied here is along the lines that typefaces are more of a tool that authors use, rather than an product of authorship. Likewise, the design of a paintbrush wouldn't be eligible for copyright. Even a very sophisticated paintbrush. Both typefaces and paintbrushes are eligible for patents, though.


Speculating a bit: I think the historical perspective had a much narrower focus on what could be put under copyright. That's why (in the US at least) photographs and movies (and computer code?) wasn't originally included, and only got included over time via judicial decisions.

Typefaces just naturally fell outside of the original narrow focus, and just never got moved into the focus.


as i understand it, that carve-out is included in us copyright law to ensure that you can legally xerox a book with permission from its author (or whoever they transferred the copyright to), without also getting permission from the font designer. in this case it makes the system simpler to navigate rather than more complex


Maybe. But you can already xerox a book for private use without getting permission from the author anyway, can't you?


There's a lot of text that isn't covered under copyright at all. It would be a circus if widely published content that isn't eligible for copyright was illegal to photocopy because it was printed in a typeface that was.

For example, the IRS official fonts are Helvetica and Times New Roman. If in a hypothetical world, those were eligible for copyright, they'd still be within the duration of eligibility. Would it then be a copyright violation to print my tax form? I think that's silly, and I think the lawmakers who decided this thought the same.


> For example, the IRS official fonts are Helvetica and Times New Roman. If in a hypothetical world, those were eligible for copyright, they'd still be within the duration of eligibility. Would it then be a copyright violation to print my tax form? I think that's silly, and I think the lawmakers who decided this thought the same.

That's a weird hypothetical. Obviously, in that counterfactual world, the IRS would choose fonts that were either in the public domain or had permissive licenses.

Your hypothetical sounds like if speed limits on the highway were lowered, everyone would drive at the old speed and get a ticket, instead of adjusting their behaviour.


> Obviously, in that counterfactual world, the IRS would choose fonts that were either in the public domain or had permissive licenses.

there's nothing obvious about that at all; there are plenty of times when government agencies don't bend over backwards like that to ensure public access to their public-domain products. remember that what the fbi first investigated aaron swartz for was providing public access to pacer's court electronic records; pacer nominally stands for 'public access to court electronic records'

the westlaw page number fiasco is another example

you could even imagine a government rfq where different font foundries offer the irs the use of their fonts for below-market prices, thus gaining the right to charge people for printing their tax forms. and if you think that's an implausible level of corruption you probably haven't been following the ongoing saga of intuit's lobbying


Of course, one can always imagine suitably horrible levels of corruption / cronyism to make almost everything bad.


yeah, and fortunately congress did, and included safeguards against them


You're right, it's a backwards hypothetical. Maybe in that world, NIST would have created a font for all to use.

> the IRS would choose fonts that were either in the public domain or had permissive licenses.

Presuming a suitable option existed at the time, without requiring the government to make one themselves.

It would be silly if, by default, the purchaser of a printing press has no legal right to print anything with it. Maybe we would have lived in a world where typewriter manufacturers had all of the power that publishers had/have, but even broader.


Printing presses are older than (most) copyright laws.


Yes, and they still existed when those laws were written. It would have been a strange shift to make overnight for any new printing presses, no?


Well, before those laws you could presumably copy anything, and after that you had to get the author's permission.

(I say presumably, because most likely those laws replaced some earlier similar regulations.)


if it's fair use; that may or may not cover every case of 'xerox a book for private use' but certainly the publishers who are suing library genesis under us law don't think it does


I’m confused that this is the case yet so many font foundries are in the US. Does it mean only their foreign users need to pay for font licenses?


Not a lawyer, not legal advice. The actual font files (e.g. TTF and OTF) are protected by copyright, but the design itself is not. You can copy the design to the minute details, but you'll have to make your own font. This is a lot of work for hundreds or thousands of glyphs, plus kerning.


The format those files are delivered in generally do not simply contain a typeface. They contain code that draws the typeface, which is a computer program, and that is covered by copyright.


That's pretty cool! A couple years ago I designed a similar 3x5 typeface for Salesloft's icon set.

It was designed with a similar style—outer/inner radius, square terminals—as the icons. Personally, the centered descender on the Q is more clear with tiny typefaces.

https://solomon.io/salesloft-icon-fundamentals/#alphanum


Wonderful! To me, this is the smallest usable (vs. novelty) bitmapped font. [EDIT: Deleted “2-bit” silliness.]


What makes it 2-bit rather than 1-bit?


Doh! Thank you, comment updated.


> Please do not post this article to Hacker News.

oop!


Heads up thats http:// the https:// is not workinng for me.


Site is dead.


I recently put together some very small fonts (3x3, 3x4, 3x5, 3x6, 4x4, and 5x5) and tried to enumerate most of the possible glyphs as part of working on little projects on SSD1306 OLED screens: https://moonbench.xyz/projects/tiny-pixel-art-fonts/


My questions would be: is it possible to improve the visual results if we lift the restriction to only two levels of brightness of each pixel? I.e., would a use of proper grayscale allow creation of smaller fonts that are still readable, or allow more visually distinct and recognizable characters, than a binary font of the same size can have? Would designing a proportional typeface, as opposed to a monospaced one, help with minimizing the average advance width of the glyphs (averaged according to their frequencies in English text)?

Motivation: it is possible to reduce a book page, with ~80 characters per line, without any font hinting, without using any special fonts, using just common image manipulation tools, to just 240 pixels wide, and still get mostly readable words (but not individual letters). This is 3 horizontal pixels per glyph on average, including the gap - something that the demonstrated binary bitmap fonts don't achieve. Example: https://imgur.com/a/AlYrnSS


wow, those are really readable!

slightly tangential, but thank you! for the first time ever, the word "font" has been the appropriate word choice in the title, and we got a "typeface" claim.

When I read it, I immediately thought a braille typeface has a good claim on being the smallest. Would there be anything "enjoyable" to a blind person for a braille typeface to be available in different fonts? Italics? little tear drops, that sort of thing?


World's smallest typeface for 36 alphanumeric characters, to be exact. :-) There are some small typefaces for other scripts; my go-to example is the Misaki font [1] that supports all JIS X 0208 character within 8x8 pixels (spacing included, and most glyphs are within 7x7 bounds). It is incredibly hard to recognize some individual characters at this size, but the overall text is surprisingly readable.

[1] https://littlelimit.net/misaki.htm


A while ago I created an even smaller typeface (2x3) but that is barely readable without memorising certain glyphs:

https://zserge.com/posts/tiny-font/


The 2x3 case is very interesting though, because it's the basic size of a Braille cell. (2x4 Braille also exists, but it does not help readability all that much here.) So you could read this font on a Braille device without knowing the actual Braille script.

Louis Braille actually invented his own 10px bitmap font for mixed visual-tactile use: https://en.wikipedia.org/wiki/Decapoint It fell out of use after typewriters were introduced.


If anything it shows a lower bound; 2x3 does not provide legible letters.


S and 5 are identical, as are Z and 2, and O and 0 (edit: and Q and 9). No punctuation either; semicolon vs. colon vs. exclamation mark needs creativity. There's no hope for $ or *.


Obviously a 3x3 typeface explicitly designed to be as small as possible comes with some trade-offs...

And this is more of an art project than anything else.


I threw together a figlet font for this typeface, with a preview, here: https://wonger.dev/posts/monospace-dump#creations

It won't render nice here because of line spacing and unicode but it should work fine in the terminal.

See also another 3x3 font and someone else's figlet port of that one:

https://fakoo.de/en/fakoo/fakoo-ttf.html

https://brontosaurusrex.github.io/2021/05/18/3x3-typeface/


Not totally sure what I'd use this for. Silkscreen is bigger, but is a lot more legible at small sizes.

https://fonts.google.com/specimen/Silkscreen


I used a 3 pixel wide font extensively back on the '80s to write debug messages to Mac screens from code that could not make use of the normal Mac ROM and OS display functions.

At first this was when writing SCSI disk drivers for a third party Mac disk maker. Later it was when writing network drivers for a company making a SCSI ethernet interface. Then it was when working on firmware for some NuBUS cards for Mac II.

I didn't want to write a full BITBLT, but I didn't want to make width + spacing be 8 pixels because even though that would be very easy it would also mean I could only have 64 characters to a line on the Mac or Mac Plus (512 x 342 display).

With characters 3 pixels wide and 1 space between them you just need a simple BITBLT that only has to handle two cases.

My font was 3x5. Unlike the other 3x5 fonts people have mentioned I didn't try to include lower case. Here's a sample, scaled up by factor of 4:

https://imgur.com/a/I97Zi6l

The reason that there is a prominent visible symbol for newline is because when the debug print got to the bottom of the screen it would wrap back to the top. The prominent newline let you tell which characters on the line came from the latest print on that line.


The font in the submission isn't meant to be readable in small physical sizes. It's just meant to use as few pixels as possible.

A font with a higher resolution, ie more pixels or finer coordinates for a vector based one, has a chance to be more readable at smaller physical sizes.

> Not totally sure what I'd use this for.

It's mostly just for fun and artistic expression. The linked article mentions the font being used for some album covers.


More about Silkscreen, including that it was created on Windows NT 4.0, which dates it:

https://kottke.org/plus/type/silkscreen/


I used a font similar to this one when watching log files on an xterm back in the '90s and screen space was valuable. Its not "I want to read the lines as they go past" but rather "I want to get a feel for the rate of the lines as they go past and see the 'shape' of the lines". For an access log, regular use looks very different than someone trying to probe the site and that can be determined by the shape of the line - not the text itself.

For that, if you wanted to see what was going on, a quick copy and paste of the text into a regular editor will show you the characters at a reasonable size.


this is actually 4×4 if you're counting pixels needed on the output device instead of rom space needed; another, more comprehensive font of the same size is https://simplifier.neocities.org/4x4

the same problem happens with the public-domain 'tom thumb' font pushfoo linked in https://news.ycombinator.com/item?id=38800409. it is actually 4×6 (24 output pixels) but claims to be 3×5

it can be accessed despite tls problems at http://web.archive.org/web/20230828193815/https://robey.lag.... but says 'Please do not post this article to Hacker News.'

my own 4×6 font is demonstrated at http://canonical.org/~kragen/sw/dofonts-1k.html, where it fits into a 1024-byte web page along with all the logic needed to render ascii text with it; but the proportional font i used in http://canonical.org/~kragen/bible-columns (rendered with http://canonical.org/~kragen/sw/netbook-misc-devel/propfontr...) is at http://canonical.org/~kragen/sw/netbook-misc-devel/6-pixel-1... and is slightly smaller; it averages 21.5 pixels per character. this is more than anders de flon's so-called 3×3, which is 16 pixels per character, but it supports the full character set, if you think ascii is the full character set anyway. so does simplifier's 4×4 font

i think you could do better by using grayscale for antialiasing, and as rafabulsing pointed out, matt sarnoff's millitext http://www.msarnoff.org/millitext/ uses subpixel antialiasing to get very readable text at 1⅔×5 pixels


Why is it "actually 4x4"? Are you counting the space between the letters?

I think 3x3 is just as reasonable to describe this, because every character is 3x3 pixels, and this spacing is not really a font property. e.g. the mentioned album cover is an example (which would be "3.1x3.1"): https://en.wikipedia.org/wiki/Sheath_(album)


because, if you want to use this font to represent 1000 characters of text, you need 16000 pixels, not 9000

on the album cover it looks like the characters are about 1000×1000 pixels each, which is why it's possible to put an extra small space between them


The Atari ST came with a 6x6 font, including spacing: https://fontstruct.com/fontstructions/show/876150/atari_st_6 - 5x5 means no compromises required for upper case letters, which are all readable, and punctuation is intelligible. The liberties taken with lower case are probably acceptable.

(Been years since I saw this font in situ so I'm not sure what it'd look like if you have two adjacent rows of text! Probably mostly OK, but I bet some letters would meet. The ST's OS used this font for icon labels, so there was always a gap.)


4x4 ASCII font was previously discussed here:

https://news.ycombinator.com/item?id=33127419


hey, thanks! i forgot about this thread


quoting myself from an earlier thread:

just to clarify, the 4×6 font is (at least mostly, maybe entirely, I don't remember) the work of Janne V. Kujala in 4x6.bdf, as distributed by Markus Kuhn and now included in XFree86 (and presumably X.org, unless they've dropped BDFs entirely). The XLFD is -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso10646-1, so you can try it by running

    xterm -fn -misc-fixed-medium-r-normal--6-60-75-75-c-40-iso10646-1
My proportional n×6 and 3×n fonts are derived from it.

here i'm talking about my 4×6 font, not tom thumb


>this is actually 4×4 if you're counting pixels needed on the output device instead of rom space needed

What do you mean by this? Each character requires only a 3x3 grid of pixels to draw.


in the text modes of old computers, there isn't anything to separate one character from those next to it, so that space has to be in the character itself.


not just text modes or old computers but literally anything made of pixels


The font can just encode how many pixels for kerning that it wants. There is no reason for it to be part of the character itself


it was pretty common for font roms to have implicit spacing pixels in between characters in order to save on rom space


I took a slightly different approach, while also using a 3×3 grid. It's explained here: https://minimalwim.com

It's more of a typographic concept than being fit for actual use, but it was interesting to explore creating a font within a tight set of constraints.


Hopefully the opt-out button and disclaimer designers won't discover this.


They're already in talks with Ant Man and Dr. Pym about a Quantum Realm font.


Anyone have some text set in this font so we can all see how easy it is to read?

On my MacBook Air 13" seems like you could fit 640*400 = 256000 characters at once. Which ought to fit, for example, the complete text of Alice's Adventures in Wonderland.


For anyone thinking about using this: At some point I tried to do a logo for myself on a 3x3 grid (so pretty much the same as this) and while the text was perfectly readable to me a few people I tested it with couldn't read it.


I blame Adobe, Microsoft and Apple for the common misuse of font instead of typeface.


The distiction was rather made obsolete due to the digital typography instead.


Didn't everyone do this exact font in the 80s when we did not have enough room and needed something for eg debug output on our computers ?


3×3 pixels is almost certainly the smallest legible font.

You need at least 6 pixels to encode 27 letters + 10 digits because:

  2⁵ < 37
  2⁶ > 37
But 2×3 pixels seems unlikely to be legible. From 2×3 pixels, you can increment the height to 2×4 pixels or the width to 3×3 pixels. The latter feels more feasible.


> From 2×3 pixels, you can increment the height to 2×4 pixels or the width to 3×3 pixels.

These are not the only possibilities. It might be possible to lay two adjacent letters into a block of 2x5 or 5x3 pixels as well.


Does anyone remember that one weird block script that people post to HN sometimes? The only thing I remember is that it's the kind of thing that would take a good while to learn to read—maybe the blocks for the letters in a word could be recognised as a single shape when juxtaposed?


The only one I remember is Flea's Knees, which uses specific colors for each pixel and depends on the RGB layout of LCD subpixels to effectively triple the horizontal resolution. The letters are 4 pixels wide and relatively very tall.



Yes! Thank you.


reminds me of the time I'd have the smallest font possible running in xwindows with a server log scrolling in it. I was so used to the pattern of the logs, I'd only need to see a change in said pattern to know something was wrong.

this would probably have beaten that smallest font back then


A similar concept for print: the Miniscule family, supposedly legible down to 2pt. https://typographica.org/typeface-reviews/minuscule/


Some observations:

- 5 and S are indistinguishable

- 0 and O are indistinguishable

- 2 and Z are indistinguishable

- no lowercase

While context will generally suffice in making the indistinguishable glyphs understood correctly, there are some use cases where we mix letters and numbers in the same string and those would be ambiguous.


With subpixel rendering you could get down to 1x3 (or at least 2x3). ;)



Oh wow, this is probably the most creative thing I have seen for a while. Thanks for sharing.


This is nuts wtf


That's 9 bits, or 512 total combinations in that grid; thus, theoretically one should be able to fit all of ASCII, but many of the characters would be very difficult to distinguish or recognise.

(Incidentally, a common 7-segment display can also fit all of ASCII, and if you include a decimal point too, can represent a single byte completely: https://dkeenan.com/7-segment%20ASCII%20characters.txt )


Damn, I'm pretty sure I did something similar on a piece of paper when I was a kid. I could have been the "creator of the world's smallest typeface"!


Not sure I'd be able to read this without context off the bat (especially the E, G, M, and W), but it's an interesting project!


The number 8 is very ambiguous as well.


In an ideal world where people are fluent in binary, we would only need 5 pixels. Just imagine how efficient the world could be…


The binary of each pixel on a typical display contains 24 bits which is already plenty to encode the alphabet.


But not CJK characters...


2^24 is equal to 16,777,216. There are only about 100,000 CJK characters in Unicode, for example.


ln(50000+40000+25000)/ln(2) < 17

CJK comfortably fits


Smallest monospace typeface. You could make "I" and "1" a single line and make "J"/"L" and "P"/"Q" only 2 pixels wide.


I think this is a more elaborate approach.

https://simplifier.neocities.org/4x4


This is far superior and still pretty small.

Still, the 3x3 ends up working due to context a lot. I wonder if there is a 3x4 or 4x3.


they are literally the exact same size, even many of the letters are the same


The first two Wing Commander games were great at this. You could read everything and it was still tiny.


Try mouse, the smallest pixel font that is surprisingly readable at really small font sizes.


Any samples with this font? I'd love to see it in action even if it's impossible to read.


Check out the album cover of Sheath by LFO (as mentioned on the page). Great IDM album.



Why isn’t the M missing the top center pixel? Seems like it would make it way easier to read


itd look like an N.


an H actually


Pretty great. I only saw s and 5, as well as q and 9 were the same symbols.


O and 0. Z and 2.


Thanks, even though I tried to not look foolish I missed those two for some reason


At some point in my 30s I decided to stop trying to not look foolish.

I highly recommended it. :)


0 and O is same.


(2005)


Wait til that they figure out that braille is only 3x2...


Yes, but braille uses the equivalent of BCD, doesn't it?

https://en.wikipedia.org/wiki/Binary-coded_decimal


i like it!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: