Darb-i shrine, Iran
Women of Gee’s Bend sewing a quilt, 2005, Birmingham, Alabama. Photograph by Andre Natta.
1979 quilt by Lucy Mingo of Gee’s Bend, Alabama. Photograph by Bill Volckening.
Sol Lewitt at Pompidou Center
Red, Yellow, Blue: Sol LeWitt Wall Drawing 797. Students working on drawing. University of Hartford, Lincoln Theater. Photograph by Joe Fig.
Sol Lewitt at Pompidou Center, Photograph by Bava Alcide57.
Wall Drawing #815. “thirty randomly placed points marked by nails, connected to one another via white string, all on a black wall.” source: Krakow Witkin Gallery
Conversation Piece, Yoko Ono, from Grapefruit
Painting to be Constructed in Your Head, Yoko Ono, from Grapefruit
Desmond Paul Henry, Drawing Machine, 1960
Henry invented the Henry Drawing Machine in 1960
Most artists working with computers were engineers and scientists because computers were generally in scientific research labs.
Bell Labs was an early supporter of artists experimenting and working with technology. These include Claude Shannon, Ken Knowlton, Leon Harmon, Lillian Schwartz, Charles Csuri, A. Michael Noll, Edward Zajec, and Billy Klüver, an engineer who also collaborated with Robert Rauschenberg to form Experiments in Art and Technology (EAT) at the Los Angeles County Museum of Art.
Bell Labs supported artists to work with their computers after hours. They supported ‘9 Evenings: Theatre and Engineering’ organised by EAT in 1966. 10 contemporary artists worked with engineers and scientists from Bell Labs to host performances using new technology.
Michael Noll was invited to work at Bell Telephone Laboratories in New Jersey in 1962. He attempted to imitate paints by Piet Mondrian, Bridget Riley and others.
Mondrian
Noll
Noll
Early computers did not necessarily have displays. One common output was a plotter, which used vector coordinates to direct a drawing pen.
Frieder Nake, ‘Hommage à Paul Klee 13/9/65 Nr.2’, 1965. Victoria and Albert Museum.
Lillian Schwartz working at Bell Labs
early work by Lillian Schwartz
Manfred
In 1968, the Institute of Contemporary Arts (ICA) in London hosted one of the most influential early exhibitions of computer art called Cybernetic Serendipity. The exhibition included many of whom often regarded as the first digital artists, Nam June Paik, Frieder Nake, Leslie Mezei, Georg Nees, A. Michael Noll, John Whitney, and Charles Csuri.
In the 1980s computers came into the home. Artists began having access to graphical systems.
Tools
Warhol
Warhol’s computer art
AARON
Reas
Reas
With the rise of the internet in the 90s and hyper-growth in the 2000s and 2010s there has been a rise of internet art or projects that live online.
We’ll cover some of that expansive history later in the semester.
Working with p5.js and javascript lets us engage with the web as a platform/medium to display our work.
We’ll cover early net art as well as recent developments.
Here’s one of my favorite early internet-based artworks, a collaborative project between Auriea Harvey and Michaël Samyn, skinonskinonskin, a kind of digital love letter art project on the web.
Okay, you’ve now heard the name p5.js, but what is it?
p5.js is a JavaScript library, that means it makes it easier to code JavaScript, the language of the web. It starts with the original goal of Processing, the programming language created by Ben Fry and Casey Reas to make coding accessible for artists, designers, educators and beginners, and reinterprets this for today’s web.
Using the original metaphor of a software sketchbook, p5.js has a full set of drawing functionality. However, you’re not limited to your drawing canvas, you can think of your whole browser page as your sketch. For this, p5.js has addon libraries that make it easy to interact with text, input, video, webcams, and sound.
The online editor is a basic code editing toolkit that allows you to write code, run code, visualize the output, and save code.
Main components of the editor:
Additional features:
tidy code
How do we tell the computer where to draw on the screen? We use a coordinate system.
In middle and high school, we created graphs with a X and Y axis. The point 0,0 was in the center of the page.
coordinates
In p5.js, 0,0 is at the top left of our window. As we move right, X increases. As we move down, Y increases. The top left point is 0,0.
Setup runs once at the onset of your program. Everything that we want to run once at the beginning of our program goes between the { and } curly brackets of our setup()
function.
We will be drawing to a digital canvas, which has a width and height that we specify. These are defined in pixels.
function setup() {
createCanvas(600,800);
}
This line tells p5js to create a canvas 600 pixels wide by 800 pixels high. The lines of our program generally end with a semicolon.
The draw function starts immediately after the code in setup()
runs, and it happens in a loop. The entire draw()
loop runs approximately 60 times a second, though this can vary as it’s dependent on your web browser speed and performance. The lines of code generally are executed one after the other. At the bottom of the draw loop contained in the { and } brackets it jumps back to the beginning of the draw loop and continues to run again, infinitely, until you click stop or close the web page.
Create a more complex shape using the beginShape()
and endShape()
functions. Reference page.
p5.js uses the concept of a software sketchbook, and makes it easy to write code, test (by hitting play), and adding more. This is known as an iterative process. It is a normal process of coding to start simple and and continually add to and refine your work.
A page’s background monochrome color can be specified like so:
background(120);
Color runs from 0 (black) up to 255 (white). So there are 256 shapes of gray from black to white.
A light pink rectangle background:
background(100, 71, 76);
The first number is red value. The second is green. The third is blue.
How would you make a light blue background?
background(0,0,200);
Before a shape, you can specify a shade of gray (one number from 0-255) or a color (three values r, g and b) to fill it with:
fill(0,180,0);
A light green fill color.
How do you know what commands are available in p5.js?
The Reference is the complete list of available p5.js commands. It is broken down by category, and there is also a search feature. Use it to learn how to properly use a particular command.
We will use the reference so much in this class that it is recommended you consider adding it to your bookmarks bar.
A “comment” is a note inside your software. It’s a note to yourself and anyone who will look at your code in the future. When the web browser is running your code, it will skip trying to run as software any line that is a comment.
The clearer your comments, the easier it will be for you to understand your code when you open it again in the future.
To make a comment, put two forward slash like this //
at the beginning of the line.
//This is a comment
You can also do multiple line comments. Note: I rarely use this.
/* this
is a multiple line
comment
*/
When you are testing your code, you can put two forward slashes in front of a line of code to turn it off, as if it’s actually a comment meant to be ignored. We may do this often as we try to figure out exactly where something is breaking our software.
The console tells you when you made a mistake. It points out the line where it thinks the mistake was made.
We also use the print()
command in our code to print things in the console for use in debugging. Stay tuned for more info on this in our next class.
Read the chapter “Program Art or Be Programmed” from New Art Science Affinities (see PDF on Brightspace).
Take your time to read through the chapter. Remember our goal is to immerse in the world of art and code. Don’t rush through it. Browse. Get as comfortable as you can, and really look through and see what catches your eye. Your goal is to find something that you’re curious about. Then pick an artwork from the book. You can also do some additional research and type the artist’s name into a search engine. Visit the artist’s website to find more examples of their more recent work. Spend time researching a piece that you find interesting. Don’t pick the first thing you come across. Take your time. Write a short post about the work. Shoot for about half a page. Write in complete thoughts and for an educated reader, but someone not familiar with the work. How was it made? What is the concept? What do you find interesting in the work? What is the artist’s goal? Are there questions you have about the work? Are there areas that could be improved upon?
Make sure you include the artist’s name, the artwork’s name, and if possible, a link to find out more on the artist’s website.
Select a painting by a famous artist and recreate it in code using primitives (shapes such as point, line, rectangles, ellipses, triangles). Do not choose Mondrian or another geometric abstract artist. This is an assignment to practice your new coding skills. Read up on how to use beginShape as it will help with more complex shapes than just the built-in circle, ellipse, rectangle, square, line, etc.
Make sure you are signed into the code editor and hit save when you are working. When you are finished you will post a link to your completed working code.
Example by Joe McKay. Assignment by Paul Thayer.
Good art choices: landscapes, Vermeer, Modigliani, Picasso, still-lifes, portraits
Some optional references in case you are looking for more info.