Quagmire

No, not that quagmire!

Rather, I am talking about an interesting software art project in which programs exist within a bitmap. From the author:

Quagmire is an emulation of an impossible 8bit processor, where all memory is addressed in 2 dimensions, and is represented by pixel value. Program execution threads can run up, down, left or right. Sections of code are visible in memory, as are the processes as they run. Unlike a normal computer the internal process of the machine is visible. Programs are drawings.

The programs are executed by scanning pixels in the bitmap/drawing and interpreting them as instructions that can change the original bitmap, including the parts that are being “run.”

The best way to illustrate this concept is will an illustration, or rather, a series of illustrations:

In the above example, the “program” in the lower-left corner switches various pixels on and off, and spawns more copies of itself in the process. After running for a while, one ends up with four animated “stripes” of execution.

The program changes dramatically if the “non-executed” area of the image is different. For example, we can paste my “digital fish” logo onto the image and then run the program again:

The very orderly execution over the empty image becomes much more complex in the presence of the fish logo.

Although the complex changes in the image can seem random, they are completely deterministic. Running the same program/image in Quagmire yields the same result every time. Indeed, this can be seen as an example of chaos in which simple processes can produce incredibly complex results that may seem random but are completely deterministic.

Some images produce less complexity. Applying the same program to a picture of Space Ghost (who has appeared in several posts on this forum recently) causes a small number of changes after which the program comes to a halt:

By contrast, applying the program code to an image of Luna appears to grow ever more noisy and complex:


The Quagmire site has more detailed technical information about the programming language (more of a machine language) and an implementation in which you can run your own programs. You can also find links to more examples of “software art.”

It would be interesting to explore software art that uses audio in addition to (or instead of) visual images…