Camille calls her piece an "inadvertent homage to string art," but I think there's more than that going on here. Her piece (and Mark's, as well) operates by linking a fundamental element of visual design (the Line) to a fundamental affordance of computation (Iteration). Both Camille and Mark make this link clear by treating its results accretively, i.e., by incrementally building up an image with each iteration of the loop. John Maeda has written about how the computer is a 'tireless workhorse,' equally content to repeat something a billion times as ten. For artists, the consequences of this simple observation are so profound that it is only natural for each generation to rediscover it. Thus iterated lines like Camille's have a venerable history in computational design, whether in video games like "Qix," the popular designs of online artist Lia, or the works of other pioneering artist/programmers like Charles Csuri or John Whitney. And as computers show few signs of slowing down, this iterative economy they afford is likely to remain a theme, or a tool, for some time to come.
Your piece brings back the fondest of memories from my childhood. One of the earliest graphical works that inspired me was a simple moire of diagonal lines, connecting respective x and y coordinates, that came with my apple ][. Your piece also reminds me of the videogame "Quix" where one had to slowly steal territory away from a line that is an early relative of your piece. Your work is a lot more sophisticated, of course. The fact that I still can't quite predict how the rectangles will be created from my clicks makes it interesting -- sometimes the most interesting work never quite resolves into a complete logical package. The code makes it clear that I'll never be able to predict the effect -- you add a random element into the choice of rectangle to manipulate. The way you wrote the code is so respectful -- your comments are like little poems that interact also with the poetry of your code -- it's really quite tender! Some of your other work involves poetry on the screen, but now I see you try to make your code poetic too. One note -- I struggled the first time I ran your program to quit! None of the usual ways of quitting worked for me - ESC, ctrl-q, ctrl-c, alt-w, alt-f/x. The code showed me I only needed to press return, which also makes poetic sense.
Something I have always loved about C is all the white space there is in the code, and Camille seems to have taken it to the extreme with her style. You open a page of C, and it's like a breath of fresh air. No offense intended, Camille, this is about conventions: I must say I find the naming convention of "MyFunction..." a bit annoying, perhaps because it reminds me of working for Microsoft where Hungarian notation was forced down my throat. Every stupid loop integer had to be named "for intI = ..." instead of just "i" and every string had to named something like "strFileBuf" rather than simply "buf." And the "My..." thing I've always found so infantalizing, "My Computer," "My Documents," my my my me me me. In all fairness however, the use of the "My" prefix does clearly indicate which functions are the programmer's overloaded ones, what are plain utility functions, etc. I just wish there were another way to effectively indicate it. Obviously, its a personal thorn in my side, stuck there by Bill Gates circa '93.
Camille Utterback:I think it's really fitting that you commented on my function naming (and that naming conventions have annoyed you in the past), given that your CODeDOC project was partially about playing with these conventions. I agree with you that the "MyFunction..." convention is a bit annoying. It was more of an attempt to distinguish what I had written from the ungainly Windows code for people that weren't used to looking at such nonsense. I'm curious how you normally name your functions -- given that it's something you have feelings about. Are your functions simple pared down descriptions, or do they always err on the side of humor (even when you're the only one to see them)? I often find myself coming up with odd amalgams of code/nature for my drawing functions: 'PeacockArray' or 'BezierFlower' for example.