The Tetris Printer Algorithm converts bitmaps into a complex array of tetrominoes. As each line is cleared, it leaves behind a small part of an image. A few thousand blocks later, voila! Tetris art.

We don't want to play Tetris anymore. Not because we're sick of it--because, if we let an algorithm play in our steads, we can watch it draw all sorts of cool things with the perfectly placed array of Tetris blocks. Michael Birken's Tetris Printer Algorithm determines the precise combination and placement of thousands of Tetris blocks to array them in just the right pattern to leave behind a recognizable image.

Birken introduces a lengthy breakdown of the Tetris Printer Algorithm by explaining that it "exploits the mechanics of Tetris to generate arbitrary bitmap images." The sprite art he generates as examples would be far easier to create in any graphics software, of course--the key, here, is doing it the hard (and clever) way. For example, one item points out that creating a row of certain-colored bricks means that entire row must be supported to hang in the air, so it does not drop into the intentionally empty row below. The printer accomplishes this by slotting S and Z pieces into one another, working outwards from an upside-down T piece in the center.

The deeper you go into the Tetris Printer Algorithm's explanation, the more you realize that drawing 8-bit sprites, which are usually only 2-3 colors, is really complicated when you're using Tetris pieces. You get passages like this:

"20 squares is the minimal width required to fit a 16 pixel wide sprite. But, 20 × 3 + 1 = 61, which is not divisible by 4 and hence not constructible out of Tetriminos. However, a width of 21 yields 21 × 3 + 1 = 64, which can be built with 16 Tetriminos. That width actually enables the algorithm to render sprites up to 17 pixels wide."

You also get entire sections devoted to topics like "multi-square emitters" and "packed matrices."

If you want to dig into the math or coding of the Tetris Printer Algorithm, check it out--you can also download the Java source code of the project for free. We're still watching the video of the printer in action.