Bit-finity

A. Scott Britton's picture

I'm not sure how it happened, but all of the sudden I've become an enthralled, obsessed, captive audience to the concept of small-scale pixel fonts (I mean stuff for smaller devices, cell phones and the like).

I know next to nothing about the theory of designing these fonts, and have a lot of questions about it all (like, what is the standard grid dimension--12x12, right?). Regardless of the size, I know there are obvious limitations, anyone can see that with a limited number of pixels to work with, eventually every possibility will be exhausted. I don't know what the total number of possibilities is if you take into account every possible permutation of the grid, but I do know that the number of possibilities when specifically carving letterforms from the grid is significantly lessened (for example, let's say you design the letter 'H' in the grid consisting of 23 pixels [9 per each stem, 5 for the crossbar], that's one possibility; but we're not going to consider it another [real] possibility if that same design is taken and a pixel is added to each of the four extreme corners--this demonstrates the constraints).

So, you can only do so much, because it will [eventually] all be designed. But, what are the possibilities if we stop seeing the design of these fonts on a microcosmic scale, and start looking at the bigger picture, i.e., a massive grid, each letterform design acting as a "pixel" in the grid of the font as a whole. So, in other words, at some point in the future (let's say in the year 2525) when all the possibilities for each letterform have been set, my clone (which was born some time around 2497) takes a font designed by Joe Gillespie's clone and say's "Hey, I like all of these glyphs, except I don't think that the 'c' fits into this set, better would be to include the 'c' from "pixelfont XT37JM2323"--it's a totally different font then, right?

Mark Simonson's picture

...eventually every possibility will be exhausted.

This might take a while. There are 22,300,745,198,530,600,000,000,000,000,000,000,000,000,000 possible combinations of black and white pixels in a 12x12 grid (2 to the power of 144). Admittedly, not all of these combinations are useful (relatively few even), but it does illustrate that there is plenty of room for variation, even in a relatively small area.

Remember, too, that there are hundreds of characters in each font and some characters offer more room for variation than others (e.g., lowercase g vs. a period).

Mark Simonson's picture

By the way, that number with all the zeros isn't totally accurate after the 6. It looks like 2^144 goes beyond the level of accuracy Excel can handle. The number should be 22,300,745,198,530,623,141,535,718,272,648,361,505,980,416. (Hooray for Python!)

A. Scott Britton's picture

Enlightening, thanks Mark. By the way, how did you figure the possibilities (what's the formula?)

hrant's picture

> all of the sudden I've become an enthralled,
> obsessed, captive audience to the concept of
> small-scale pixel fonts

It's the purity. Outline fonts can never have that.

In terms of uniqueness, Mark's scary numbers notwithstanding, there is in fact a very real practical barrier of permutations at smaller sizes. That's why I try to only make grayscale pixelfonts now - calculate that, Mark! ;-)

BTW:
http://www.typophile.com/forums/messages/4100/32187.html

> .... it's a totally different font then, right?

Who knows, I guess. That "totally" probably wouldn't hold up though.

hhp

Mark Simonson's picture

It's pretty simple: A 12 x 12 grid of black and white pixels is essentially a 144 digit binary number. To figure out how many different combinations there are, here is the formula:

Mark Simonson's picture

In terms of uniqueness, Mark's scary numbers notwithstanding, there is in fact a very real practical barrier of permutations at smaller sizes. That's why I try to only make grayscale pixelfonts now - calculate that, Mark! ;-)

Well, for a 12 x 12 grid with 16 levels of gray, that would be 247,330,401,473,104,534,060,502,521,019,647,190,035,131,349,101,211,839,914,063,056,092,897,225,106,531,867,170,316,401,061,243,044,989,597,671,426,016,139,339,351,365,034,306,751,209,967,546,155,101,893,167,916,606,772,148,699,136 combinations.

If you step that up to 256 levels of gray you get 61,172,327,492,847,069,472,032,393,719,205,726,809,135,813,743,440,799,050,195,397,570,919,697,796,091,958,321,786,863,938,157,971,792,315,844,506,873,509,046,544,459,008,355,036,150,650,333,616,890,210,625,686,064,472,971,480,622,053,109,783,197,015,954,399,612,052,812,141,827,922,088,117,778,074,833,698,589,048,132,156,300,022,844,899,841,969,874,763,871,624,802,603,515,651,998,113,045,708,569,927,237,462,546,233,168,834,543,264,678,118,409,417,047,146,496 combinations. Personally, I think this is overkill and that 16 is plenty. :-)

hrant's picture

> that would be ....

Dayng.

Actually, although it's hard to need more than a half-dozen shades, if they're chosen from a gradation of 16 (actually 17, believe it or not) it helps a lot.

hhp

A. Scott Britton's picture

Okay Hrant, thanks for the link (and the link inside it). I may be getting far ahead of myself, but, let me be humble and admit that I know absolutely nothing about grayscale bitmaps and ask you--will you elaborate further on the process? Please.

And I think you're right, I think it's the purity.

hrant's picture

> will you elaborate further on the process?

Where a b&w pixelfont places a block (as an outline) where the "virtual pixel" is for a given PPEM size, a grayscale pixelfont fills that block only partially, to get a shade when it's rendered. However, the tricky part is getting consistent rendering accross platforms and apps, since for example Photoshop and Flash interpret the degree and type of filling differently...

hhp

geraintf's picture

hey hrant, could you show us a screengrab of such a funky outline?

cheers

geraint

hrant's picture

Here's what the cleaned-up cap "A" from Mana-16R looks like:

UPFbones

The converter's raw results are a lot messier in that it doesn't implement symmetry and sometimes generates stray subpixels. But that's really OK, because the only way to make these outlines usable large is to compromise the exacting screen rendering anyway. Unless some people think this is the Bell Centennial of the 21st century, baby.

hhp

geraintf's picture

crazy;)

Syndicate content Syndicate content