Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Creep – a pretty sweet 4px wide pixel font (github.com/romeovs)
529 points by pabs3 on July 9, 2021 | hide | past | favorite | 106 comments


This is great! Unfortunately, it hasn't been updated since 2016 and isn't suitable for applications outside Terminal.app. But apparently someone else took up the mantle and rebuilt it to solve those issues and published it as creep2:

https://github.com/raymond-w-ko/creep2

> I love romeovs's creep font, but I think you could only use it well in Apple's Terminal.app because it has negative line and character width spacing, which the font requires to be spaced correctly. The root cause of this appears to be because some glyphs are bigger than the 5px by 11px bounding box, causing most terminals to think a much bigger box is necessary for the general ASCII glyphs.

> In order to fix this issue, I manually hand painted all the glyphs from the 'creep' font in fontforge.

Awesome! I just wish creep2 added some of those sweet demo photos that are in the creep README.


Thanks for the link! My tiny little display attached to RPi is very much looking forward to trying it out.


Awesome use case, thanks for the idea!


Does a font really need regular updates?

But it's probably possible to convert Mac fonts somehow


2038: Fonts have subscription models. Times New Roman is a Windows exclusive and costs $12/month. There exists an open-source alternative to subscription fonts but it hasn't been updated in 2 years because the guy maintaining the repository is in jail for pirating Fast and Furious 18.


> some glyphs are bigger than the 5px by 11px bounding box

Out of curiosity, which ones? Did anyone find them?


Looks like the $ sign is 5px wide if you look at the image.


True! I see it now. Looks like # and + too.


Hi everyone, quite unexpected to see this on the frontpage of Hacker News!

I made this so many years ago but I'm not using it myself anymore and I haven't been maintaining it.

I was (and am) also very inexperienced making fonts so the result was "good enough for my own limited use case" but too broken for general use, so it's good to see other people taking it and running with it, fixing my oversights and improving things.

Questions or suggestions are more than welcome.


> good to see other people taking it and running with it, fixing my oversights and improving things

The readme looks so polished that I was surprised about this. Perhaps add a note to this effect at the top, maybe point to one of the forks?


This is fun. As I’m working on my little hobby project that is custom air quality meters I am using 128x64 screens that are about an inch on the diagonal. I ended up having to create a custom pixel font that would work for both 6pt and 8pt height plus some icons in each. It’s been a really fun experience and rewarding too.


This project sounds cool, I’d love to see a blog post about it and some pictures!


I’ll post it to HN when I put it all together.


Nice!

Nitpick though -- by standard convention for terminal fonts shouldn't it be called a 5px wide font? (4px for the letterform, 1px in between.) Since they're sized according to the pixels available for each character.

I was really wondering how on earth letters would be clear with just 3px left for the letterform... :S


The $ is 5 pixel points, so I think this is a case of "px" being more of a term of art rather than actually being 4 pixels wide per letter. I think. Would appreciate clarification.


Honestly, this sucks and it renders the font useless for a lot of purposes. I wanted to use it in an embedded system, but that seems out of the question now.


$ and & using the normally-blank column doesn't render the font "useless". If you want that column to always be blank, then just trim it.


It's just not mathematically possible to draw a proper "$" 4 pixels wide, since you need at least 2 pixels one each side of the vertical line to draw the enclosed areas.


Given the M and W I don't think "mathematically possible" is the criteria here.


Here's some options that fit in 4 pixels: https://i.imgur.com/LtQ6eb7.png

Some of these can look like $ if they're really tiny, but generally you'll need a while to figure out what's they're supposed to mean if you don't know what you're looking for.


or:

   #
  ###
  #
  ###
    #
  ###
   #


This. It’s what the C64 (and I guess many/most early home computers) did. No need to draw the whole vertical line if it doesn’t reasonably fit.


…and now I realized that even the ubiquitous IBM VGA 8x16 font does this! Single-pixel-wide counters would just look really bad, and even more bad on CRT monitors.


Top right is the winner for me


Nice. Third from the left on top is great -- pretty unambiguous, and consistent with the w's and m's.


> It's just not mathematically possible to draw a proper "$" 4 pixels wide

> Here's some options that fit in 4 pixels

So which is it?


I assume that "proper $" means the middle line is fully drawn, forming the two closed spaces at the upper left and lower right.


