This article needs additional citations for verification. (March 2014)
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 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). 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.
Currently there is a renewed interest in the question why programming as a method of producing art hasn't flourished. Google has renewed interest with their Dev Art initiative, 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.
Artists using creative coding
List of creative coding software
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:
|Name||Description||Operating system||Programming language||License|
|Cinder||Library for programming with aesthetic intent, including domains like graphics, audio, video, and computational geometry.||Cross-platform||C++||2-Clause BSD License|
|generativepy||Library for creating visual generative art, and mathematical diagrams, as images and video.||Cross-platform||Python||MIT License|
|Max MSP||Visual programming language for music and multimedia.||Windows, Mac OS||Visual programming language||Proprietary|
|Nannou||Library that aims to make it easy for artists to express themselves with simple, fast, reliable code.||Cross-platform||Rust||MIT License|
|openFrameworks||Toolkit designed to assist the creative process by providing a simple and intuitive framework for experimentation.||Cross-platform||C++||MIT License|
|OPENRNDR||Creative coding framework designed and developed for prototyping and developing robust performant visual and interactive applications.||Cross-platform||Kotlin||2-Clause BSD License|
|Processing||A flexible software sketchbook and a language for learning how to code within the context of the visual arts.||Cross-platform||Java or Python||GPL, LGPL|
|Pure Data||Pd enables musicians, visual artists, performers, researchers, and developers to create software graphically without writing lines of code.||Cross-platform||Visual programming language||Modified BSD|
|Shoebot||A creative coding environment designed for making vector graphics and animations with Python.||Cross-platform||Python||GPLv3|
|SuperCollider||An environment and programming language for real-time audio synthesis and algorithmic composition.||Cross-platform||SuperCollider||GPLv3|
|Vvvv||Hybrid visual/textual live-programming environment for easy prototyping and development. It is designed to facilitate the handling of large media environments with physical interfaces, real-time motion graphics, audio and video||Windows||Visual programming language||Proprietary|
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.
- "Compos 68 - Monoskop". monoskop.org. Retrieved 2020-06-10.
- Lopes, Dominic (2009). A Philosophy of Computer Art. London: Routledge. ISBN 0415547628.
- Toby Juliff, Travis Cox (April 2015). "The Post-display condition of contemporary computer art". eMaj. 8. Archived from the original on 29 June 2016. Retrieved 31 May 2016.
- "DevArt Website". Retrieved 29 September 2016.
- "Hack The Art World". www.hacktheartworld.com. Retrieved 16 July 2014.
- Maeda, John (Jan 1, 2004), Creative Code: Aesthetics + Computation (1st ed.), Thames & Hudson, Limited, p. 239, ISBN 0500285179
- Greenberg, Ira (May 28, 2007), Processing: Creative Coding and Computational Art (Foundation) (1st ed.), friends of ED, p. 840, ISBN 1-59059-617-X, archived from the original on January 27, 2011, retrieved March 12, 2014
- The Art of Creative Coding Video produced by Off Book
- Creative Application Network, a website that showcases new work
- Dev Art - Art made with Code, a project by Google
- CreativeCode.io, an education initiative of GrayArea.org
- push.conference is a series of events and workshops aiming to unite Creative Coders & User Experience Designers
- OF Course is a creative coding program to give both hardcore coders and designers with no programming experience the hands on experience, tools, ideas, and full support for making their own stunning projects.
- Vidcode is a creative coding platform for K-12 classrooms to learn to code through creative coding courses.