«Software is mind control. Come and get some.» [1]
'Generative art' has become a fashionable term over the last two years and can now be found in such varied contexts as academic discourse, media arts festivals, architects’ offices, and design conferences. It is often used in such a way that it cannot be distinguished from the term 'software art', if not as a direct synonym for it. Generative art and software art are obviously related terms–but exactly what their connection is often remains a mystery. This essay attempts to shed some light on the relationship between generative art and software art.
Generative art ≠ Software art
According to Philip Galanter (2003), generative art refers to "any art practice where the artist uses a system, such as a set of natural language rules, a computer program, a machine, or other procedural intervention, which is set into motion with some degree of autonomy contributing to or resulting in a completed work of art." [2] Thus, generative art refers to processes that run autonomously, or in a self-organizing way, according to instructions and rulespre-programd by the artist. Depending on the technological context in which the process unfolds, the result is unpredictable and thus less the product of individual intention or authorship than the product of the given working conditions. [3] This definition of generative art (as well as some other definitions) is, as Philip Galanter writes, an 'inclusive', comprehensive, wide-reaching definition, which leads Galanter to the conclusion that "generative art is as old as art itself." [4] The most important characteristic of any description (or attempted description) of generative art–in electronic music and algorithmic composition, computer graphics and animation, on the demo scene and in VJ culture, and in industrial design and architecture [5] –is that generative processes are used to negate intentionality. Generative art is only concerned with generative processes (and in turn, software or code) insofar as they allow–when viewed as a pragmatic tool that is not analysed in itself–the creation of an 'unforeseeable' result. It is for precisely this reason that the term 'generative art' is not an adequate description of software art. 'Software art', on the other hand, refers to artistic activity that enables reflection of software (and software’s cultural significance) within the medium – or material – of software. It does not regard software as a pragmatic aid that disappears behind the product it creates, but focuses on the code it contains–even if the code is not always explicitly revealed or emphasised. Software art, according to Florian Cramer, makes visible the aesthetic and political subtexts of seemingly neutral technical command sequences. Software art can base itself on a number of different levels of software: source code level, abstract algorithm level, or on the level of the product created by a given piece of code. [6] This is shown in the wide variety of different projects ranging from 'codeworks' (which consist only of ASCII code and in most cases cannot be executed) and experimental web browsers – «Webstalker» (1997) – down to executable programmes. Just as software is only one of many materials used in generative art, software art can also contain elements of generative art, but does not necessarily have to be technically generative. Thus, the terms 'generative art' and 'software art' cannot be used as synonyms under any circumstances. Rather, the two terms are used indifferent registers, as I will attempt to show in the following passage.
Dragan Espenschied/ Alvar Freude
As part of their thesis «insert_coin», Dragan Espenschied and Alvar Freude secretly installed a web proxy server at the Merz Academy in Stuttgart in 2000/2001. Taking the slogan "two people controlling 250 people," the proxy server used a Perl script to manipulate both students’ and faculty members’ entire web traffic on the Academy’s computer network. The goal of this, according to Espenschied and Freude, was to "examine the users’ competence and critical faculty in terms of the every-day medium Internet." [7] This manipulated proxy server forwarded URLs entered to other pages, modified HTML formatting code, and used a simple search-and-replace function to change both news reports on news sites (by changing the names of politicians, for example) and the content of private e-mails accessed via web interfaces such as Hotmail, GMX, and Yahoo!. The manipulated web access was in place for four weeks without being noticed by students or staff at the Merz Academy, and when Espenschied and Freude revealed details of the experiment, practically no-one was interested. Although the artists published an easy-to-follow guide to disabling the filters, only a very small percentage of those affected took the time to make a simple adjustment in order to regain access to unfiltered information. [8]
textz.com
My second example, «walser.php», walser.pl, and «makewalser.php» by textz.com/Project Gnutenberg, is a form of political literary [9] software, or more specifically anti-copyright activist software and was developed as a reaction to one of the largest literature scandals in Germany since 1945. The file name walser.php is not only an ironic reference to walser.pdf, an electronic version of Martin Walser’s controversial novel sent by the Suhrkamp publishing house via e-mail and later recalled; it is a php-script that takes 10,000 lines of source code and uses the php-interpreter to generate an ACSII text version of Walser’s Tod eines Kritikers (death of a critic). While the php source code does not contain the novel in visible or readable form and can thus be freelydistributed and modified under the GNU General Public License, it may only be executed with the written permission of Suhrkamp. [10] While Espenschied and Freude's experiment on filtering and censorship of Internet content points out software’s practically infinite potential to control (and be controlled), walser.php offers a practicable solution with which to handle the commercial restrictions, in particular, that seek to hinder freedom of information through digital rights management systems (DRM). Whereas insert_coin temporarily makes a dystopic scenario reality by manipulating software, textz.com with walser.php develops genuinely utopian "countermeasures in the form of software." [11] These projects are generative in the best sense of the word. And yet neither insert_coin nor walser.php perfectly fits the definitions of generative art as they are currently used in the design field. Philip Galanter, who I have already quoted and is surely among the most prolific generative art theorists at present, defines generative art as a process that contributes to the creation of a completed work of art. Celestino Soddu, Director of the Generative Design Lab at the Politecnico di Milano technical university in Milan and organiser of the "Generative Art" international conferences, also describes generative art as a tool that allows the artist or designer to synthesise "an ever-changing and unpredictable series of events, pictures, industrial objects, architectures, musical works, environments, and communications." [12] The artist could then produce "unexpected variations towards the development of a project" in order to "manage the increasing complexity of the contemporary object, space, and message." [13] And finally, the Codemuse web site also defines generative art as a process with parameters that the artist should experiment with "until the final results are aesthetically pleasing and/or in some way surprising." Generative art and generative design are–as these quotes show–mainly concerned with the results that generative processes produce. They involve software as a pragmatic-generative tool or aid with which to achieve a certain (artistic) result without questioning the software itself. The generative processes that the software controls are used primarily to avoid intentionality and produce unexpected, arbitrary and inexhaustible diversity. Both the n_Gen DesignMachine, Move Design's entry to the Helsinki Read_Me Festival 2003, and Cornelia Sollfranks’ «Net Art Generator,» [14] which has been generating net art at the touch of a button since 1999, are ironic commentaries on what is often (mis)taken for generative design. [15] insert_coin and walser.php extend beyond such definitions of generative art or generative design insofar as, in comparison to more result-orientated generative design (and also in comparison to many interactive installations of the 1990s, which hid the software in black boxes), they are more concerned with the coded processes that generate particular results or interfaces. Their focus is not on design, but on the use of software and code as culture–and on how culture is implemented in software. To this end, they develop 'experimental software', a self-contained work (or process) that deals with the technological, cultural, and social significance of software–and not only by virtue of its capacity as tool with which arbitrary interfaces are generated. In addition, the authors of 'experimental software' are rather concerned with artistic subjectivity, as their use of various private languages shows, and less with displaying machinic creativity and whatever methods were used to form it. "Code can be diaries, poetic, obscure, ironic or disruptive, defunct or impossible, it can simulate and disguise, it has rhetoric and style, it can be an attitude," [16] reads the emphatic definition from 2001 transmediale jury members Florian Cramer and Ulrike Gabriel.
Software Art
The term 'software art' was first defined in 2001 by transmediale [17] , the Berlin media art festival, and introduced as one of the festival’s competition categories. [18] Software art, referred to by other authors as 'experimental' [19] and 'speculative software' [20] as well as 'non-pragmatic' and 'non-rational' [21] software, comprises projects that use program code as their main artistic material or that deal with the cultural understanding of software, according to the definition developed by the transmediale jury. Here, software code is not considered a pragmaticfunctional tool that serves the 'real' art work, but rather as a generative material consisting of machinic and social processes. Software art can be the result of an autonomous andformal creative process, but can also refer critically to existing software and the technological, cultural, or social significance of software. [22] Interestingly, the difference between software art and generative design is reminiscent of the difference between software art that was developed in the late 1990s and the early computer art of the 1960s. Artworks from the field of software art "are not art created using a computer," writes Tilman Baumgärtel in his article Experimentelle Software (experimental software), "but art that takes place in the computer; it is not software programmed by artists in order to create autonomous works of art, but software that is itself a work of art. With these programmes, it is not the result that is important, but the process triggered in the computer (and on the computer monitor) by the program code." [23] Computer art of the 1960s is close to concept art in that it privileges the concept as opposed to its realisation. However, it does not follow this idea through to its logical conclusion: its work, executed on plotters and dot- matrix-printed paper, has an emphasis on the final product and not the program or process that created the work. [24] In current software art, however, this relationship is inverse; it deals "solely with the process that is triggered by the program. While computer art of the 1960s and 1970s regarded the processes inside computers only as methods and not as works in themselves, treated computers as 'black boxes', and kept computer processes veiled inside, present software projects thematise exactly these processes, make them transparent, and put them up for discussion." [25] — see the (somewhat polemic) Comparison of generative art and software art.
Performance of code vs. the fascination with the generative,
or: "Code has to do something even to do nothing, and it has to describe something even to describe nothing." [26] The current interest in software, according to my hypothesis, is not only attributable to a fascination with the generative aspect of software, that is, to its ability to (pro)create and generate, in a purely technical sense. Of interest to the authors of these projects is something that I would call the performativity of code–that is, its effectiveness in terms of speech act theory, which can be understood inmore ways than just as purely technical effectiveness–that is, not only its effectiveness in the context of a closed technical system, but its effect on the domains of aesthetics, politics, and society. In contrast to generative art, software art is more concerned with 'performance' than with 'competence', more interested in parole than langue [27] –in our context, this refers to the respective actualisations and the concrete realisations and consequences in terms, for example, of societal systems and not 'only' within abstract-technical rule systems. In the two examples above, the generative is highly political–specifically because changing existing texts covertly (in the case of insert_coin) and extracting copyrighted text from a Perl script (in the case of walser.php) is interesting, not in the context of technical systems, but rather in the context of the societal systems that are becoming increasingly dependent on these technical foundations. First, however, there is the fascination with the generative potency of the code: "Codes [are] individual alphabets in the literal sense of modern mathematics […], one-to-one and countable, i.e. using sequences of symbols that are as short as possible, that are, thanks to grammar, gifted with the tremendous ability to reproduce themselves ad infinitum: Semi-Thue groups, Markov chains, Backus-Naur forms, and so on. That and only that distinguishes such modern alphabets from the one we know, the one which can analyse our languages and that has given us Homer’s epics, but that cannot set up a technical world like computer code can today." [28] Florian Cramer, Ulrike Gabriel, and John F. Simon Jr. also have a particular interest in the algorithms–"the actual code that produces what is then seen, heard, and felt." [29] For them, perhaps the most fascinating aspect of computer technology is that code–whether contained in a text file or a binary number–is machine executable: "an innocuous piece of writing can upset, reprogram , [or] crash the system." [30] In terms of its 'coded performativity', [31] program code also has direct, political consequences on the virtual space that we are increasingly occupying: Here, "code is law." [32]
Program Code as Performative Text
Ultimately, the computer is not an 'image medium', as it is often described, but essentially a 'text medium', towhich all sorts of audio-visual output devices can be connected. [33] Multimedia, dynamic interfaces are generated from (programmed) texts. Therefore, it is not enough to talk in terms of the "surface effects of software"–that is, dynamic data presentation through the staging of information and animation–of a "performative turn in graphical user interfaces," [34] because this view is too attached to the assumed performativity of those surfaces. Rather, when considering software art and net art projects (and indeed software in general), one should be aware that they are based on two forms of text: a phenotext and a genotext. The surface effects of phenotext, for example, moving texts, are generated and controlled by other texts—by effective texts lying under the surface, by program code, or by source texts. Program code distinguishes itself in that saying and doing come together inside it. Code is an illocutionary speech act (see below) capable of action, and not a description or representation of something, but something that affects, sets into motion, and moves" [35] In this context, Friedrich Kittler refers to the ambiguous term 'command line', a hybrid that today has been almost completely eliminated from most operating systems by graphical user interfaces. Some 20 years ago, however, all user interfaces and editors were either command line orientated, or one could switch back and forth between modes. While pressing the return key results in a line break when in text mode, entering a text and pressing the return key when in command line mode is a potential command: "In computers […], in stark contrast to Goethe’s Faust, words and acts coincide. The neat distinction that the speech act theory has made between utterance and use, between words with and without quotation marks, is no more. In the context of literary texts, kill means as much as the word signifies; in the context of the command line, however, kill does what the word signifies to running programmes or even to the system itself." [36]
How To Do Things With Words
In a series of lectures held in 1955 under the title of How to Do Things with Words, [37] John Langshaw Austin (1911–1960) outlined the groundbreaking theory that linguistic utterances by no means only serve the purpose of describing a situation or stating a fact, butthat they are used to commit acts. «What speakers of languages have always known and practised intuitively," writes Erika Fischer-Lichte, "was formulated for the first time by linguistics: Speech performs not only a referential function, but also a performative function.» [38] Austin’s speech act theory regards speech essentially as action and sees it as being effective not on the merit of its results, but in and of itself. This is precisely where the speech act theory meets the code’s assumed performativity: «[When] a word not only means something, but performatively generates exactly that what it names.» [39] Austin identifies three distinct linguistic acts in all speech acts. He defines the 'locutionary act' as the propositional content, which can be true or false. This act is not of further interest to us in this context. 'Illocutionary acts' are acts that are performed by the words spoken. They are defined as acts in which a person who says something also does something (for example, a judge's verdict: «I sentence you" is not a declaration of intent, but an action.) The message and execution come together: Simply "uttering [the message] is committing an act.» [40] Thus, illocutionary speech acts have certain effects and can either succeed or fail, depending on whether certain extra-linguistic conventions are fulfilled. 'Perlocutionary acts', on the other hand, are utterances that trigger a chain of effects. The speech itself and the consequences of that speech do not occur at the same time. As Judith Butler notes, the "consequences are not the same as the speech act, but rather the result or the 'aftermath' of the utterance." [41] Butler summarises the difference in a succinct formula: «While illocutionary acts take place with the help of linguistic conventions, perlocutionary acts are performed with the help of consequences. This distinction thus implies that illocutionary speech acts produce effects without delay, so that 'saying' becomes the same as 'doing' and that both take place simultaneously.rlaquo; [42] Insofar as 'saying' and 'doing' coincide, program codes can be called illocutionary speech acts. According to Austin, speech acts can also be acts, without necessarily having to be effective (that is, without having to be 'successful'). If these acts are unsuccessful, they represent failed performative utterances. Thus, speech acts are not always effective acts. "A successful performative utterance [however] isdefined in that the act is not only committed," writes Butler, "but rather that it also triggers a certain chain of effects." [43] program codes, viewed very pragmatically, are only useful as successful performative utterances; if they do not cause any effect (regardless of whether the effect is desired or not), or they are not executable, they are plain and simply redundant. In the context of functional pragmatic software, only executable code makes sense. [44]
Code as a mobilisation and/or immobilisation system
Code, however, does not only have an effect on phenotexts, the graphical user interfaces. 'Coded performativity' [45] also has direct, political consequences on the virtual spaces (the Internet, for example) which we are increasingly occupying: program code, according to the U.S. law professor Lawrence Lessig, "increasingly tends to become law." [46] Today, control functions are built directly into the network architecture, that is, into its code, according to the theory that Lessig outlines in Code and other Laws of Cyberspace (1999). Using the Internet provider AOL as an example, Lessig makes insistently clear how through its very code AOL's architecture prevents all forms of virtual 'rioting'. Different code allows different levels of freedom: "The decision for a particular code is," according to Lessig, "also a decision about the innovation that the code is capable of promoting or inhibiting." [47] To this extent, code can mobilise or immobilise its users. This powerful code remains invisible, however; Graham Harwood refers to this as an "invisible shadow world of process." [48] In this sense, one could refer to the present as a 'postoptical' age in which program code—which can also be described as 'postoptical unconscious', according to Walter Benjamin—becomes "law." I developed the term 'postoptical' while dealing with the concept of the 'ctrl_space' exhibition that took place in 2000 and 2001 at the ZKM Centre for Art and Media in Karlsruhe. This exhibition, which was dedicated solely to the Bentham panoptic-visual paradigm, outlined the problematic (and here, polemically formulated) theory that surveillance today only takes place if a camera is present–which, considering the various forms of 'dataveillance' practiced today, is an outdated definition. The term 'postoptical', on the other hand,describes all digital data streams and (programmed) communication structures and architectures that can be monitored just as easily but which consist of only a small portion of visual information. [49] In his A Short History of Photography, Walter Benjamin defines the 'optical unconscious' as an unconscious visual dimension of the material world that is normally filtered out from people's social consciences, thus remaining invisible, but which can be made visible using mechanical recording techniques (such as photography and film: slow motion, zoom). In his words, «it is a different nature which speaks to the camera than speaks to the eye: so different that in place of a space consciously woven together by a man on the spot there enters a space held together unconsciously.» [50] He goes on to say that even if photographers can justify their work by capturing others in action, no matter how common that action is, they still cannot know their subjects’ behaviour at the exact moment of capture. Photography and its aids (slow motion, zoom), he claims, reveal this behaviour. They allow us to discover our optical unconscious, just as psychoanalysis allows us to discover our instinctive subconscious. With Benjamin's definition of the optical unconscious, one might today refer to the existence of a 'postoptical unconscious', usually hidden by a graphical interface in computers, which must be made visible using suitable equipment. [51] This 'postoptical unconscious' could be considered in terms of program code that surfaces/interfaces are based on and which, with its coded performativity, algorithmic genotext and deep structure, generates the surfaces/interfaces that are visible to us, while the code itself remains invisible to the human eye.
Focus on an invisible performativity
Many artistic and net activist projects that have dealt with the politics of electronic data space (such as the Internet) since the late 1990s aim specifically at code and seek to remove the transparency of these technical structures. Artists and net activists have drawn attention to the existence of the hotly contested data sphere on the Internet (Toywar platform), built private ECHELON systems (Makrolab by Projekt Atol/Marko Peljhan), developed tools toblur one’s own traces on the Internet (Tracenoizer. by LAN), and thematised the increasing restriction of public space through the privatisation of telecommunications infrastructure (Minds of Concern: Breaking News [52] by Knowbotic Research. ). [53] While the everyday understanding of 'transparency' is usually clearness and controllability through visibility, it means exactly the opposite in IT, namely that something can be seen through, can be invisible, and that information is hidden. If a system (for example, a surface or graphical user interface) is 'transparent', it is neither recognisable or perceptible to the user. Although information hiding is often useful in terms of reducing complexity, it can also lend the user a false sense of security, as it suggests a direct view of something through its invisibility, a transparency disturbed by nothing, which one would be absurd to believe: "Far from being a transparent window into the data inside a computer, the interface brings with it strong messages of its own." [54] In order to make these messages visible, one has to direct one’s attention to the 'transparent window'. Just as transparent glass-fronted buildings can be transformed into milky, semi-transparent surfaces in order to become visible [55] , postoptical IT structures must also be removed of their transparency. In communications networks, similarly, the structures of economic, political, societal power distribution must be made opaque and thus visible. Ultimately, it is a question of returning the computer science-based definition of transparency (that is, the transparency of the interface: information hiding) to its original meaning–clearness and controllability through visibility. [56]
Codeworks: "M @ z k ! n 3 n . k u n z t . m2cht . fr3!"
Works in the area of software art, therefore, focus on the code itself, even if this is not always explicitly revealed or emphasised. Software art draws attention to the aesthetic and political subtexts of ostensibly neutral technical command sequences. That which is surely the "most radical understanding of computer code as artistic material" [57] can be seen in the so-called 'codeworks' [58] and their artistic (literary) examination of program code. Codeworks use formal ASCII instruction code and its aesthetics without referring back to the surfaces and multimedia graphicaluser interfaces it creates. Works by Graham Harwood, Netochka Nezvanova, and mez [59] introduced in this context bring to mind the existence of a 'postoptical unconscious' that is usually hidden by the graphical interface. The Australian net artist "mez" [60] (Mary-Anne Breeze) and the anonymous net identity Netochka Nezvanova (also known under the pseudonyms nn, antiorp and Integer) have been producing for some time in addition to hypertext works and software that allows real-time manipulation of video, also text works that they usually send to mailing lists such as Nettime, Spectre, Rhizome, 7-11 or Syndicate in the form of simple e-mails. Except for attachments and the increasing use of HTML texts, e-mail as a text medium allows the use of ASCII text only and is therefore (technologically) restricted. mez and antiorp, however, have both developed their own languages and styles of writing: mez calls her style 'M[ez]ang.elle' while Netochka Nezvanova/Integer refers to it as 'Kroperom' or 'KROP3ROM|A9FF'. Both deal with the artistic appropriation of program code. Those not familiar with programming languages cannot recognise much more than illegible noise in this contemporary form of mail art, which gives the impression of a file that has been incorrectly and illegibly formatted or decoded by a software program. Those who are semi-literate in the domain of programming languages and source code, however, will soon realise that this is computer code and programming language that are being used and appropriated. The status of these languages, or parts of language, however, remains ambivalent: It oscillates in the perception of the recipient between assumed executability (functionality) and non-executability (dysfunctionality) of the code; in short, between significant information and asignificant noise. Depending on the context, useless character strings suddenly become interpretable and executable commands, or vice versa—performative programming code becomes redundant data.
mez
mez’s self-created art writing style , 'M[ez]ang.elle' is modelled on computer languages […] but without being written in strict command syntax. [61] It contains a mixture of ASCII art and pseudo-program code. Like the portmanteau words of Lewis Carroll and James Joyce," writes Florian Cramer, "the words of mezangelleinterweave in double and multiple ways. The square brackets originate from programming language and are borrowed from common notation of Boolean algebra in that they reference several characters simultaneously, thus describing polysemy." [62] mez lets individual words physically become crossover points of different meanings–here, we are dealing with material ambiguity or polysemy implemented into linear text or, to echo Lacan, with the realised "vertical" of a point, [63] that is the simultaneous presence of different potentialities within the same word: «mez introduces the hypertext principle of multiplicity into the word itself. Rather than produce alternative trajectories through the text on the hypertext principle of 'choice', here they co-exist within the same textual space.» [64] mez’s texts enter into an endless shifting of meaning that generally cannot be specifically defined. This polysemy is, as noted by Florian Cramer, also a polysemy of the sexes, as is found in many of mez's texts: "'fe[male]tus' can be simultaneously read as 'foetus,' 'female,' and 'male.' Other words take on the syntax of file names and directory trees as well as the quoting conventions of e-mail and chats." [65]