Skip to content

Creative Coding

See also: teaching-digital-technologies, computing, digital-humanism

Collection of resources around the use of digital technology in art.

Implementation#

Misc resources#

Python#

Projects#

Artists, Coders etc.#

Vera Molnar#

Resources: NYTimes obituary, Wikipedia article, Personal site

Art: Weaving variations

A pioneer of computer art and generative art. Used computational methods for art before she had a computer (1968)

The NYTimes describes her emulation of algorithms.

In 1959, she began implementing a concept she called “Machine Imaginaire” — imaginary machine. This analog approach involved using simple algorithms to guide the placement of lines and shapes for works that she produced by hand, on grid paper.

There's even a Vera Molnar Reconstructed course with a series of exercises to reconstruct her work.

Creative Coding#

Resources: What is creative coding

Creative coding combines programming with creative arts and design (Mitchell & Bown, 2013). Mitchel & Bown (2013) offer the following definition

creative coding as a discovery-based process consisting of exploration, iteration, and reflection, using code as a primary medium, towards a media artefact designed for an artistic context.

And they link it to bricolage-programming (exploration and iteration) and reflection-in-action.

Generative design#

Differs from creative coding where the human is in the iterative loop. Generative design involves writing algorithms that can design autonomously. The focus on creating the set of rules that generates the media. It has a long history pre-dating computers e.g. Islamic and oriental ornaments.

Resources

  • generative artistry - tutorials and podcasts exploring ideas and techniques in generative art.

    Tutorials are for Javascript (Canvas) and displayed in a beautiful progressive release design.

Needs of creative coders#

Mitchell & Bown (2013) research the needs of creative coders and developed a taxonomy of needs

  1. Make the program state visible - a not uncommon need given the opacity of coding
  2. build code on a module foundation

    A common methodology was: create a code structure (scaffolding); initiate the creative feedback loop quickly.

  3. Initiate the creative feedback loop quickly

    Participants leveraged the scaffolding to use ideation to develop an expectation of behaviour. This was implemented the behaviour observed and then iterative code tweaking. Eventually feeding back into ideation and the broader cycle.

  4. Minimise the creative feedback gap

  5. Assistance in exploring the space of possible designs
  6. Maintain a robust mental representation of the software

Creative/art platforms#

IPO model#

This article argues that creative coding extends the horizon of coding beyond typical software development. Typical software development focuses on a narrow range of tasks. Creating coding can go beyond. This is illustrated using the standard Input, Process, Output (IPO) model of software development but illustrating it for creative coding.

The idea reinforces the data homogenisation strength of digital technologies. It identifies a range of different sources of data that can be used in creative coding. Illustrated by a project where Tim generated different art representing Bach's prelude in C.

An "IPO model" for creative coding (from What is creative coding by Tim Rodenbroker

Processing#

Mitchell & Bown (2013) identify Processing as possibly the most influential creative coding environment. A "flexible software sketchbook and language for learning how to code"

References#

Hansen, S. M. (2019). public class Graphic_Design implements Code { // Yes, but how? }: An investigation towards bespoke Creative Coding programming courses in graphic design education. In AU Library Scholarly Publishing Services. AU Library Scholarly Publishing Services. https://doi.org/10.7146/aulsps-e.340

Mitchell, M. C., & Bown, O. (2013). Towards a creativity support tool in processing: Understanding the needs of creative coders. Proceedings of the 25th Australian Computer-Human Interaction Conference: Augmentation, Application, Innovation, Collaboration, 143--146. https://doi.org/10.1145/2541016.2541096