Generative Art 2000
The aesthetics of generative code
Alex McLean, Adrian Ward (VX-SLAB & Sidestream) and Geoff Cox (CAiiA-STAR), http://www.generative.net

Abstract

Aesthetics, in general usage, lays an emphasis on subjective sense perception associated with the broad field of art and human creativity. This paper suggests that it might be useful to revisit the troubled relationship between art and aesthetics for the purpose of discussing the value of generative code.

It is now generally accepted that sense perception alone is simply not enough unless contextualised within the world of ideas. Similarly, the world of multimedia is all too easily conflated with a multi-sensory experience (of combining still and moving image, sound, interaction and so on). Thus the limits of traditional aesthetics is emphasised in the problem of defining which of the senses the highest of the arts adheres to -according to Kant and Hegel - the ‘arts of speech’. Poetry throws such crude classificatory distinctions into question as it is both read and heard; or written and spoken/performed. Hegel suggests a way out of this paradox by employing dialectical thinking; as we do not hear speech by simply listening to it. He suggests that we need to represent speech to ourselves in written form in order to grasp what it essentially is. Thus poetry can neither be reduced to audible signs (the time of the ear) nor visible signs (the space of the eye) but is composed of language itself. This suggests that written and spoken forms work together to form a language that we appreciate as poetry. But does code work in the same way?

By analogy, generative code has poetic qualities too, as it does not operate in a single moment in time and space but as a series of consecutive ‘actions’ that are repeatable, the outcome of which might be imagined in different contexts. Code is a notation of an internal structure that the computer is executing, expressing ideas, logic, and decisions that operate as an extension of the author's intentions. The written form is merely a computer-readable notation of logic, and is a representation of this process. Yet the written code isn't what the computer really executes, since there are many levels of interpreting and compiling and linking taking place. Code is only really understandable with the context of its overall structure – this is what makes it a language (be it source code or machine code, or even raw bytes). It may be hard to understand someone else’s code but the computer is, after all, multi-lingual. In this sense, understanding someone else's code is very much like listening to poetry in a foreign language - the appreciation goes beyond a mere understanding of the syntax or form of the language used, and as such translation is infamously problematic.

Code itself is clearly not poetry as such, but retains some of its rhythm and metrical form. Code is intricately crafted, and expressed in multitudinous and idiosyncratic ways. Like poetry, the aesthetic value of code lies in its execution, not simply its written form. To appreciate it fully we need to ‘see’ the code to fully grasp what it is we are experiencing and to build an understanding of the code’s actions. To separate the code and the resultant actions would simply limit the aesthetic experience, and ultimately the study of these forms - as a form of criticism (what might be better called ‘poetics’).