Creative coding: Difference between revisions

From HandWiki
JMinHep (talk | contribs)
correction
 
change
 
Line 12: Line 12:
</ref> 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.<ref name=hacktheartworld>{{cite web|url=http://hacktheartworld.com/|website=www.hacktheartworld.com|title=Hack The Art World|accessdate=16 July 2014}}</ref>
</ref> 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.<ref name=hacktheartworld>{{cite web|url=http://hacktheartworld.com/|website=www.hacktheartworld.com|title=Hack The Art World|accessdate=16 July 2014}}</ref>
== Artists using creative coding==
== Artists using creative coding==
Some contemporary artists who use creative coding in their work are Daniel Shiffman, Zachary Lieberman, Golan Levin, [[Biography:Ben Fry|Ben Fry]], and Giles Whitaker (artist).
Some contemporary artists who use creative coding in their work are Daniel Shiffman, Zachary Lieberman, Golan Levin, [[Biography:Ben Fry|Ben Fry]], and Giles Whitaker.


== List of creative coding software ==
== List of creative coding software ==
Line 27: Line 27:
|[[Cross-platform software|Cross-platform]]
|[[Cross-platform software|Cross-platform]]
|[[C++]]
|[[C++]]
|[[Software:BSD licenses|2-Clause BSD License]]
|{{Open source|[[Software:BSD licenses|2-Clause BSD License]]}}
|-
|-
|[https://dittytoy.net/ Dittytoy]
|[https://dittytoy.net/ Dittytoy]
Line 33: Line 33:
|Any with a [[Software:Web browser|web browser]]
|Any with a [[Software:Web browser|web browser]]
|[[JavaScript]]
|[[JavaScript]]
|[[Proprietary software|Proprietary]]
|{{Nonfree|[[Proprietary software|Proprietary]]}}
|-
|-
|generativepy
|generativepy
Line 39: Line 39:
|[[Cross-platform software|Cross-platform]]
|[[Cross-platform software|Cross-platform]]
|[[Python (programming language)|Python]]
|[[Python (programming language)|Python]]
|[[Software:MIT License|MIT License]]
|{{Open source|[[Software:MIT License|MIT License]]}}
|-
|Manim
|Animation engine for programmatically creating precise mathematical visualizations, generative graphics, and educational animations.
|[[Cross-platform software|Cross-platform]]
|[[Python (programming language)|Python]]
|{{Open source|[[Software:MIT License|MIT License]]}}
|-
|-
|Max MSP
|Max MSP
Line 45: Line 51:
|[[Software:Microsoft Windows|Windows]], [[Software:MacOS|Mac OS]]
|[[Software:Microsoft Windows|Windows]], [[Software:MacOS|Mac OS]]
|[[Visual programming language]]
|[[Visual programming language]]
|[[Proprietary software|Proprietary]]
|{{Nonfree|[[Proprietary software|Proprietary]]}}
|-
|-
|[https://nannou.cc/ Nannou]
|[https://nannou.cc/ Nannou]
Line 51: Line 57:
|[[Cross-platform software|Cross-platform]]
|[[Cross-platform software|Cross-platform]]
|[[Rust (programming language)|Rust]]
|[[Rust (programming language)|Rust]]
|[[Software:MIT License|MIT License]]
|{{Open source|[[Software:MIT License|MIT License]]}}
|-
|[https://www.nodebox.net/ NodeBox]
|Creative coding environment based on [[Node graph architecture|node-based design]] for generating 2D visuals and generative graphics.
|[[Software:MacOS|macOS]]
|[[Python (programming language)|Python]]
|{{Open source|[[GPL#Version 3|GPLv3]]}}
|-
|-
|[[Software:OpenFrameworks|openFrameworks]]
|[[Software:OpenFrameworks|openFrameworks]]
Line 57: Line 69:
|[[Cross-platform software|Cross-platform]]
|[[Cross-platform software|Cross-platform]]
|[[C++]]
|[[C++]]
|[[Software:MIT License|MIT License]]
|{{Open source|[[Software:MIT License|MIT License]]}}
|-
|-
|[https://openrndr.org OPENRNDR]
|[https://openrndr.org OPENRNDR]
Line 63: Line 75:
|[[Cross-platform software|Cross-platform]]
|[[Cross-platform software|Cross-platform]]
|[[Kotlin (programming language)|Kotlin]]
|[[Kotlin (programming language)|Kotlin]]
|[[Software:BSD licenses|2-Clause BSD License]]
|{{Open source|[[Software:BSD licenses|2-Clause BSD License]]}}
|-
|-
|[[Processing (programming language)#p5js|p5.js]]
|[[Processing (programming language)#p5js|p5.js]]
Line 69: Line 81:
|Any with a [[Software:Web browser|web browser]]
|Any with a [[Software:Web browser|web browser]]
|[[JavaScript]]
|[[JavaScript]]
|[[LGPL]]
|{{Open source|[[LGPL]]}}
|-
|-
|[[Processing (programming language)|Processing]]
|[[Processing (programming language)|Processing]]
Line 75: Line 87:
|[[Cross-platform software|Cross-platform]]
|[[Cross-platform software|Cross-platform]]
|[[Java (programming language)|Java]] or [[Python (programming language)|Python]]
|[[Java (programming language)|Java]] or [[Python (programming language)|Python]]
|[[GPL]], [[LGPL]]
|{{Open source|[[GPL]], [[LGPL]]}}
|-
|-
|[[Pure Data]]
|[[Pure Data]]
Line 81: Line 93:
|[[Cross-platform software|Cross-platform]]
|[[Cross-platform software|Cross-platform]]
|[[Visual programming language]]
|[[Visual programming language]]
|[[Software:BSD licenses|Modified BSD]]
|{{Open source|[[Software:BSD licenses|Modified BSD]]}}
|-
|-
|Shoebot
|Shoebot
Line 87: Line 99:
|[[Cross-platform software|Cross-platform]]
|[[Cross-platform software|Cross-platform]]
|[[Python (programming language)|Python]]
|[[Python (programming language)|Python]]
|[[GPL#Version 3|GPLv3]]
|{{Open source|[[GPL#Version 3|GPLv3]]}}
|-
|-
|[[Software:SuperCollider|SuperCollider]]
|[[Software:SuperCollider|SuperCollider]]
Line 93: Line 105:
|[[Cross-platform software|Cross-platform]]
|[[Cross-platform software|Cross-platform]]
|SuperCollider
|SuperCollider
|[[GPL#Version 3|GPLv3]]
|{{Open source|[[GPL#Version 3|GPLv3]]}}
|-
|[[Software:TouchDesigner|TouchDesigner]]
|[[Node graph architecture|Node-based]] visual programming environment for real-time interactive multimedia and generative visuals.
|[[Software:Microsoft Windows|Windows]]
|[[Visual programming language]]
|{{Nonfree|[[Proprietary software|Proprietary]]}}
|-
|-
|[[Vvvv|vvvv]]
|[[Vvvv|vvvv]]
Line 99: Line 117:
|[[Software:Microsoft Windows|Windows]]
|[[Software:Microsoft Windows|Windows]]
|[[Visual programming language]]
|[[Visual programming language]]
|[[Proprietary software|Proprietary]]
|{{Nonfree|[[Proprietary software|Proprietary]]}}
|-
|-
|[https://zimjs.com ZIM]
|[https://zimjs.com ZIM]
Line 105: Line 123:
|[[Cross-platform software|Cross-platform]]
|[[Cross-platform software|Cross-platform]]
|[[JavaScript]]
|[[JavaScript]]
|[[Software:MIT License|MIT License]]
|{{Open source|[[Software:MIT License|MIT License]]}}
|}
|}



Latest revision as of 08:45, 15 April 2026

Short description: Activity of computer programming for expressive purposes
A heavily modified version of the classic 1980s video game Breakout produces visually interesting glitches.

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.

History

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]

Artists using creative coding

Some contemporary artists who use creative coding in their work are Daniel Shiffman, Zachary Lieberman, Golan Levin, Ben Fry, and Giles Whitaker.

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
Dittytoy Platform that allows you to create generative music using a minimalistic javascript API. Any with a web browser JavaScript Proprietary
generativepy Library for creating visual generative art, and mathematical diagrams, as images and video. Cross-platform Python MIT License
Manim Animation engine for programmatically creating precise mathematical visualizations, generative graphics, and educational animations. 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
NodeBox Creative coding environment based on node-based design for generating 2D visuals and generative graphics. macOS Python GPLv3
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
p5.js Platform that empowers artists, designers, students, and anyone to learn to code and express themselves creatively on the web. Based on the core principles of Processing. Any with a web browser JavaScript LGPL
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
TouchDesigner Node-based visual programming environment for real-time interactive multimedia and generative visuals. Windows Visual programming language Proprietary
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
ZIM JavaScript Canvas Framework adding many conveniences, components and controls with an emphasis on simplifying code for learners and professionals. Cross-platform JavaScript MIT License

Hardware use

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.

See also

References