Creative coding is a type of computer programming in which the goal is to create something expressive instead of something functional. It is used to create live visuals and for VJing, as well as creating visual art and design, entertainment (e.g. video games), art installations, projections and projection mapping, sound art, advertising, product prototypes, and much more.
Using programming to create art is a practice that started in the 1960s. In later decades groups such as Compos 68[1] successfully explored programming for artistic purposes, having their work exhibited in international exhibitions. From the 80s onward expert programmers joined the demoscene, and tested their skills against each other by creating "demos": highly technically competent visual creations.
Recent exhibitions and books, including Dominic Lopes' A Philosophy of Computer Art (2009) have sought to examine the integral role of coding in contemporary art beyond that of Human Computer Interface (HCI).[2] Criticising Lopes however, Juliff and Cox argue that Lopes continues to privilege interface and user at the expense of the integral condition of code in much computer art. Arguing for a more nuanced appreciation of coding, Juliff and Cox set out contemporary creative coding as the examination of code and intentionality as integral to the users understanding of the work.[3]
Currently there is a renewed interest in the question of why programming as a method of producing art hasn't flourished. Google has renewed interest in their Dev Art initiative,[4] but this in turn has elicited strong reactions from a number of creative coders who claim that coining a new term to describe their practice is counterproductive.[5]
Some contemporary artists who use creative coding in their work are Daniel Shiffman, Zachary Lieberman, Golan Levin, Ben Fry, and Giles Whitaker (artist).
Although any technology or programming language can potentially be used for creative purposes, certain libraries and frameworks have been specifically crafted to aid in the rapid prototyping and development of creative works. Software toolkits frequently used in this context include:
Creative coding occasionally involves hardware components for inputting data from the environment, producing output or for interacting with participants. Examples of commonly used hardware includes microphones, webcams or depth cameras, motion controllers, single-board microcontrollers, MIDI controllers, projectors, LED strips, printers and plotters.