Can be pulled off with enough context https://i.imgur.com/pXA69Xw.png


> I love you all, so please use this font as much as you like for free. However, I would like to make sure you provide others the same liberty in creep's new incarnations. Therefore creep is licensed under the MIT License.

Happy it’s permissively licensed under MIT, but I wonder if the author intended to use a sticky license instead.


What’s a sticky licence?


A sticky license includes a clause stipulating that while you can modify the code and share your modifications, any modifications must also be shared under that same license. This is usually referred to as a “share alike” clause. GPL is an example of a license like this.


Isn’t that called ‘copyleft’? I’m not sure ‘sticky’ is a common term.


Certainly not a term I've heard used to refer to licenses but it sounds less political than copyleft and I found it immediately understandable.


There are tiny Japanese fonts that support all Chinese characters. This means they have 7000+ characters with 8x8 (or even 6x8) grid, most of which are pretty legible IMO. It's amazing.

Misaki (8x8 pixels): https://littlelimit.net/misaki.htm

k6x8 (6x8 pixels): https://littlelimit.net/k6x8.htm


This is really cool! I always wondered if the japanese alphabet could be rendered like this. I found the hiragana and katakana characters to be easy to read but the kanji was really hard. I'm a beginner though...


Ootl, why does the character set have "whisky" in the middle haha.


Nope, that are just some samples that show the usage of the fonts.


I recently posted this in the hoard-of-bitmaps thread:

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

It should include the 3x5 pixel font from Mike Koss's "The Terminal" on the Apple ][.

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

>DonHopkins on Oct 4, 2018 | parent | favorite | on: Sans Forgetica, a font designed to help you rememb...

Who can possibly forget the font that Mike Koss's "The Terminal" Apple ][ terminal emulator used to get 32 lines of 70 characters each in HIRES graphics mode in 1981? It's the most difficult to read font I've ever used regularly! (Don't try using it on a color TV, though.)

https://web.archive.org/web/20120206091422/http://mckoss.com...

>Tiny (3x5) Font

>Created for the Apple II program The Terminal. Copyright (c) 1981 Michael C. Koss

>In 1981 I wrote a terminal emulator for the Apple II. At the time, the Apple II could only display upper case characters. I used the hi-res display (280 x 192 pixels!) to display my own character set. In order to come close to showing an 80-column display, I created a truly tiny font, displaying the full ASCII character set (upper and lower case).

>I created a font within a 3x5 pixel dimension, allowing the display of 32 lines of 70 characters each. The font definitely takes some training and getting used to (especially recognition of characters that use descenders); but I found it to be quite readable after a while.


If anyone's looking for a bitmap/pixel font that covers many symbols, including all necessary powerline symbols and a large portion of the various nerd font symbols, I can't recommend Cozette[0] enough. Recently the author has began updating and releasing new versions after a hiatus. Also, if you use the otf version of the font instead of the bitmap/otb version you can still get it to look like a pixel perfect bitmap font by setting the font to a specific size in the application, usually size 9 or 9.5 depending on the app or terminal.

[0] https://github.com/slavfox/Cozette


The only problem with Cozette is that it is 5px wide pixel font.

So, here is comparison of minimal LCD width required to print "Hacker News" (without quotations marks):

- in Cozette: 65px

- in Creep: 54px


So glad to see this receiving updates again. Love this font.


The Spleen font has, among other sizes, the 5x8, which is pretty similar. It's the default for OpenBSD drm console, although using a different size. It's constantly being updated.

https://github.com/fcambus/spleen


This - https://simplifier.neocities.org/4x4.html - is 4px wide font. Creep would be considered 5px wide.


Nice and clean! I have been playing around the possibility to make a 2x3 bitmap font, but that turned out to be rather a cryptic constellation of pixels than a proper font: https://zserge.com/posts/tiny-font/


Nice experiment! Would be nice to see some example text in the end..


There's a jsfiddle link to semi-interactive demo at the end of the article: https://jsfiddle.net/4urdtahx/

My eyes cannot sweep-read the result at all, and I also can't fully disambiguate enough characters in each word for the words to just "pop", even with effort.


The Pico-8 has a 3-pixel wide font, desinged to be used with a 128×128 pixel IDE:

https://www.lexaloffle.com/bbs/?tid=3760


