Index / Mediation / Processing / HairyRed / Notes on Kinetic Sculpture / Tissue / Seed / Living_Surfaces / D-Cell
Processing _ALPHA_

An electronic sketchbook and context for learning fundamentals of computer programming within the context of electronic arts. Processing is an open project initiated by Ben Fry and Casey Reas. It is currently developed in the Aesthetics and Computation Group at the MIT Media Lab and at the Interaction Design Institute Ivrea. More information is available at

Processing is a tool for learning basic concepts that will lead to the creation of future media and tools. The strength of Processing as a tool for education lies in its simplicity, generality, and extensibility. Its simplicity makes it easy to use, thus making it possible to create basic interaction within a short time period. Its generality makes it an ideal tool for conveying many concepts: vector and raster drawing, procedural and object oriented programming, image processing, parameterized form, interaction with standard input devices and custom serial devices, 2D and 3D graphics. It is extensible in the sense that it may be used at multiple levels of difficulty and the basic software library may be extended in time as people develop and share new functions.

Processing is not a commercial production tool, but is specifically for learning and sketching. The software is currently in a pre-release stage, but bug fixes are being made as it heads towards a more complete "1.0" release. Processing will be free to download and use.

Below follows some simple example programs:


Top. Processing workshop at Hyperwerk, Basel

Bottom. Processing workshop at Les Ateliers ENSCI, Paris
for(int i=40; i<80; i=i+5) { 
  line(30, i, 80, i); 
stroke(255, 102, 0); 
line(30, 20, 80, 5); 
line(80, 75, 30, 75); 
bezier(30, 20, 80, 5, 80, 75, 30, 75); 
colorMode(HSB, 100); 
for(int i=0; i<100; i++) { 
  for(int j=0; j<100; j++) { 
    stroke(i, j, 100); 
    point(i, j); 
BImage b; // declare variable "b" of type BImage 
b = loadImage("basel.gif"); 
image(b, 30, 20, 55, 55); 
for(int i=0; i<100; i++) { 
  float r = random(-50, 50); 
  line(50, i, 50+r, i); 
background(102, 0, 0);
translate(58, 48, 0); 

Top. An image from Valence, software written in Processing

Bottom. An image from Tissue, software written in Processing

Processing is written in Java and enables the creation of Java Applications and Applets within a carefully designed set of constraints. It uses a 2D/3D Java rendering API that is a cross between postscript-style imaging in 2D and 3D rendering with OpenGL. Through developing Processing as a solid and general technical platform, we hope teaching the concepts of interaction and computer programming will focus more on the qualities and content of medium, rather than the technology.

The origins of the Processing lay in the Design By Numbers software developed by John Maeda and his students in the Aesthetics and Computation Group at the MIT Media Laboratory.

To date, Processing has been used as an education platform at the Massachusetts Institute of Technology (Cambridge, MA), the Interaction Design Institute Ivrea (Ivrea, Italy), Hyperwerk (Basel, Switzerland), Parsons (New York) and Les Ateliers ENSCI (Paris).



© 2002, 2001 | Casey Reas