Process Compendium
C.E.B. Reas (2004 - present)
Updated 24 February 2008
//
# = 18
NAME = C.E.B. Reas
LANGUAGE = Processing
YEAR = 2008
#SOFTWARE = 3
The most important element of Process [#] is the text. The text is the Process described in English, written with the intention of translating its content into software. The software interpretation is secondary to the text.
The text leaves many decisions open to be determined by a programmer. The decisions must be made using personal judgment, thus the text is interpreted through the act of translating the Process from English into a machine language. Process [#] was translated in [#SOFTWARE] different ways by [NAME] into the [LANGUAGE] language in [YEAR].
The hardware running this software Process is inconsequential. In time, the hardware will inevitably fail. The current hardware was selected to be as robust as is possible with current technology, but contemporary electronics are fragile. If an element of the hardware fails, it can be replaced without diminishing the work. Eventually, compatible components will no longer be available because computing technologies are continually changing. When this event inevitably occurs, a new hardware system will need to be acquired and the software should be rewritten for the new hardware to take advantage of the technical advancements since the original interpretation.
//
The Elements, Forms, and Behaviors referenced within Process 4 to 18 are defined in the Library:
LIBRARY
Element 1: Form 1 + Behavior 1 + Behavior 2 + Behavior 3 + Behavior 4
Element 2: Form 1 + Behavior 1 + Behavior 5
Element 3: Form 2 + Behavior 1 + Behavior 3 + Behavior 5
Element 4: Form 1 + Behavior 1 + Behavior 3 + Behavior 5
Element 5: Form 2 + Behavior 1 + Behavior 5 + Behavior 6 + Behavior 7
Element 6: ...
Form 1: Circle
Form 2: Line
Form 3: ...
Behavior 1: Constant linear motion
Behavior 2: Constrain to surface
Behavior 3: While touching another, change direction
Behavior 4: While touching another, move away from its center
Behavior 5: After moving off the surface, enter from the opposite edge
Behavior 6: While touching another, orient toward its direction
Behavior 7: Deviate from the current direction
Behavior 8: ...
// ------------
Process 18
A rectangular surface filled with instances of Element 5, each with a different size and gray value. Draw a quadrilateral connecting the endpoints of each pair of Elements that are touching. Increase the opacity of the quadrilateral while the Elements are touching.
Implemented by C.E.B. Reas
Summer 2007 / Winter 2008
Processing v.125 / v.135
// ------------
Process 17
To come...
// ------------
Process 16
A rectangular surface filled with instances of Element 3, each with a different size and gray value. Draw a small, transparent circle at the midpoint of each Element. Increase the circle's size and opacity while it is touching another element and decrease these values while it is not.
Implemented by C.E.B. Reas
Fall 2006
Processing v.121
// ------------
Process 15
A rectangular surface filled with instances of Element 3, each with a different size and gray value. Draw a small, transparent circle at the midpoint of each Element. Increase the circle's opacity while it is touching another element and decrease this value while it is not.
Implemented by C.E.B. Reas
Fall 2006
Processing v.121
// ------------
Process 14
A rectangular surface densely filled with instances of Element 4, each with a different size and direction. Display the intersections by drawing a circle at each point of contact. Set the size of each circle relative to the distance between the centers of the overlapping Elements. Draw the smallest possible circle as black and the largest as white, with varying grays between.
Implemented by C.E.B. Reas
Fall 2006 / Winter 2008
Processing v.122 / v.135
// ------------
Process 13
A rectangular surface densely filled with instances of Element 2, each with a different size and speed. Set the direction of each Element to create horizontal motion. Display the intersections by drawing a circle at each point of contact. Set the size of each circle relative to the distance between the centers of the overlapping Elements. Draw the smallest possible circle as black and the largest as white, with varying grays between.
Implemented by C.E.B. Reas
Fall 2006
Processing v.121
// ------------
Process 12
A rectangular surface filled with instances of Element 3, each with a different size and gray value. Draw a dot at the center of each line. Draw a quadrilateral connecting the endpoints of each pair of Elements that are touching. Increase the opacity of the dot and quadrilateral while the Elements are touching.
Implemented by C.E.B. Reas
Fall 2006
Processing v.121
// ------------
Process 11
A rectangular surface densely filled with instances of Element 2, each with a different size, speed, and direction. Display the intersections by drawing a circle at each point of contact. Set the size of one circle to be relative to the distance between the centers of the overlapping Elements and make the other circle tiny. Draw the smallest possible circle as black and largest as white, with varying grays between.
Implemented by C.E.B. Reas
Summer/Fall 2006
Processing v.115
// ------------
Process 10
Position a circle at the center of a rectangular surface. Set its diameter to larger than the longest edge. Set the center of the circle as the origin for a large group of Element 1. When each Element moves beyond the edge of the circle, move its position back to the origin. Draw a line from the centers of Elements that are touching. Set the value of the shortest possible line to white and the longest to black, with varying grays between.
Implemented by C.E.B. Reas
Fall 2005
C++/OpenGL, Processing v.115
// ------------
Process 9
Position three large circles on a rectangular surface. Set the center of each circle as the origin for a large group of Element 2. When each Element moves beyond the edge of the circle, move its position back to the origin. Display the intersections by drawing a circle at each point of contact. Set the size of each circle relative to the distance between the centers of the overlapping Elements. Draw the smallest possible circle as black and largest as white, with varying grays between.
Implemented by C.E.B. Reas
Fall 2005
C++/OpenGL, Processing v.115
// ------------
Process 8
A rectangular surface densely filled with instances of Element 2, each with a different size, speed, and direction. Display the intersections by drawing a circle at each point of contact. Set the size of each circle relative to the distance between the centers of the overlapping Elements. Draw the smallest possible circle as black and largest as white, with varying grays between.
Implemented by C.E.B. Reas
Summer 2005
C++/OpenGL, Processing v.115
// ------------
Process 7
A rectangular surface filled with varying sizes of Element 1. Draw a line from the centers of Elements which are touching. Set the value of the shortest possible line to black and the longest to white, with varying grays between. Draw the perimeter of each Element as a white line and the center as a black dot.
Implemented by C.E.B. Reas
Summer 2005
C++/OpenGL, Processing v.115
// ------------
Process 6
Position three large circles on a rectangular surface. Set the center of each circle as the origin for a large group of Element 1. When each Element moves beyond the edge of the circle, move its position back to the origin. Draw a line from the centers of Elements that are touching. Set the value of the shortest possible line to white and the longest to black, with varying grays between.
Implemented by C.E.B. Reas
Winter 2005
C++/OpenGL, Processing v.115
// ------------
Process 5
A rectangular surface filled with varying sizes of Element 1. Draw the perimeter of each Element as a white line and the center as a black dot. Draw a gray line from the centers of Elements that are touching.
Implemented by C.E.B. Reas
Winter 2005
C++/OpenGL, Processing v.115
// ------------
Process 4
A rectangular surface filled with varying sizes of Element 1. Draw a line from the centers of Elements that are touching. Set the value of the shortest possible line to black and the longest to white, with varying grays between.
Implemented by C.E.B. Reas
Winter 2005
C++/OpenGL, Processing v.115
// ------------
Process 1-3 are named Structure 1-3.
// ------------
Structure 3
A surface filled with one hundred medium to small sized circles. Each circle has a different size and direction, but moves at the same slow rate.
Display:
A. The instantaneous intersections of the circles
B. The aggregate intersections of the circles
Implemented by C.E.B. Reas
8 March 2004
Processing v.68
// ------------
Structure 2
A grid of points in the top half of the surface. Each point moves downward and returns to the top when it falls off the bottom edge. Beginning in the upper-left, each row and column moves faster than the previous one. The speeds combine so that the point in the upper-left is the slowest and the point in the lower-right is the fastest. Copy and flip the grid across a central vertical axis and display simultaneously.
Implemented by C.E.B. Reas
16 April 2004
Processing v.68
// ------------
Structure 1
Every possible pairing of these sixteen curves.
Use the additive numeric values from each curve to set the value of a series of horizontal lines from values of white to black.
Implemented by C.E.B. Reas
10 April 2004
Processing v.68
// ------------
// ------------
// ------------
// ------------
// ------------
Each Process may have one or more of the following manifestations:
Process # (Software #)
Process # (Image #)
Process # (Diagram #)
Process # (Drawing #)
Process # (Audio #)
Process # (Object #)