This reminds me of Tasword Two, a word processor for the ZX Spectrum. It used a custom font to fit twice as many characters per line.

https://worldofspectrum.org/archive/software/utilities/taswo...


An old DOS game Metaltech had a very nice 3x5 font, i even reverse-engineered it and used it in some of my lab projects in the university. It looked really neat on 320*200 resolution.

[1]: https://en.m.wikipedia.org/wiki/Metaltech:_Earthsiege


Another tiny font is the 3x4 one used by PICO-8: https://www.lexaloffle.com/bbs/?tid=3760


the M is terrible. I wish that would be fixed


It’s not great, but definitely not ‘terrible’. Besides, how could you possibly do a better job given the constraints?


I'd remove the top middle pixel.

  # #
  ###
  # #
  # #


Exactly. They were trying to better differentiate from H but it just makes it more confusing. I saw a similar font with middle pixel gone from M wuth no problem telling it apart from H.


Maybe go with mu instead.


The Ultimate Oldschool PC Font Pack (v2.2) by VileR:

https://int10h.org/oldschool-pc-fonts/


Wow. I've been using 5px wide Fixed[1] for years because I'd never seen another font that is as readable that small, but this seems pretty nice.

[1] https://en.wikipedia.org/wiki/Fixed_(typeface)


There's a font called Flea's Knees that's sort-of 3 pixels wide. The pixels are different colors and it relies on LCD subpixel spacing to create the light-and-dark patterns. https://web.archive.org/web/20190705030013/http://www.typoph...


That's very interesting. I've never heard of subpixels being used to make fonts extremely small.


There are a fair amount of what you'll see described as 5px wide fonts, but are actually 4px wide. Just that every character has a blank column on the far right so that you can simplistically put chars one after the other.

So you sometimes have to actually look at, for example, the H or W glyph to see if they really mean "5px wide" or not.

This image, for example, is the "5x8 Spleen" font. If you zoom in, though, you can see it's really a 4px wide font: https://camo.githubusercontent.com/b2fa71fde615bd5510b5e9cb9...


Sorry, I actually meant 5px without the space, because the HN title here says 4px despite it actually being 5px if you include the space. The font I use is actually 6px wide (the 6x9 version).


Do you use 5px as your primary terminal/editor font size? What sort of screen/resolution do you use?


Yes, as well as for the window titles and panel bars for system status and other things. The resolution I'm mostly using right now is 1366x768.

When I decided on that font I was using a netbook though, so the screen was quite smaller. The 5px font[1] allowed me to have terminals side-by-side on a tiling WM and still get 75 columns. Without it, I probably would have had to stick to seeing just one window at a time.

I've since stopped using a netbook, but I still like maxing out my screen/terminal real-state with it. Right now on the resolution I said it's letting me have 3 terminals of 75 columns side-by-side. Although, I normally just stick to 2 terminals of 113 columns for those times when lines go over 80.

Anyway, I find the font so crisp and readable that I've never felt a desire to change it. I'm getting a bit tempted by the font of this post, though.

[1] It's actually one of the 6px-wide ones, the 6x9 version, but that includes the space to separate characters. I said 5px to compare with the HN title which says 4px despite that not including the spacing.


A font for people with excellent vision who want very much to fix that.


If people like fonts like that, it's great that it's available, but it's not for me any more.

My vision isn't even bad and I don't require glasses, but I have turned 40 and I want retina monitors and a 18pt font.


Haha All I can think about is how I need to whip out my strong spectacles.

Thank goodness the era of using tiny fonts in UI design is mostly over and people have realized that us visually impaired folk still need to work.

Still, a nice project


> my strong spectacles

With some VR HMDs, like Lenovo Explorer WMR, the strong lenses magnify pixels big enough to 'easily' see separately, in the clear center of the field of view. But don't provide many such clear pixels. So for editing code, using an HMD as non-VR terminal, I used tiny fonts (before switching to subpixel rendering of slightly larger fonts).


What software is available for designing pixel fonts with? It's something I've always wanted to try.



This one has a web UI and exports JSON: http://www.pentacom.jp/pentacom/bitfontmaker2/


Bits ‘n Picas is pretty good.

https://github.com/kreativekorp/bitsnpicas


Fontstruct is great > https://fontstruct.com/


