this is a transcription of the chain casey built to generate the animations for his show at bitforms. pick a link in this chain and route output from your neighbor on the left to input for your neighbor on the left.
Process Compendium C.E.B. Reas (2005 - present) Updated 26 August 2007 (http://reas.com) The most important element of Process [#] is the text. The text is Process [#] described in English, written with the intention of translating its content into the dynamic medium of software. The software interpretation is secondary to the text. The English 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 by [NAME] from English into [LANGUAGE]. Future Process works are open to alternate interpretations and implementations into diverse programming languages. 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 purchased and the software should be rewritten for the new hardware to take advantage of the technical advancements since [YEAR]. // ------------ The Elements, Forms, and Behaviors referenced within Process 4 to N 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 2 + Behavior 3 Element 5: Form 2 + Behavior 1 + Behavior 5 + Behavior 6 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 opposing edge Behavior 6: While touching another, orient toward its direction Behavior 6: ... // ------------ 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.122 // ------------ 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.122 // ------------ 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 white and largest as black, with varying grays between. Implemented by C.E.B. Reas Fall 2006 Processing v.122 // ------------ 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 largest as white, with varying grays between. Implemented by C.E.B. Reas Fall 2006 Processing v.122 // ------------ 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.122 // ------------ Process 11 A rectangular surface densely filled with instances of Element 2, each with a different size, speed, and direction. to 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 which 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 // ------------ 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 // ------------ Process 8 A rectangular surface densely filled with instances of Element 2, each with a different size and speed. 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 // ------------ 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 // ------------ 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 which 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 // ------------ 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. If two small Elements are touching, draw a gray line between their centers. Implemented by C.E.B. Reas Winter 2005 C++/OpenGL // ------------ Process 4 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. Implemented by C.E.B. Reas Winter 2005 C++/OpenGL