Introduction to Generative Art
with Processing
creative tech
What is Processing?
Open Source Programming Language
Made specifically for Visual Designers
Java Application, simplified syntax
Developed at MIT Media Labs by Casey
Reas and Benjamin Fry in 2001
Learn Processing
Processing:A Programming
Handbook for Visual
Designers and Artists, 2nd
Edition
by Casey Reas and Ben Fry
Getting Started with
Processing
(O’Reilly)
by Casey Reas and Ben Fry
Generative Art: A practical
guide using processing
by Matt Pearson
Learn Processing
The Nature of Code: Simulating
Natural Systems with Processing
by Daniel Shiffman
http://processing.org
Diverse Outputs
Stills
Animations
Image Manipulation
Performance Art
Now we will make some art
Installation
processing.org/download/?processing
Version 2.2.1
Unzip
Open It
Hello, World
void setup() {
}
void draw() {
}
Try running it, by clicking on the play button in
the top left
void setup() {
size(600,600);
background(#000000)
}
void draw() {
}
Try running it. You should now have a bigger
black box
void setup() {
size(600,600);
background(#000000);
}
void draw() {
ellipse(100, 100, 50, 50);
fill(#FF4067);
}
"Hello, world” in the form of a pink circle
Important: we are working in a coordinate space
100
100
600
600
...
ellipse(100, 100, 50, 50);
...
void setup() {
size(600,600);
background(#000000);
}
void draw() {
for (int i=100; i<600; i=i+100) {
ellipse( i, 100, 50, 50);
fill(#FF4067);
}
}
Now that we know it’s a grid, we can exploit that and
make our art cooler. Do this by looping over the x-
coordinate.
void setup() {
size(600,600);
background(#000000);
}
void draw() {
for (int i=100; i<600; i=i+100) {
ellipse( i, 100, 50, 50);
fill(#FF4067);
}
for (int i=100; i<600; i=i+100) {
ellipse (100, i, 50, 50);
fill(#FF4067);
}
}
Loop?
This means that we do something to a variable in our function repeatedly, for
however many times we tell it to do it.
for (int i=100; i<600; i=i+100) {
ellipse(i, 100, 50, 50);
}
initial value
when to stop
interval
The program generates:
ellipse(100, 100, 50, 50), ellipse(200, 100, 50, 50),
ellipse(300, 100, 50, 50), ellipse(400, 100, 50, 50),
ellipse(500, 100, 50, 50)
void setup() {
size(600,600);
background(#000000);
}
void draw() {
for (int i=100; i<600; i=i+100) {
for (int j=100; j<600; j=j+100) {
ellipse( i, j, 50, 50);
fill(#FF4067);
}
}
}
void setup() {
size(600,600);
background(#000000);
}
void draw() {
for (int i=100; i<600; i=i+100) {
for (int j=100; j<600; j=j+100) {
ellipse( i, j, 50, 50);
fill(#FF4067);
}
}
}
MouseX, MouseY
Branding with data
Questions?

Introduction to Generative Art with Processing