Creative coding: Difference between revisions

Content deleted Content added
Tools: rmv - nn, + clarify, alpha-sort
See also: List of mathematical art software
 
(43 intermediate revisions by 33 users not shown)
Line 1:
{{Short description|Activity of computer programming for expressive purposes}}
{{refimprove|date=March 2014}}
[[File:Creative coding breakout modification.png|thumb|upright|A heavily modified version of the classic 1980s video game ''[[Breakout (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 game|video games]]), art installations, projections and [[projection mapping]], sound art, advertising, product [[prototype]]s, 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<ref>{{Cite web|title=Compos 68 - Monoskop|url=https://monoskop.org/Compos_68|access-date=2020-06-10|website=monoskop.org}}</ref> successfully explored programingprogramming 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).<ref>{{cite book|last1=Lopes|first1=Dominic|title=A Philosophy of Computer Art|date=2009|publisher=Routledge|___location=London|isbn=978-0415547628}}</ref> 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.<ref>{{cite journal|last1=Toby Juliff|first1=Travis Cox|title=The Post-display condition of contemporary computer art|journal=eMajEMaj|date=April 2015|volume=8|url=https://emajartjournal.com/2015/04/14/toby-juliff-travis-cox-the-post-display-condition-of-contemporary-computer-art/|accessdate=31 May 2016|archive-url=https://web.archive.org/web/20160629221917/https://emajartjournal.com/2015/04/14/toby-juliff-travis-cox-the-post-display-condition-of-contemporary-computer-art/|archive-date=29 June 2016|url-status=dead}}</ref>
 
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 within their Dev Art initiative,<ref>
{{cite web |url=https://devart.withgoogle.com |title= DevArt Website |access-date=29 September 2016}}
</ref> but this in turn has elicited strong reactions from the 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==
Some contemporary artists who use creative coding in their work are [[Daniel Shiffman]], [[Zachary Lieberman]], [[Golan Levin]], [[Ben Fry]], and [[Giles Whitaker (artist)]].
 
== List of creative coding software ==
== Tools ==
Although any technology or programming language can potentially be used for creative purposes, certain [[Library (computing)|libraries]] and [[Software framework|frameworks]] have been specifically crafted to aid in the rapid prototyping and development of creative works. Software toolkits frequently used in this context include:
A number of libraries have been created that aid in the rapid prototyping and development of these works. There are libraries for various functionalities, such as [[computer vision]], as well as [[motion detection]] devices such as the Microsoft [[Kinect]] camera and [[Leap Motion]]. Notable larger toolkits that are used (and often created by) creative coders are:
{| class="wikitable sortable"
*[[Cinder (programming library)|Cinder]]
!Name
*[[GNU Octave]]
!Description
*[[Max MSP]]
!Operating system
*[[openFrameworks]]
!Programming language
*[[Processing (programming language)|Processing]]
!License
*[[Pure Data]]
|-
*[[SuperCollider]]
|[[Cinder (programming library)|Cinder]]
|Library for programming with aesthetic intent, including domains like graphics, audio, video, and computational geometry.
|[[Cross-platform software|Cross-platform]]
|[[C++]]
|[[BSD licenses|2-Clause BSD License]]
|-
|[https://dittytoy.net/ Dittytoy]
|Platform that allows you to create generative music using a minimalistic javascript API.
|Any with a [[web browser]]
|[[JavaScript]]
|[[Proprietary software|Proprietary]]
|-
|generativepy
|Library for creating visual generative art, and mathematical diagrams, as images and video.
|[[Cross-platform software|Cross-platform]]
|[[Python (programming language)|Python]]
|[[MIT License]]
|-
|[[Max MSP]]
|Visual programming language for music and multimedia.
|[[Microsoft Windows|Windows]], [[MacOS|Mac OS]]
|[[Visual programming language]]
|[[Proprietary software|Proprietary]]
|-
|[https://nannou.cc/ Nannou]
|Library that aims to make it easy for artists to express themselves with simple, fast, reliable code.
|[[Cross-platform software|Cross-platform]]
|[[Rust (programming language)|Rust]]
|[[MIT License]]
|-
|[[openFrameworks]]
|Toolkit designed to assist the creative process by providing a simple and intuitive framework for experimentation.
|[[Cross-platform software|Cross-platform]]
|[[C++]]
|[[MIT License]]
|-
|[https://openrndr.org OPENRNDR]
|Creative coding framework designed and developed for prototyping and developing robust performant visual and interactive applications.
|[[Cross-platform software|Cross-platform]]
|[[Kotlin (programming language)|Kotlin]]
|[[BSD licenses|2-Clause BSD License]]
|-
|[[Processing (programming language)#p5js|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 (programming language)|Processing]]
|A flexible software sketchbook and a language for learning how to code within the context of the visual arts.
|[[Cross-platform software|Cross-platform]]
|[[Java (programming language)|Java]] or [[Python (programming language)|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 software|Cross-platform]]
|[[Visual programming language]]
|[[BSD licenses|Modified BSD]]
|-
|Shoebot
|A creative coding environment designed for making vector graphics and animations with Python.
|[[Cross-platform software|Cross-platform]]
|[[Python (programming language)|Python]]
|[[GPL#Version 3|GPLv3]]
|-
|[[SuperCollider]]
|An environment and [[programming language]] for [[Real-time computing|real-time]] [[audio synthesis]] and [[algorithmic composition]].
|[[Cross-platform software|Cross-platform]]
|SuperCollider
|[[GPL#Version 3|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
|[[Microsoft Windows|Windows]]
|[[Visual programming language]]
|[[Proprietary software|Proprietary]]
|-
|[https://zimjs.com ZIM]
|JavaScript Canvas Framework adding many conveniences, components and controls with an emphasis on simplifying code for learners and professionals.
|[[Cross-platform software|Cross-platform]]
|[[JavaScript]]
|[[MIT License]]
|}
 
== EventsHardware 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 [[Microphone|microphones]], [[Webcam|webcams]] or [[Range imaging|depth cameras]], [[Motion controller|motion controllers]], [[Single-board microcontroller|single-board microcontrollers]], [[MIDI controller|MIDI controllers]], [[Projector|projectors]], [[LED strip light|LED strips]], [[Printer (computing)|printers]] and [[Plotter|plotters]].
Two of the largest festivals in which creative coders gather and discuss their work are EyeO in the United States, and Resonate in Europe. Smaller festivals and meetups are organised all over the world.
 
== See also ==
* [[Creative computing]]
* [[Computer art]]
* [[Demoscene]]
* [[Generative design]]
* [[Generative art]]
* [[List of mathematical art software]]
* [[Live coding]]
 
== References ==
Line 46 ⟶ 142:
| publisher = friends of ED
| page = 840
| isbn = 978-1-59059-617-X3
| url = http://friendsofed.com/book.html?isbn=159059617X
| access-date = March 12, 2014
| archive-url = https://web.archive.org/web/20110127204040/http://www.friendsofed.com/book.html?isbn=159059617X
| archive-date = January 27, 2011
| url-status = dead
}}
 
== External links ==
* [https://web.archive.org/web/20130119171828/http://video.pbs.org/video/2322911761/ The Art of Creative Coding] Video produced by [[Off Book]]
*[http://www.creativeapplications.net/ Creative Application Network, a website that showcases new work]
*[https://devart.withgoogle.com/ Dev Art - Art made with Code, a project by Google]
*[http://www.creativecode.io/ CreativeCode.io, an education initiative of GrayArea.org]
* [http://www.push-conference.com push.conference] is a series of events and workshops aiming to unite Creative Coders & User Experience Designers
*[http://www.ofcourse.io 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.
*[https://www.vidcode.com/ Vidcode] is a creative coding platform for K-12 classrooms to learn to code through creative coding courses.
*http://natureofcode.com/book/ is an exploration of natural phenomena in code. An introduction to Processing and coding as a 'second semester class'. It teaches an intuitive approach to coding through real world experience. [https://www.kadenze.com/courses/the-nature-of-code/info Nature of Code Free Online Class]
*[http://www.vidcode.com Vidcode] is an online program and series of tutorials focused on creative coding for middle and high school students [https://vidcode.com Creative Coding Free Online Tutorials]
 
[[Category:Computer programming]]
[[Category:Creativity techniques]]
[[Category:Creative coding| ]]