Professor Casey Reas, TA Markus Bonauer

  Index
  Schedule
Exercises
  Syllabus
Introduction
Workshop
A Form/Map » Solutions
B Motion/Communication » Solutions
C Mouse/Play » Solutions
D Image/Transformation » Solutions
E Drawing/Gesture » Solutions
F Multiples/Autonomy » Solutions
G Keyboard/Mouse/Interface » Solutions
H */* » Solutions


Notes:
Before touching the keyboard, always sketch ideas on paper first
Work quickly and iteratively
Write a few lines at a time and continuously test the result



Introduction

Boundary:
Create a two dimensional composition of lines OR circles with at least one intersection per element. You are permitted to use any programming knowledge you have to complete this task, but only the programming structures discussed in the first day of class are necessary.




Top

Workshop


All exercises must be 200x200 pixels and grayscale. Be certain to draw your idea(s) before you program it!


A00 Draw three lines.
A01 Draw five lines.
A02 Draw three ellipses.
   
A03 Control the position of two lines with one variable.
A04 Control the position and size of two lines with two variables.
A05 Control the properties of two shapes with two variables.
   
A06 Create a simple, regular pattern with six lines.
A07 Program your pattern from Exercise A09 using while().
A08 Draw a layered form with two "for" structures.
   
A09 Redo Exercise A04 using mouseX and mouseY as the variables.
A10 Draw two visual elements that each move in relation to the mouse in a different way.
A11 Draw three visual elements that each move in relation to the mouse in a different way.
 
A12 Move a visual element across the screen. When it disappears off the edge, move it back into the frame.
A13 Draw a visual element that moves in relation to the mouse, but with a different relation when the mouse is pressed.
A14 Using if() and else(), make the mouse perform different actions when in different parts of the window.




Top

Form/Map
(Due 22 April)

In your sketchbook draw a series of "maps". Refine one and implement it as a static program. Be prepared to show your sketches and your work-in-progress in class on 20 April. Remember, you now have an understanding of the following elements: shape, color, variables, iteration, and functions.

The exercise must be uploaded to the course database and working through the website by the beginning of the critique. Log in to the class website here. Markus will provide everyone with a username and password.




Top

Motion/Communication
(Due 29 April)

Develop a 400x400 pixel dynamic form/composition/landscape/ecosystem/organism (pick one) which transitions from "cheap" to "expensive" as the mouse moves from left to right across the display window. The image should be at its maximum "cheap" when mouseX == 0 and its maximum "expensive" with mouseX == 400. Modify a subset of the visual variables (shape, size, color, texture, orientation) in addition to variables of motion (velocity, rhythm, direction) to communicate your idea. The image must always be in continuous motion and the qualities of the movement and visual form will change with the horizontal movement of the mouse (use the mouseX variable as the only external input). Be prepared to show sketches of at least ten concepts in class Tuesday, 27 April. The exercise must be uploaded to the course database and working through the website by the beginning of the critique. Log in to the class website here.

Use the following program as the basis of your work:

// Template for Exercise B
// Basic template displaying the position of the
// cursor on the lower border of the window 
	  
float mx = 0.0; 
	  
void setup() { 
  size(400, 400); 
  cursor(CROSS); 
} 
	  
void loop() { 
  background(204); 
  
  // Set the location of marker 
  float dif = mouseX - mx; 
  if(abs(dif) > 1.0) { 
    mx = mx + dif/8.0; 
  } 
  // Keep the marker on the screen 
  mx = constrain(mx, 1, width-1); 
  noStroke();
   
  // Draw bottom rectangle 
  fill(255); 
  rect(0, height-5, width, 5); 
		
  // Draw bottom positional marker 
  fill(204, 102, 0); 
  rect(mx-2, height-5, 4, 5); 
}





Top

Mouse/Play
(Due 6 May)

Develop a 400x400 pixel event/game which lasts 10 seconds. Begin with a screen explaining the event/game. Click the screen to begin. At the end of 10 seconds, display a status screen and give the player the option to experience the event/game again. The event/game must respond to data from the mouse or keyboard, but not both.

I've provided a template (below) to use as a starting point, but you are free to write your own template following the sequence stated above. A goal of this exercise is to use the mouse in an unexpected way. Write a short statement (5-10 sentences) about the concept and execution of your work as a comment at the top of the code.

Be prepared to show sketches of at least five strong concepts in class Tuesday, 4 May as well as in-progress code. The exercise must be uploaded to the course database and working through the website by the beginning of the critique. Log in to the class website here.

Get the sketch template
Get image 1 (Must go in the sketch's "data" directory)
Get image 2 (Must go in the sketch's "data" directory)





Top

Image/Transformation
(Due 13 May)

Develop a 400x400 pixel responsive image, using the data from the mouse to "amplify" the following image:



Think carefully about the process of amplification and the many ways it applies to photography. Think carefully about the way the mouse can trigger amplification. Develop your software to provide maximum amplification with maximum control.

Explain your intent and details of execution in a short statement (5-10 sentences) as a comment at the top of the code.

Be prepared to show sketches of at least five strong concepts in class Tuesday, 11 May as well as in-progress code. The exercise must be uploaded to the course database and working through the website by the beginning of the critique. Log in to the class website here.





Top

Drawing/Gesture
(Due 20 May)

This week we'll take a break from building software which responds to the mouse/keyboard and we'll focus on creating generative/active work.

Develop a 400x400 pixel active drawing machine. Have a concrete idea about the type of images your machine will construct and be prepared to explain this idea during the critique. Build your project to have a large range in the quality of drawings generated and to have a large range of formal contrasts. It's very difficult to program representational images, so it's advised to focus on constructing abstract drawings. Do not use any random values, but instead rely on other sources of data such as curves, images, and numerical patterns as the generators of form and motion.

Explain your intent and details of execution in a short statement (5-10 sentences) as a comment at the top of the code.

Be prepared to show sketches of at least five strong concepts in class Tuesday, 18 May as well as in-progress code. The exercise must be uploaded to the course database and working through the website by the beginning of the critique. Log in to the class website here.





Top

Multiples/Autonomy
(Due 27 May)

This exercise is open for personal exploration. The only constraints are the size (400 x 400 pixels) and that it must use at least 20 instances of one object of your own creation. Work iteratively, gradually building complexity. As always, the exercise will be evaluated for its quality and originality of concept in addition to its execution.

Explain your intent and details of execution in a short statement (5-10 sentences) as a comment at the top of the code.

Be prepared to show sketches of at least five strong concepts in class Tuesday, 25 May as well as in-progress code. The exercise must be uploaded to the course database and working through the website by the beginning of the critique. Log in to the class website here.





Top

Keyboard/Mouse/Interface
(Due 3 June)

This week we depart from making projects on screen and work on a hybrid project integrating an object with software. Modify a mouse or keyboard to create a custom interface for one piece of your software from a previous exercise (you can modify the software, but use an existing software as the base). Create an interface that is specific and appropriate for your software than the generic keyboard and mouse configuration. Think about materials and the sense of touch. Can an interface be more sensual or aggressive through the selection of materials? If a mouse was covered in fur would you move it differently? Think about the scale of the body in relation the interface and the scale of the projected image.

The emphasis of the exercise is not to build a finely crafted object, but to make an iterative series of rough prototypes exploring potential alternative interfaces to your software. It should be robust enough to last through heavy use during class.

Be prepared to show sketches of at least five strong concepts in class Tuesday, 1 June and bring the object you will modify for your interface. We will meet in Kinross North room 212. This room will be available to use from 11am on Tuesday. I recommend getting started before class. There are basic electronics materials such wire and clippers, but bring other materials such as cardboard and cloth to use in construction.

Explain your intent and details of execution in a short statement (5-10 sentences) as a comment at the top of the code. The exercise must be uploaded to the course database and working through the website by the beginning of the critique. Begin your software with an image of your interface and click to run the software. Log in to the class website here.




Top

*/*
(Due 10 June)

...

   
 
  http://processing.org