Blog archive: McCabeism: turning noise into a thing of beauty (2011)

If you’ve seen any real­ity zoo/wild-life pro­gram you’ll rec­og­nize this. Five min­utes into the show you’re con­fronted with a wounded, mag­nif­i­cent ani­mal, held in cap­tiv­ity so its care­tak­ers can nur­ture and feed it. And inevitably, after three com­mer­cial breaks, they release it, teary-eyed, back into the wild. It’s a piv­otal moment that turns their leop­ard into anyone’s/no one’s leop­ard. And as much as they like to see the ani­mal run free, it hurts that only they know that that is the leop­ard that Bruce bottle-fed.

It’s sim­i­lar with code. The moment you choose to release an algo­rithm, a tech­nique, an idea, it’s no longer com­pletely yours. It’s out there, free for every­one to do as they like. And chances are that in the end only a few people’ll know that that is the clever algo­rithm that Bruce came up with. Not because of malig­nant thiev­ery, but because of Tumblr-like care­less attribution.

Anyway, most of us don’t have to worry about this, I gladly share it all, because real inno­va­tion that’s truly wor­thy of attri­bu­tion is rare. If some­one uses HE_Mesh, it’d be fun to be cred­ited for the hard work that went into it. But I don’t need credit for the things that are cre­ated with it. Many other tools exist and in any case, it’s an imple­men­ta­tion of an exist­ing data struc­ture. The thing is: any­one could’ve coded it

There is how­ever an idea, an algo­rithm out there that was shared by its cre­ator Jonathan McCabe that is wor­thy of true attri­bu­tion, that falls out­side the realm of “any­one could’ve done it”. It’s been years since I first came across his multi-scale Turing pat­terns. They instantly intrigued me. And although I could recre­ate the gist of his images, I could never over­come the prac­ti­cal prob­lems. In fact, my coding attempts proved haz­ardous to the elderly, infants and preg­nant women. I thought my lack of numer­i­cal skill in tack­ling the huge equa­tions I ran into was the prob­lem. It was pon­der­ously slow and I sus­pected Jonathan had a secret lair packed with supercomputers.

Turns out I was being silly. An almost inci­den­tal post on Flickr revealed that Jonathan has a paper on his cyclic sym­met­ric multi-scale Turing patt.., what the hell, on his McCabeisms. And it’s full of DTC lines (A rarely needed acronym for “damn that’s clever”). Seems I wasn’t bark­ing up the wrong tree, I was in the wrong for­est, on the wrong con­ti­nent, on the wrong planet… As if that wasn’t enough, Jason Rampe pro­vides a blog post with use­ful point­ers in imple­ment­ing Jonathan’s idea. I say point­ers, it’s actu­ally more of a very elab­o­rate pseudocode than a blog post. So the McCabeism is out there, ready to be imple­mented by anyone.

So I did, in Processing and thanks to Jason, it only took a few hours. This sketch is my small con­tri­bu­tion to the free dis­tri­b­u­tion of Jonathan’s very, very clever idea. It con­tains the basics as explained in the Softology blog post. I’ve added no expla­na­tions of my own. Jonathan’s paper and Jason’s post are very clear and def­i­nitely worth reading.

Feel free to use it in your own explo­ration of McCabeism. There’s plenty of room for exper­i­men­ta­tion. Capture it, dis­sect it, change it, mutate it, (now that’s a wildlife show I’d like to see) and above all attribute it to Jonathan McCabe…