Back to Glossary

Creative Coding: Programming as Artistic Expression and Medium

Creative coding is programming for artistic expression, not utility. Learn its history from Processing to p5.js, key artists, and how code became a creative medium.

Quiet Canvas Staff
July 29, 2026

In 2001, two MIT Media Lab researchers released a programming language that was not designed for building software, analyzing data, or running websites. Casey Reas and Ben Fry built Processing for artists. They wanted a tool where someone could write three lines of code and see a shape appear on screen, without setting up compilers, configuring environments, or learning object-oriented architecture first. Processing spread through art schools and design programs in the 2000s, and it spawned a discipline that now has its own festivals, academic journals, and museum exhibitions. That discipline is called creative coding.

Creative coding is the practice of writing computer programs for artistic expression rather than functional purpose. The output can be visual, auditory, interactive, or physical. The code itself is the medium, the way oil paint is a medium or charcoal is a medium. Creative coding overlaps with generative art, but the two terms are not identical. Generative art describes the result: art produced by a system. Creative coding describes the practice: writing code as an artistic activity. You can make generative art without creative coding if you use a visual tool, and you can do creative coding without making generative art if you write interactive software or data visualizations.

This entry covers the history of creative coding from its origins in 1960s computer art to the current moment, the tools and languages that define the field, the artists who shaped it, and how programming became an art practice taught in studios rather than computer labs.

What Is Creative Coding and How Does It Work?

Creative coding is programming where the goal is expression, not function. A software engineer writes code to solve a problem: process a payment, route traffic, index a database. A creative coder writes code to make something that did not exist before: a visual composition, an interactive installation, a sound piece, an animation. The code may be inefficient, messy, or thrown away after one use. What matters is the output and the process of making it.

The practice typically involves writing programs in languages designed for or adapted to visual output. The program defines parameters, algorithms, and rules. When the program runs, it produces the artwork. In interactive creative coding, the program responds to input from sensors, cameras, microphones, or user controls in real time. In generative creative coding, the program produces outputs that vary each time it runs, often using random or pseudo-random processes.

A 2024 paper published on arXiv explored how creative coding environments like p5.js are being extended with generative AI capabilities, allowing artists to apply diffusion models directly within their code. The researchers created GenP5, a library that extends p5.js so artists can condition their algorithmically constructed art with AI styling. This represents a significant shift: creative coding tools are absorbing AI not as a replacement for the coder but as a new set of functions within the programming environment. Read the study at arXiv.

Origins and History

Creative coding has roots in the 1960s computer art movement. A. Michael Noll at Bell Labs created some of the earliest computer-generated images in 1962, including geometric patterns produced by plotting mathematical functions. Vera Molnar (1924-2023) began writing programs to generate drawings in 1968, using the computer as a collaborator in her compositional process. Manfred Mohr (b. 1938) wrote ALGOL programs that produced plotter drawings based on cube decompositions. These pioneers were creative coders before the term existed, but they worked in isolation, often needing access to institutional mainframe computers.

The field as a recognizable community began to form in the 1990s. John Maeda, a student of Muriel Cooper at the MIT Media Lab, published "Design by Numbers" in 1999, a simplified programming language and book that introduced designers to computational thinking. Maeda's students Casey Reas and Ben Fry took this further by creating Processing in 2001. Processing was built on Java but stripped away the boilerplate. A programmer could write ellipse(50, 50, 80, 80) and see a circle appear instantly. This immediacy was the key innovation. It made programming feel like drawing.

In 2014, Lauren McCarthy created p5.js, a JavaScript port of Processing that runs in web browsers. p5.js made creative coding accessible to anyone with a browser and an internet connection, no installation required. It became the standard teaching tool for creative coding in art schools worldwide. The p5.js community has grown to include thousands of contributors, and the Processing Foundation, established in 2012, supports education and outreach programs that have introduced creative coding to underrepresented communities.

The 2020s brought two major developments. First, the integration of machine learning into creative coding environments. Libraries like ml5.js, built on top of TensorFlow.js, brought pose detection, image classification, and text generation into p5.js sketches. Second, the rise of AI-assisted coding tools that can generate p5.js code from natural language descriptions, lowering the barrier further. A 2024 research project called SpellBurst used large language models to produce p5.js code from conversational text and audio instructions, letting artists describe what they wanted and receiving runnable code in return.

