Scriptedbypurpose
explicit and scripted processes within designC.E.B. Reas
Process 6 (Image4 & 6) / 2005
C.E.B. Reas is an artist who lives and works in Los Angeles. He focuses on defining processes and translating them into images. Reas is an associate professor in the department of Design | Media Arts at the University of California, Los Angeles. With Ben Fry, he is the co-founder of Processing.org, a programming language and environment for the visual arts. He’s the co-author of Processing: A Programming Handbook for Visual Designers and Artists, from MIT Press.
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].
TI installation in Telic gallery / 2004
Aggregate layers of abstraction remove every trace of systemic complexity, revealing a living surface. Structured form emerges from the results of thousands of local interactions between autonomous elements.
Reas’s software and images are derived from short text instructions explaining processes which define networks. The instructions are expressed in different media including natural language, machine code, computer simulations, and static images. Each translation reveals a different perspective on the process and combines with the others to form a more complete representation. He employs the paradox in the qualitative nature of human perception and the quantitative rules which define digital culture. Relations are created between evolved natural systems and engineered synthetic systems. Organic form emerges from precise mechanical structures. Strict minimal rules are tempered with intuition to form dense kinetic surfaces.
Process 4 / 2005
Process 7 (Software 1) is a software implementation of the Process 7 instructions: A rectangular surface filled with varying sizes of Element 1. Draw a line from the centers of two Elements when they are touching. Set the value of the shortest 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.
…/…
I create two types of work. I make conceptually-driven instructions that define processes and the related software interpretations. This work is informed by science and philosophy (systems theory, biology, artificial life, emergence, complex systems). It’s an extension of conceptual art; it is focused on networks and structure. This type of work is created without reference to materiality. The dimension, medium, and ratio of presentation is inconsequential, but I write software to demonstrate the process. I also make perceptually-driven works that build on the foundation of the first type of work. These works are highly dependent on how they are shown (room conditions, frame specifications, etc.) They are often built or customized for a specific room and they are meant to engage the body through materials and space. My performed visuals for music also fit into this category. They are highly choreographed for a specific piece of music.
…/…
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