That's a good looking for for how narrow it is. Too small for my old eyes to make out clearly enough for regular use, but if your vision is sharp I can see the beauty of it.


Slight tangent: Does anyone know what software this project is using to design this? I couldn't easily tell from their file extensions.

Or rather, do people have general recommendations for good, open source, font designing software on a standard Linux machine?


Fontforge [0] seems to be the one that I've heard about and even played with a bit in the past.

[0] https://fontforge.org/en-US/


Yep! I build this font in FontForge. Such a simple pice of software.


Oh I actually made a compact font too, but it's 7x13 (most characters are 5px wide). Don't have a name for it yet. The first version was bitmap, but at some point I figured out how to make macOS render vector fonts pixel-perfectly and so made a vector version too.

My way of making it is questionable too — I drew characters as SVGs (because font editors suck way too much) and wrote a php script to convert them to an .sfd file that I could then open in FontForge and export in whatever format I want.


Since people are sharing their favourite small bitmap fonts, allow me to share Tom Thumb, a tiny 4x6 font: https://robey.lag.net/2010/01/23/tiny-monospace-font.html


There used to be 4-pixel wide fonts (actually 3-pixels plus 1-pixel space) to get 70 columns of text on a 280x192 Apple ][.

See the software "Supertext 40/56/70"

https://books.google.com/books?id=ATAEAAAAMBAJ&pg=PA46&lpg=P...


Looks an awful lot like some of the fonts that used to be quite common on early microcomputers from RadioShack, Commodore, Atari, even Apple. That said, there are some thoughtful additions: the lower case F and L are as elegant as the M is (necessarily) awkward.


Love it! Gonna use it on my termimal. Wish we had a font like this with full unicode support too.


I loved designing every single website using Mini 7 back in the day. Amazing that this is just 4px!


Surprisingly readable! It seems quite usable if I move the screen a bit closer (at the wrist of my extended arm), but it gives me eyestrain at my preferred distance (at the tip of the fingers). Maybe I need better glasses... or better eyes. :/


Looks exactly like all the tonnes of 4 and 5px wide fonts commonly seen on home computer systems from the 80s and 90s with relatively low resolution, like the Amiga, Atari ST etc.


Amiga did 80x25 using 640x200 resolution.


The Amiga doesn't have a character mode. It does what you ask it in full bitmap mode. Many games, applications and more, made better use of limited screen real estate by using 4, 5 and 6 px wide fonts.


https://www.pagetable.com/?p=901 Commodore C64 hacked 80x25 mode using 4x8 font.


This should look good in NetHack. The box drawings look nice!


We need to go back to fixed width all caps green text on black background for everything.

Eventually blue text on black background, but that's as far as I want to go.


Not a monospace font, but I made this:

https://imgur.com/a/G5hDiP6


Nice, big fan of this style. I normally have Artwiz fonts installed on my machine to scratch the tiny bitmap font itch but might try this out now.


Question is the hash symbol (#) 4 pixels wide possible? I saw it there but it seems to me it requires at least 5 pixels.


Many characters "require" at least 5 pixels in both axes unless you take some creative liberties: W and E are the obvious ones.


Now that just makes me feel old. Would have loved this when I was younger. Presbyopia is no fun.


I remember much, much fun with graph paper drawing out custom 8x8 fonts on my C64 way back when.


Looks really nice, pity it doesn't seem to feature accented letters yet


This reminds me of Microsoft Nina, a narrow font designed for Pocket PC.


I didn't realize people were using fonts to do things like visualize data. Is that common? Are there other fonts that are suitable for this?


https://github.com/Evizero/UnicodePlots.jl this seems pretty popular in Julia, inspired by Drawille mentioned in the article.


It's definitely niche, and I seem to recall some really interesting fonts that did interesting things that encouraged some really wacky and neat projects, but I can't recall names...


This is great. Thanks for sharing.


Nice work


so this is only for OSX?


Quite the opposite; Xorg can handle BDF fonts natively.

Of course in modern applications, the client renders the font, so see e.g. https://gabusc.us/posts/bitmap-fonts-on-linux/ for how to set that up


so tldr: covert the font to OpenType for it to work with a recent version of pango?


You should be able to use this on any operating system that can use (or convert) .bdf font files.

For example:

https://hea-www.harvard.edu/~fine/Tech/font-howto.html




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

Search: