Code Bending: a New Creative Coding Practice
Total Page:16
File Type:pdf, Size:1020Kb
g e n e r a l a r t i c l e Code Bending A New Creative Coding Practice I l ias B e R g str o m a n d R . B e A u l o tt o Creative coding, or artistic creation through the medium of program include sketching, oil painting, creating pieces from found instructions, is constantly gaining traction, and there is a steady stream objects and live painting. Note the notions of art practice of new resources emerging to support it. However, the question of how and of technique overlap somewhat: A painter may regard creative coding is carried out still deserves more attention. In what ways ABSTRACT may the act of program development be rendered conducive to artistic applying oil paint with a palette knife instead of a paintbrush creativity? As one possible answer to this question, the authors present as employing a new technique. A painter in his studio ver- and discuss a new creative coding practice, that of code bending, sus a live painter in front of an audience may on the other alongside examples and considerations regarding its applications. hand employ the same techniques, but engage in different practices. While programming has been established as a me- dium for art, there is still much room for analogous discus- With the creative coding movement, artists have transcended sion on how creative coding practice may be carried out. In the dependence on using only pre-existing software for creat- what ways may software development, largely established as ing computer art. In this ever-expanding body of work, the a meticulous, systematic engineering practice, also be made medium is programming itself. In other words, a piece of conducive to artistic creativity? The intent of this article is software art is not made using a program; it is the program to introduce an account of such a creative coding practice, [1]. Its composing material is not paint on paper or collec- that of code bending. Inspired by circuit-bending [2], code tions of pixels, but program instructions. bending repurposes the internal programming interface of Once an uncommon practice, today creative coding is open-source software so that instead of fulfilling its intended increasingly gaining traction. Schools of visual art, music, purpose of internal communication between outwardly inac- design and architecture teach courses on creatively harness- cessible components of the software it allows external com- ing the medium. The number of programming environ- munication from and to elements that had not been exposed ments designed to make creative coding approachable to to users or to other software prior to “bending.” practitioners without formal software engineering training has grown, reflecting creative coding’s widened user base. BackgRound An additional enabling factor is the prevalence of the open- Procedural art long predates computers, a common example source ethos—the majority of programming environments being Islamic Art. In modern times, many artists have fol- are made available as free open-source software. There is also lowed in the footsteps of pioneers Ben Laposky and John a vast and ever-growing number of libraries extending the Whitney [3] in creating procedural art using computers, a functionality of these environments, and sample programs practice that has come to be known as digital art [4] or new or even entire productions are available to use, extend and media art, referring to art created using new media technol- learn from. ogy [5]. Aesthetic computing, “the application of the theory In traditional forms of art, artists can choose to practice and practice of art to the field of computing” [6], widens the their art in a number of ways. Examples of visual art practices scope of aesthetics in computing, emphasizing how artistic aesthetics may inform all computing practice. The account of Ilias Bergstrom (researcher), EventLAB, Universitat de Barcelona, Campus de how computing and art have informed each other is exten- Mundet—Edifici Teatre, Passeig de la Vall d’Hebron 171, 08035 Barcelona, Spain. Email: <[email protected]>, <[email protected]>. sively covered in existing literature [7,8]. Without attempting R. Beau Lotto (educator), Lottolab Studio, University College London, 11-43 Bath Street, an exhaustive background review on the topic of the inter- University College London, London, U.K., EC1V 9EL. Email: <[email protected]>. relation between art and computing, we will describe the See <www.mitpressjournals.org/toc/leon/48/1> for supplemental files practices that have most directly inspired us to frame the associated with this issue. context into which we introduce code bending. Note that ©2015 ISAST doi:10.1162/LEON_a_00934 LEONARDO, Vol. 48, No. 1, pp. 25–31, 2015 25 Downloaded from http://direct.mit.edu/leon/article-pdf/48/1/25/1576126/leon_a_00934.pdf by guest on 30 September 2021 we focus here on practices and not their supporting tools, Puckette emphasized the sketching analogy by presenting although several tools will inevitably be mentioned for their users with a blank canvas onto which a program is incre- relation to particular practices. mentally drawn up as a directed graph, formed by intercon- nected boxes placed upon the canvas. Each box performs CReATIve CodIng a particular function based on the data it receives through Alex McLean and Geraint Wiggins [9] have described pro- its inlets and then sends the result out through its outlets grammers with artistic intent as frequently following a bri- to be further processed by whatever boxes have their inlets colage approach, a notion fi rst introduced in the context of connected to these outlets with a line (Fig. 1). Sketching is programming by Sherry Turkle and Seymour Papert [10], promoted in the Processing language and environment [13]. who adopted the term from Claude Lévi-Strauss [11]. Rather Processing expands upon the ideas in John Maeda’s Design than providing their own defi nition of the bricolage ap- by Numbers language, created to teach the “idea of computa- proach, McLean and Wiggins cite Turkle and Papert: tion to designers and artists” [14]. Th e goal in the design of the environments we have mentioned is to facilitate creative Th e bricoleur resembles the painter who stands back be- approaches to programming similar to the way traditional tween brushstrokes, looks at the canvas, and only aft er this media artists sketch out their work, be it a drawing, a sculp- contemplation, decides what to do next. For planners, mis- ture or musical score. takes are missteps; for bricoleurs they are the essence of a Th e practice of live coding is creative coding taken to its ex- navigation by mid-course corrections. For planners, a pro- treme. Artists engaged in this practice write code as a means gram is an instrument for premeditated control; bricoleurs of performance, commonly while presenting the output in have goals, but set out to realize them in the spirit of a col- conjunction with a projection of the continuously modifi ed laborative venture with the machine. For planners, getting program code [15,16]. Live coding is predominantly used in a program to work is like “saying one’s piece”; for bricoleurs musical performance, but its use in visual performances is it is more like a conversation than a monologue [10]. not uncommon and there is nothing to keep the practice A parallel development to the emergence of computing from being applied to any other context in which live perfor- and its application in art has been the process of making mance and creative coding meet. Live coding requires the use programming languages easier to use. Some initiatives have of specialized programming environments capable of inter- explicitly ventured beyond lowering the learning threshold preting the code on the fl y as it is entered by the performer, and towards encouraging a diff erent approach to coding that, without restarting or recompiling the whole program. While although this is not explicitly stated, bears much resemblance several environments exist with this capability (for example to the bricolage approach. One such example is the sketching Max/MSP and Pure Data), some have also been created spe- approach, fi rst introduced in writing by Miller Puckette, the cifi cally with live coding in mind (for example SuperCollider, originator of the prominent visual programming languages ChucK, Impromptu and Fluxus). (VPL) for creative coding Max/MSP and Pure Data [12]. Hacking is also of relevance to this discussion. While the f ig. 1. Max/MSP patch showing data- processing and data- generating boxes connected to each other through their respective inlets and outlets, thus forming a visually drawn computer program. (© Ilias Bergstrom) 26 Bergstrom and Lotto, Code Bending Downloaded from http://direct.mit.edu/leon/article-pdf/48/1/25/1576126/leon_a_00934.pdf by guest on 30 September 2021 term may vary greatly in definition depending on context extensive training is not an absolute barrier to entry. Ghazala [17], we use the term here to refer to the modification of a pre- refers to his technique as anti-theoretical—not in the sense existing piece of closed-source software, with the intention of rejecting theoretically informed practice but as providing of causing it to perform differently from its original purpose. a complementary alternative to it. A popular circuit-bending This requires a very deep understanding of the working of practice is to modify electronic toys for their subsequent use computers and the software executed on them. It also com- as musical instruments. Famously, Mattel’s Speak & Spell monly requires machine-level assembly language program- voice synthesis toy is often bent and repurposed as a musical ming, since this is the only means of controlled modification instrument that generates otherworldly vocal sounds.