from Hacker News

Nanofont3x4: Smallest readable 3x4 font with lowercase (2015)

by lsferreira42 on 3/17/24, 4:39 PM with 129 comments

  • by sxp on 3/17/24, 6:21 PM

    If you're interested in other tiny fonts:

    - PICO-8's 3x5 font with support for programming characters: https://www.lexaloffle.com/pico-8.php?page=faq

    - Ken Perlin has an RGB stripe subpixel font. Unfortunately, the original page uses Java so I can't access it, but https://www.fastcompany.com/1662778/the-worlds-smallest-legi... has more info.

    - Dotsies if you're willing to try very strange encodings: https://dotsies.org/

    - https://news.ycombinator.com/item?id=33127419 has more examples.

  • by hinkley on 3/17/24, 7:34 PM

    I worked on project planning software years ago. We got caught in a loop arguing about fonts and data density.

    We were getting lots of clipping of text and I asserted that even a couple more characters on the screen would improve people’s abilities to guess what the entire phrase was. You can derail momentum in project management meetings by having people ask what something says repeatedly. Seen it happen, it’s dumb and we can fix it.

    So it came down to a shootout. We put five fonts on a projector screen, at multiple font sizes, stood everyone against the back wall of the fairly average sized meeting room (maybe 70th percentile), and had them vote.

    Verdana 13pt won for legibility, even over some of the 14 pt fonts. It also got more characters per inch, so win win. Something in the range of 5-10%.

    Then corporate made us change it back because their flagship app used a different font and they wanted them to match. Which made no goddamned sense because they weren’t even used together.

  • by gitgud on 3/17/24, 6:28 PM

    Uppercase is impressive for 3x4 pixels. Lowercase is pretty much unreadable…
  • by berkes on 3/18/24, 9:33 AM

    "readable". I'm 45, been looking at screens for 30+ years almost daily now. There's no way I can read that with or without my glasses.

    It's truly impressive feat to get it this small. I used to do texts like this, often manually, pixel by pixel. For websites and games, it was all the rage back in late nineties early 2000s.

    But only now I start to truly understand,by experiencing first-hand, why accessibility matters. This font is awesome, but terrible for any kind of accessibility.

  • by archargelod on 3/18/24, 3:05 AM

    I had a project a couple months ago that required very tiny font: I did want to make a mod for the Binding of Isaac game on Nintendo Switch. The idea is to display some additional info about items that you encounter randomly in the dungeon. You can find final version in my codeberg repo [0].

    While pc version has extensive mod support, console ports lack necessary Lua api. So the only way I came up with to implement this - is to draw additional info on the sprite textures. And sprites are tiny - 32x32 pixels. Ok, I can't put a lot of text in such small space, but maybe I can fit item name and then add some simple 8x8 icons for effects.

    I started searching for a good font I can use, but ultimately most of the 3x4 and 3x5 fonts I tried had one issue - they're almost unreadable if the background color is not absolute negative of font color. I could've put an opaque black background behind text, but that would hide more art than necessary and even look somewhat hideous.

    While trying one font after other I found gremlin-3x6[1], it's only 2 pixels higher, but 5-10x easier to read. And it's under public domain license.

    Ok I mostly don't care about height, but width is still an issue - almost all item names exceed 32 pixels and have to wrap around on second line and some need a third line. That I absolutely do not want.

    I had an idea - If I can't shrink letters to less than 3 pixels, I can remove space between them. Wouldn't it make harder to read? Not unless all letters have different colors! That also solves the problem when background matches the color of font!

    [0] - https://codeberg.org/Archargelod/isaac-extended-icons-mod [1] - https://fontstruct.com/fontstructions/show/1488093/gremlin-3...

  • by 3rd3 on 3/17/24, 7:25 PM

    A nano font but huge images. The large image is a 4873 KB bitmap which can be losslessly compressed to 47 KB using PNG.
  • by userbinator on 3/17/24, 7:59 PM

    I think 5x7 is the smallest size where characters are still fully recognisable, which is why it's used on all common character LCDs. Beyond that, with things like this font, reading becomes more of a "recognise vaguely evocative custom glyphs" exercise.
  • by samatman on 3/17/24, 7:30 PM

    I propose that this sort of font be called "decipherable" rather than "readable".

    I could learn to read this. I can kinda-sorta make out the example, because I already know the Declaration of Independence. Is it readable the way, say, this text is? Or the PICO-8 font? No.

  • by baking on 3/17/24, 5:42 PM

    This brings back some memories, but my eyesight is worse than it was 50 years ago, so no.
  • by neverokay on 3/17/24, 7:07 PM

    Don’t let the lawyers find this font.
  • by johnklos on 3/17/24, 5:56 PM

    I can finally have 85 characters by 48 characters on my Sinclair ZX81, and it'd be printable, too, on my T/S 2040 printer.

    (starts thinking in Z80...)

  • by yosito on 3/18/24, 6:48 AM

    Maybe it's due to image compression artifacts, but I find the first example of normal case output impossible to read on my phone. Even if I zoom in. And I have exceptionally good eyesight. I'll have to try this directly on my desktop, where I imagine the clarity would be much better.
  • by dsp_person on 3/18/24, 12:04 AM

    Has anyone ever made the smallest (as in bytes) readable font? How small can the code be to generate a readable font? It could create an SVG, bitmap, or triangles in a shader.
  • by rhelz on 3/18/24, 9:28 PM

    Very nice. I can even read the Declaration of Independence, as archaic and unfamiliar as the text is.

    If you are having trouble with it, try this: "Use the force!!" By which I mean, forget that its written in a very small font, don't go looking for the individual pixels, but just relax and read like any other text. Don't look at the letters, look at the words. Your brain fill in the details for you.

  • by Uptrenda on 3/19/24, 11:51 AM

    This is fascinating. It underscores how information-dense displays can be. For example: think of tiny screens like watches, test strips, or sensor read outs. All of them have tiny screen real estate. Mobile computing, in a practical sense, is also limited by screen size. It's why text-processing heavy work like programming and writing isn't often done on smaller devices. But maybe there would be more room for such use-cases where fonts like this were used. As they would be able to show more text in the same way that people were used to with regular monitors.

    Font-rendering limitations also play out in UIs, too. VS Code has a feature where the side-bar can become something like a map of the code document. It doesn't actually show the code though because there isn't the room. But could a font like this show more of the code? Letting you quickly navigate a large module. I'm sure there are more use-cases for this because displaying text is so fundamental to computing.

  • by globular-toast on 3/18/24, 10:47 AM

    Readability is an interesting claim. You obviously can't read base36 encoded data with this (like a sha1 hash) or even a randomly generated password because the glyphs don't map uniquely to characters. So the claim is not so much about ASCII but about English. It talks about some individual words being difficult but I suspect even those would be fine with sufficient context, like being in a paragraph. With even more context it's surprising how bad writing can be before it truly breaks down, for example your doctor's handwriting is OK as long as you know they're writing about medicine.

    Makes me wonder whether some languages are better at this than others. French, for example, contains some redundancy in its grammar as you have to write pronouns and write the conjugated verb. Spanish gets rid of the redundant pronoun. So is French trading longer sentences for better readability? I wonder what natural language can have the shittiest font?

  • by btbuildem on 3/18/24, 3:50 AM

    You'd figure this envelope had been pushed to its limit in the late 80's/early 90's

    Nice work! The uppercase is surprisingly readable -- some glyphs don't look like you'd first think they should, but that makes them stand out from the ones they'd otherwise be easily confused with.

  • by dsp_person on 3/17/24, 7:41 PM

    > In case you are interested, there are a total of 65,536 4x4 monochrome glyphs. Here is a uber texture atlas that shows all of them with our glyphs highlighted (red) where they are in the table.

    So did this font exist all along and was simply discovered?

    And same goes for everything we create, but just in higher dimensions??

  • by ddingus on 3/18/24, 2:48 AM

    The upper case is amazing! I basically have zero problems reading it. The text talks about glyph ambiguity. Selecting those well appears to amplify readability.

    Neat!

    The lower case one takes a lot more adjustment. I did end up reading it fairly well, but never with the ease of the uppercase font.

  • by nickdothutton on 3/17/24, 5:47 PM

    Like some in-game text/graphic from my 8-bit days. I was a big Tau Ceti/Academy player.
  • by JetSetIlly on 3/18/24, 4:32 PM

    Interesting. With a bit of work, this would have genuine use for something like a text display on an Atari2600, where the dimensions are significantly limited.

    I've used glyphs as small as 4x5 but I've struggled to come up with anything smaller for most characters.

    Here's an example of a full text adventure for the 2600 if anyone's interested https://github.com/JetSetIlly/Adventureland-2600

    Better or worse with an even smaller font? I'm not sure.

  • by makmanalp on 3/18/24, 4:01 AM

    Interestingly coincidental timing with Jonathan Hoefler posting about a trick to compress glyph size by omitting a block and let the eye complete it ... OK, it's taller but I think it looks quite pretty: https://www.instagram.com/p/C4n2BfFrKwH/?img_index=1
  • by msarchet on 3/17/24, 5:25 PM

    Just this morning I have been working on a font rasterizer for an eink screen project. So it’s really interesting to see one this small.
  • by antirez on 3/18/24, 9:08 AM

    There is another one here, with a tool to easily modify the font.

    https://github.com/antirez/freakwan/tree/main/font-4x6

  • by petabyt on 3/20/24, 8:33 AM

    A whole ago I made my own 3x3 font: https://github.com/petabyt/font3x3
  • by pavl on 3/17/24, 7:25 PM

    Is this downloadable somewhere as TTF?
  • by snowpid on 3/17/24, 6:35 PM

    Does anyone know the size of the font from the first Pokemon games? They had similar constraints.
  • by simonkagedal on 3/18/24, 7:02 PM

    The claim ”smallest readable 3x4 font” is a bit confusing. Are there bigger 3x4 fonts?
  • by MithrilTuxedo on 3/18/24, 2:59 AM

    Gonna use this for Dwarf Fortress.
  • by zelphirkalt on 3/18/24, 9:35 AM

    The screenshots could not have been enlarged a bit? And they are bmp??

    I find one of the things a repository of a font should do is to put pictures of how this thing looks quite far up in the readme, so that I can quickly see, whether that is something for me or not.

  • by croemer on 3/17/24, 11:29 PM

    Why not use ligatures to help resolve some of the cox ambiguities?
  • by Anotheroneagain on 3/17/24, 6:47 PM

    Minuscule gets down to 2; 3 and above don't even look that weird. Maybe that pixel fonts are not the optimal choice.
  • by ramijames on 3/17/24, 10:32 PM

    "Readable."
  • by junon on 3/17/24, 7:42 PM

    Unlike the flagrant dismissal in other comments I actually find use for projects like these. On some electronics that I write firmware for the OLED screen space real estate is incredibly limited, and when they need to output logs or debug info for developers it can be a pain to fit everything in a way that is usable, especially when there is no input to allow for scrolling or whatever.
  • by dougmwne on 3/17/24, 7:44 PM

    Whe I was in high school I had plenty of dull classes to sit through. I’m old enough that there were no phones and laptops to keep entertained.

    My parents had a laser printer for their business. I realized that it had a very high DPI and also very little ink bleed. I started printing whole books I downloaded at the smallest font size that I could managed to still read, just a few point. I removed line breaks and printed out whole books on a page or two. I found it incredible how much tiny text I could fit on a page.

    In class I would read with a little half folded sheet of paper hidden in a notebook. Sci-fi, Russian lit, biographies, classics. I was never caught, but it’s bizarre to think back that I was reading Crime and Punishment while the rest of the class was learning fake American history propaganda.

  • by FergusArgyll on 3/17/24, 5:36 PM

    Readable is a very strong word
  • by wkat4242 on 3/17/24, 6:44 PM

    I see I have a slightly different interpretation of the word 'readable' lol.
  • by mgaunard on 3/17/24, 7:17 PM

    Not that readable.
  • by hulitu on 3/17/24, 7:05 PM

    > Nanofont3x4: Smallest readable 3x4 font with lowercase

    Readable by who ?

  • by hammock on 3/17/24, 10:09 PM

    >Smallest readable 3x4 font with lowercase*

    *Roman alphabet