The Algorithm Thought Police
Update: Jesse Rosenberg from Nervous System has posted a response on their blog, essentially arguing a more purist approach. It’s recommended reading as a counterpoint to my thoughts below, particularly since Jesse is an actual algorithm master whereas I am just a self-taught hack with an unconventional sense of color.
Earlier today I made an off-hand quip on Twitter in response to Jer Thorp tweeting a link to 3D Voronoi code (incidentally written by the excellent Frederik Vanhoutte.) The following snowball chain went as follows:
- @blprnt We talked about this. Voronoi is off limits until 2015, it got used waaay too much by architects in 2011.
- Temporarily banned algorithms: Circle packing, subdivisions, L-systems, Voronoi, the list goes on. Unless you make it ROCK, stay away.
- (And if you don’t think an algorithm can rock, we have nothing to talk about.)
Inevitably, this generated a certain amount of retweets and responses, both positive and critical. So before anyone starts thinking of me as the Algorithm Thought Police, I’d like to clarify my statements in more nuance than 140 characters will allow. So let me restate my point.
Yes, heavy use of standard algorithms is bad for you. That is, it is if you wish to consider yourself a computational creative capable of coming up with interesting work. If you’re a computer scientist or an engineer standard algorithms are your bread and butter, and you should go right ahead and use them.
Upon “discovering” an elegant algorithm that yields compelling visual results (say, circle packing or reaction-diffusion) there is a strong temptation to exploit it as is, crank out a hundred good-looking images and post them all over your Flickr, your blogs, what have you. I’ve done this. If you’re reading this you’ve probably done it too, and you know what happens next. Suddenly you find that the dude/dudette next door “discovered” the exact same algorithm and made a hundred images just like yours. And there’s egg all over your face.
Given this situation (which also applies to hardware, by the way) some people have the gall to proceed to try to beat up on the other creative simply they did their work the week after you did yours. To say that this is foolishness is to understate the problem, which is:
You cannot lay claim to “owning” any given algorithm (or hardware configuration), unless you have added significant extra value to it. To do so is at best ignorant.
Besides the problem of ownership, there is the even more serious issue of cliche. Most powerful algorithms have been used to death already, and you don’t need to add to your labor by having to distinguish your work from every mediocre computational creative who took a shortcut and published a Voronoi diagram as is. Yet surprisingly many people make exactly the same mistake time after time. Try watching the Generator.x Flickr group for a while and you will see the same classics paraded past you once a week.
This doesn’t mean you shouldn’t experiment with great algorithms. After all, they are great and much excellent work is made using them. But you should learn to be mature in your field the way that any other creative is: By learning to recognize the canon and creating your own niche within it (or, if you’re feeling rebellious, in opposition to it.) Being taken for ignorant or immature is just not a good way to establish your bona fides.
What do I propose as an alternative? Roll your own. Not as in come up with your own Voronoi alternative, but as in make sure you add your own creative signature to the work. Modify, remix and modulate. Check your work for algorithmic laziness. It’s oh-so-very tempting but it never pays off. If any CS student on the planet could walk into a lab and code the exact same result in an hour you’re just not trying hard enough.
PS. I would have liked to take the time to go through some of the “worst offenders”, but I figure most of them should be fairly obvious. For instance, I tend to name the oh-so-wonderful Voronoi because a horde of “parametric architects” have given it a dirty name and thought they were clever while doing so. And before you throw the first rock at me, here is some lovely circle packing I did back in 2007.
PPS. Jer Thorp should not be considered in any way to be an advocate of algo-cliche, despite being the genesis of this rant. Jer’s work is an excellent example of mixing known solutions with brilliant personal touches.