Controlled Damage: Artistic De-generation

Controlled Damage: Artistic De-generation

About five months ago, I was upset at Bookface for whatever reason. Again. I decided I wanted to post a messed up version of my user icon. Back in the MySpace days, my user icon was the little document-with-a-red-X icon that Internet Explorer throws in as a placeholder to indicate a missing or damaged image. That was good, but has since become played out. I wanted something similar, but maybe a little more subtle or modern.

This got me thinking. About five years ago in Trent Reznor’s Year Zero ARG, part of the artwork was composed of compressed images with various bits intentionally damaged. The way compression works, one tiny piece of damage will decompress into one or more macroblocks of varying degrees of damage. The net result gives you large blocky “pixels” and lines of weird colors and static. In the game/story/experience, the visual damage was used to convey websites that “leaked” through from the future.  A few examples are below. You can see more of the same on my archive (

I had previously done something like that, but by hand with a hex editor. This time, I wanted to try that same technique, but with the ability to iterate between editing and viewing the results much faster. Like any programmer with a problem that can be automated, I wrote a little Ruby script. It is called Controlled Damage and it’s over on GitHub.

Controlled Damage lets you randomly damage a file. You give it a distortion value (such as 1 in 1,000 or 1 in 1,000,000) and it will introduce that many bytes of damage. When I found results I liked, I opened the damaged image in a basic image editor (Apple’s Preview app) and saved the resulting “artwork” as a non-damaged file (that has every appearance of being damaged). I did this extra step because I have no control over how various image viewers will render a damaged image – maybe similarly to my image viewer, maybe differently, maybe it’s corrupted enough that it refuses to display. At any rate, the results I liked I saved for later use.  Here are a few examples:

I have no idea if anyone else will find this sort of thing useful (or even interesting), but I thought I would share, just in case.

Posted on