NOTE: If you have trouble loading the page below, click "Main" up top, it should load the whole page correctly.
Been awhile...
As usual, the Here Be Dragons application is available for download.
Hopefully I'll have more to show soon, on many fronts.
Aside from a rather interesting day job, I've been working on strengthing the codebase (with some help from a few other folks) for 'Dragons and its kin. I've also been trying to relearn the quirks of pixel art and spritemaking, learning more and more about matrix projections and other 3D math, exploring the form of the first-person walkthrough, using crayons for the first time in what must be 10 years-If you think that this is all towards one project, your crazy, and if you think that they're for disparate ones, you're even crazier.
For the moment, I've compiled what I call "The Book of Permutations". Click on the applet and use the arrows to navigate:
That said, I'm not quite sure if this qualifies as the specific mathematical definition of the term "permutation". Some of you might liken it to "Every Icon" by John F. Simon, Jr. While the form is almost identical, I ultimately did this for somewhat different reasons. "Every Icon" is basically of a clock,
counting through every combination of a 32X32 bitmap, a process that will likely take several times longer than the projected lifespan of our universe. "Permutations", on the other hand,is more of a reference. Instead of counting through every 32X32 icon, I iterated through every 4X4 bitmap-a feat much more finite, consisting of only 65,536 elements. The totality of these images could easily fit in a book, or on a single image (here is the "index").
To look up (some would say "generate" or even "draw") an image, I find it easiest to work from the bottom up, that portion changes the slowest due to the way I visualize the counting. You can scan the whole book in under a minute, so equating an image to a number, while tricky, can be very fast once you get the hang of it.
The process was rather simple. Count to 65,536 (any power of two could work, although you want one that you can depict as a sqaure or rectangle if you want a nice, solid bitmap), converting the number to binary. Make each "1" black and each "0" white. I am certain this is what Simon did for "Every Icon", and it works here as well. Years ago (before I heard of "Every Icon", I swear!) I had the idea of doing this with an 8X8 grid, the standard size of a small icon. This would end of being an emormous 2^64 images. What actually brought me to this number were a few fables and other oddities. The I Ching has 64 trigrams, for instance. Legend has it that the inventor of Chess
requested as a reward 1 coin (or grain) on the first square, 2 on the next, 4 after that, until all 64 squares were accounted for. Incidentally, he was beheaded. The other story involved the puzzle known as the Towers of Hanoi. A series of discs must be changed according to a recursive system (at least that's the most efficient way to do it). For n discs, the minimal number of moves to complete the puzzle is (2^n - 1) moves. The story has a divine Tower consisting of (that's right) 64 discs, and upon its completion the world will end. Any student of combinatorics
will probably think the Tower is something of an optimisitic projection-last count the Sun is expected to last another 5 billion years or so. Even if the discs were moved at rates of one a second, the Tower would take much, much longer than that to complete. Still, 2^64 pops in a lot of "big number" myths.
I ended up doing 4X4 since it is another power of two in dimension (computers love those), and adding even a single pixel doubles the size of the whole collection-the definition of diminishing marginal returns. Besides, one can simply take four pieces from "Permutations" and create any larger 8X8 image-Of course, you can do this with a single pixel, but 4X4 is where images start to really emerge. Check out the faces (a few around #26889), the letter "A" (try around #40854), and the hilighted black sphere (#28630). Of course, each image has its inverse in there somewhere as well, along with a lot of variants. If you didn't care about inverses, actually, you could cut your work in half. If you didn't care about rotation, could further cut the work in into a quarter. Trust me, though,
rotation is a big deal-things look different on their side and upside down, especially at this scale.
Part of this experiment was to answer the question "What if someone alphabetzed Borges' Library of Babel?". The answer is somewhat interesting. You can see that the pattern looks something like a fractal grid, indeed I inadvertently created a fractal through this process-each larger element containing a the smaller elements that preceded it. Larger collections, like my 8X8 grid and "Every Icon", would look pretty much exacly like this image as well.
In terms of procedural content, this brings up a lot to think about. 4X4 is an interesting scale, for instance. It's just large enough to have recognizable icons (like the letters and designs above), but just small enough so that the overwhelming amount of junk or "noise" is not terribly overwhelming. In fact, even a lot of the "noise" can be read as either a part of a larger, more interesting picture, or still has enough abstract flair to prove useful for some graphical escapade. Also, a good procedural method would "cull" the elements that you would want out of this total, all-encompassing set-The culling itself could be a complex neural net, or a random pixel generator, or somebody with a mouse and some artistic sense.
Most ideas about digitally exhausting a system usually veer toward the "it's finite, but really really big, too big to be useful"-In this case I chose a value that was big, but also managable, and, I think, quite interesting to ponder.
Posted by todd at January 2, 2006 6:06 PMJared Tarbell's Invader Fractal project is similarly related to Every Icon. Tarbell uses a 3x5 grid, but mirrors it to get very eye-pleasing symmetry. Check it out here: http://levitated.net/daily/levInvaderFractal.html
Oh and your applet isn't working for me.
Posted by: Aaron
at January 3, 2006 11:00 AM
Thanks for signing in, . Now you can comment. (sign out)
(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)