Tag Archives: generative art

Found Generative Art: Mac Launchpad Acting Up

Mac Launchpad acting up

This happened a few months ago and I have no idea what caused it, but one day my Mac’s Launchpad – you know, the hidden application launcher that makes your Mac look more like an iPhone – freaked out. The result was actually rather pretty. That’s it above, along with a picture below of what’s it’s basically supposed to look like. I consider it an example of found generative art (if there is such a thing.) Now I just have to figure out a way to do this kind of thing on purpose.

Bart's Launch Pad 1

Tagged , , , ,

Fun with Splines

I did these a little while ago in Processing but I love them. It’s just a grid of circles and splines that connect the centers at random. (These are Catmull-Rom splines, to be precise. They’re the same thing that I used for the projections in “Hello World.”) By clicking the arrow keys you can add more circles or more splines. If you want, you can download the Processing .PDE file here.

Tagged , , , ,

MMJ4M 06: Data Structures

Chapter 06 of VJ Manzo‘s book Max/MSP/Jitter for Music is about Data Structures. More specifically, it’s about generating random MIDI notes and using filters based on modalities or diagrams to select particular notes to play. The modalities are selected using VJ’s excellent modal object  from his EAMIR package and the diagrams are drawn by hand in the table object. Either way they provide interesting ways to create generative music that actually sounds like something. I think of this as having particular use in a movement-driven sequence in my upcoming dance piece, where we will follow the performers’ movements with a Kinect, a little bit like a full-body version of the NodeBeat app, which I love.


  • Max/MSP/Jitter for Music, Ch. 06: Data Structures (15 exercises)
  • Patches can be downloaded from http://db.tt/GBYLb0vY (Dead Link)
  • UPDATED LINK: Patches can now be downloaded from http://j.mp/1iy19Xl
Tagged , , , , , , ,

OpenProcessing.org Makes Life Beautiful

In my lovely class on creating generative art, we’re using the fabulous, free software Processing (see processing.org). It’s wonderful software but it does have two relatively minor disadvantages: (1) it needs to be installed on your computer; and (2) it’s not obvious how to share sketches with the class. Fortunately, several online versions of Processing have been created to solve these problems, such as HasCanvas, Studio Sketchpad, or Processing.js, among others. However, one that is particularly well suited for classroom use, because you can create “virtual classrooms” as well as code online, is OpenProcessing.org:

In fact, our class has its own darn virtual classroom there, creatively entitled “Generative Art (FA 3800), Fall 2011, University of Utah” (and here’s the link to it):

Anyhow, we love it because we can post our sketches there and because we can use it even when we’re away from our own computers.

[Note: it is also possible to install the desktop version of Processing to a flash drive and run it from there. I do this, also, as it gives me the links to all of the built-in reference files and syntax coloring.]

Tagged , , , , ,

Processing Makes Its First Appearance

I’m going to meet with my own class today, FA3800 Generative Art with Processing. (I wore one of my Processing shirts for the occasion.) But I also thought it would be nice to include a little bit of Processing right here. I just ran this code and looked for a pretty frame (as it changes constantly):

// Create variables for the attributes I want to randomize.
float r;                           // For the red component of the line color.
float g;                           // For the green component of the line color.
float b;                           // For the blue component of the line color.
float a;                           // For the alpha (transparency) component of the line color.
float topX;                        // For the X dimension of the top of the line.
float bottomX;                     // For the X dimension of the bottom of the line.

void setup() {
  size(300, 150);                  // Create a screen 960 pixels wide and 320 pixels tall.
  background(0, 64, 32);           // Puts in a dark green background.

void draw() {
  r = random(0, 64);               // Randomizes the red component with low values.
  g = random(64, 255);             // Randomizes the green component with mid to high values.
  b = random(32, 128);             // Randomizes the red component with mid values.
  a = random(0, 200);              // Randomizes the alpha component with low to highish values.
  strokeWeight(20);                // Make the lines 20 pixels wide.
  stroke(r, g, b, a);              // Inserts the variables in the color definition.
  topX = random(0, width);         // Gets a random X coordinate for the top of each line.
  bottomX = random(0, width);      // Gets a random X coordinate for the bottom of each line.
  line(topX, 0, bottomX, height);  // Draws each line from top to bottom with the random Xs.

Then I just ran it and waited for an opportune moment to take a screenshot. Here’s the result:


Tagged , , , , ,

The Motley [Processing] Crew

I met with my class this afternoon (FA3800: Generative Art with Processing). Lots of fun! There were 10 people in the class, although only 5 are currently registered (but I expect more by Thursday, I hope, I hope). We had a recent high school graduate, undergrads in political science and art, PhD student from Biomedical Informatics and Sociology, and professors from Visual Art, Film Studies, and Computer Science. This may make it the most diverse college class EVER. (Certainly for me.)

We spent time introducing ourselves and discussing what was meant by the term “Generative Art.” The basic idea, by the way, is that the artist creates a process or procedure that includes some unpredictable elements – either random variables or user interaction, for example – and that creates different results each time. This concept predates computers by a long shot, with examples from Mozart and John Cage/Merce Cunningham, among others. Anyhow, we then got into playing around with some Processing code, which I think was fun for everyone to do on the first day. We’ll get much more structured but, for now, it was nice to get our feet wet.

Now we just need 15 more people to show up on Thursday….

Update: Real life and attrition reared their ugly heads and I ended with only 4.5 people coming regularly and, of those, only two enrolled. Shoot. As such, the class was officially cancelled but I managed to get it rolled over to a supervised research course and have continued to teach it (except without being paid). Better luck next time!

Tagged , , , ,