Warhol Grids

From 1962–1964, Andy Warhol made 30 silkscreen printings of Marilyn Monroe, addressing themes like death and celebrity (Tate Museum of Modern Art, London). These colorful screenprints are emblematic of the Pop Art movement that Warhol is commonly associated with. Each screenprint was created from a simple black and white publicity photo of Marilyn used for the 1953 film Niagara. Warhol recalls the process:

“In August ’62, I started doing silkscreens. I wanted something stronger that gave more of an assembly line effect. With silkscreening you pick a photograph, blow it up, transfer it in glue onto silk, and then roll ink across it so the ink goes through the silk but not through the glue. That way you get the same image, slightly different each time. It was all so simple quick and chancy. I was thrilled with it. When Marilyn Monroe happened to die that month, I got the idea to make screens of her beautiful face—the first Marilyns.” (

These transformations were analog, and occured in physical space. Today, we can programmatically alter images in similar ways. Visit this WebExhibit about Andy Warhol’s Marilyn Prints and experiment with programmatically altering the publicity photo to create your own Marilyns.


Although you can programmatically alter pixels in any way that you wish, some operations are common enough that Processing has pre-built functions that use the graphics hardware in your computer to quickly carry out these image processing tasks. Consult the Processing documentation for filter() to see examples of each of these common built-in tasks.

Using the filter() function, alter an image with special effects to create a 2 × 2 Warhol Grid.

Example artifact:

Follow these steps to create your Warhol Grid:

  1. Find or create a square image.
  2. Using the Processing documentation as a guide, create a program that loads the image, filters three copies of it, and saves the result. Note: In order to apply the filter() method to one image rather than the whole window, you need to specify the image to apply the filter over (e.g., imgVar1.filter(INVERT)).
    • Include multiple filters on at least two of your variants.
      • One of your variants must apply a single filter multiple times with the use of a loop. For example, variant 1 above uses a loop to blur the image 100 times.
      • One of your variants must apply at least two different filters to the same image. In the example image, variant 3 includes a lengthy sequence of various filters.
    • Create a labeled Warhol Grid using Processing with the four images you have created. You may modify and use the following Processing sketch (WarholGridStarter) to create the grid. Ensure that the labels describe the effects accurately. Do not simply leave them labeled “variant x.”

Click to Download: WarholGridStarter


Submit the Processing sketch you develop, as well as a reference image.

Reference Starting Points