Key Artists and Practitioners

Casey Reas (b. 1972)

Reas is co-creator of Processing and one of the most influential figures in creative coding. His Process series (2004-present) uses software to simulate systems of elements that move, collide, and form relationships according to defined rules. The works exist as real-time software installations and as prints captured from specific moments. Reas's practice bridges conceptual art and computational art, and his work is held in collections at the San Francisco Museum of Modern Art and the Victoria and Albert Museum.

Daniel Rozin (b. 1961)

Rozin creates interactive mirrors and installations using creative coding and physical computing. His Wooden Mirror (1999) uses 830 wooden pixels controlled by servomotors to reflect the viewer's image in real time. Trash Mirror (2001) does the same with 500 pieces of found debris. Rozin's work demonstrates how creative coding extends beyond screens into physical space, combining software with sculpture and engineering.

Rafaël Rozendaal (b. 1983)

Rozendaal creates websites as artworks. Each of his pieces, like IntoTime.com (2011) and IfNoYes.com (2011), is a single web page running interactive visual code. He sells these works as unique objects, transferring domain ownership to the collector. Rozendaal's practice shows how creative coding can produce art that exists only online, accessible to anyone but owned by one person.

Lauren McCarthy (b. 1987)

McCarthy created p5.js and has produced works that explore the social dimensions of creative coding. Her LAUREN project (2017) is a performance where she acts as a human Amazon Alexa, watching people through cameras in their homes and responding to their requests. The work uses creative coding tools but inverts the expected relationship between human and system.

Refik Anadol (b. 1985)

Anadol uses creative coding at architectural scale. His Unsupervised (2022, MoMA) processes 138,151 pieces from the museum's collection through a machine learning model and projects the results onto a 24-foot LED wall. The work is real-time generative software, not a pre-rendered video. Anadol's studio writes custom code for each project, and his practice represents the convergence of creative coding, data art, and generative art. He is opening Dataland in 2025, described as the world's first museum of AI arts, in the Grand LA complex designed by Frank Gehry. Read more at EVA London 2025.

Tools and Languages

Processing and p5.js remain the foundational tools of creative coding, but the ecosystem has expanded. openFrameworks, created by Zach Lieberman and collaborators in 2005, is a C++ library for creative coding that offers higher performance than Processing for computationally intensive work. TouchDesigner, developed by Derivative, is a node-based visual programming environment used for interactive installations and projection mapping. Max/MSP, from Cycling '74, is used for audio and multimedia creative coding. Shader programming in GLSL allows creative coders to write programs that run directly on the GPU, enabling real-time graphics at high resolution.

The choice of tool often determines the kind of work a creative coder makes. Processing and p5.js are suited for screen-based 2D and 3D graphics. openFrameworks is preferred for installations that require computer vision or hardware integration. TouchDesigner is standard for live visual performance and projection work. Max/MSP dominates sound-based creative coding. Many artists work across multiple tools, using each for what it does best.

Creative Coding Today

Creative coding in 2026 is a global practice taught in art schools, design programs, and computer science departments. The Processing Foundation's educational initiatives have reached tens of thousands of students. Platforms like OpenProcessing host thousands of shared sketches, creating an open repository of creative code that anyone can study, modify, and learn from.

The integration of AI tools has changed how creative coders work. Some artists use AI to generate code, describing visual ideas in natural language and receiving runnable p5.js in return. Others use machine learning models as components within their code, running pose detection, style transfer, or text generation inside their sketches. The boundary between creative coding and AI art is blurring, but the core principle remains: the artist writes the code, and the code makes the art.

See Creative Coding in Person

Creative coding is best experienced live, as interactive installations or real-time generative works. Look for Daniel Rozin's mechanical mirrors at bitforms gallery in New York. Visit Refik Anadol's Unsupervised at MoMA, where the generative software runs continuously. For online work, browse Rafaël Rozendaal's portfolio of website artworks, each of which is a living piece of creative code running in your browser.

For more on the broader field, read our entries on generative art, digital art, and procedural generation, or explore our blog post on how to read a painting to learn more about analyzing visual art across different mediums.