I’ve been experimenting with the idea of complexity recently, and over the past few hours with Gestalt-esque tensions between form recognition and visual overload. This is related to a series of questions I’ve been asking myself about the relationship between perspective and recursivity in algorithmic machines. I’m interested in the nature of all those lovely spindly lines we see populating so many Processing sketches, and how they relate with code stuctures. Complex forms come cheap in code; all you need is an iterator: it costs almost nothing — from the programmer’s perspective — to draw 1 line and n lines, especially when you take performance out of the equation. But beyond the economy of drawing hundreds of thousands of millions of bajillions of lines, what about the perceptive field that emerges from this code? If there is a machinic relationship between the visual forms and the code forms (one our basic tenets), what do these code structures generate in terms of perceptive structures? And does computer code — if treated as a series of recursive abstractions (at least in practice) — form new perception-fields at each stratum of abstraction, synchronized to the code abstraction layers?

There are several ways to explore these questions. As a quick experiment, I built this somewhat simplistic diagram in a few minutes to describe one of these perceptive fields (source code). Often 3D shapes make no sense in a 2D plane unless there is movement; even when you add shadows, shaders, and camera effects, etc., there is often that problem of render mode ambiguity. This diagram plays with this ambiguity, making the code form more visible with movement. Otherwise it tends to resemble a formless 2D field. Here, the addition of an extra plane (i.e. movement) renders a form visible, just as Google Earth renders visible historically ambiguous relationships between the U.S. military and Nazism or reveals Roman ruins by looking at unnaturally shaped mounds from space. By the addition of one simple « dimension », a form emerges. What is interesting here is how the extra dimension can be mapped to a specific line of code: rotate().

Actually, there is an additiontal relationship in this diagram between the 3D functions « translate » and « rotate » : the translation movements of each mini-cube makes the meta-cube more visible (by revealing more of its contours), but only when viewed in conjunction with a rotation movement.

It is important to keep in mind that this is a simple example intended to illustrate the principle, and not its effect in the real-world. For that, we would have to look elsewhere; to give just a few examples I’ve been working with recently, I could cite Masaki Fujihata’s Field-Works or, from a more media analysis perspective, Ben Fry’s Mario Soup, Dismap or Martin Wattenberg’s Shape of Song.

This might be totally left field, but now that I think of it, there’s a great passage in Italo Calivino’s Leibniz inspired « reading a wave » from Mr. Palomar:

« Mr Palomar sees a wave rise in the distance, grow, approach, change form and color, fold over itself, break, vanish, and flow again. At this point he could convince himself that he has concluded the operation he had set out to achieve, and he could go away. But it is very difficult to isolate one wave, separating it from the wave immediately following it, which seems to push it and at times overtakes it and sweeps it away; just as it is difficult to separate that one wave from the wave that precedes it and seems to drag it towards the shore, unless it turns against its follower as if to arrest it. Then if you consider the breath of the wave, parallel to the shore, it is hard to decide where the advancing front extends regularly and where it is separated and segmented into independent waves, distinguished by their speed, shape, force, direction. In other words, you cannot observe a wave without bearing in mind the complex features that concur in shaping it and the other equally complex ones that the wave itself originates. These aspects vary constantly, so each wave is different from another wave, even if not immediately adjacent to successive; in other words there are some forms and sequences that are repeated, though irregularly distributed in space and time. » (p.3-4)

For ultimately, all of these questions of abstraction and gestalt are in fact questions about our relationship to complexity and the role algorithmic machines (will inevitably) play in negotating our increasing complexity malaise :

« [A]t each moment he thinks he has managed to see everything to be seen from his observation-point, […] something always crops up that he had not borne in mind. If it were not for his impatience to reach a complete, definitive conclusion of his visual operation, looking at waves would be a very restful exercise for him and could save him from neurasthenia, heart attack, and gastric ulcer. And it could perhaps be the key to mastering the world’s complexity by reducing it to the simplest mechanism. […] Only if he manages to bear all the aspects in mind at once can he begin the second phase of the operation: extending this knowledge to the enitre universe. It would suffice not to lose patience, as he soon does. Mr Palomar goes off along the beach, tense and nervous as when he came, and even more unsure about everything. » (p.5-7)