view quicktime movie (~750K)

Mobile represents an implementation of the
Conditional Change Feedback model which
is discussed in detail below.

In order to create new forms of computation, it is essential that one understand computation in its most basic form. While there are many minimalist models of computation which are all equivalent in power, one specific model has been developed for use in my thesis. This system, which I created, is called the Conditional Change Feedback model. As the name makes clear, it rests on three fundamental processes, which in coordination manifest computation.

At the heart of computation is the ability to make a change in a material. One may think of markings on a cave wall, or symbols on a tape, or charge in a capacitor. The material is unimportant. The importance is in the process of making a record, and it is the reason that all programming languages have some notion of writing or storage or output. For simplicity of discussion and relevance to common notions, assume that these records are discrete or symbolic. Finally, the records must be at least semi-permanent, such that they may be read back or input at some later point in time.

The idea of reading relates to the second fundamental of computation: the conditional. Although there are several models of conditionality, one that is both expressive and simple is the matching model. This model is most easily represented by a two column table, with inputs on the left side and outputs on the right. In the left column are a set of distinct possible records handled by the computation. When a record is read into the system, it is compared against the items of the left column. If one matches, then the system causes the record across from the match (in the right column) to be written to the material. That is, another change is made based on the initial change.

To complete the notion of computation, one must let the result of the conditional change become the next input to the conditional changer. When one connects the end back to the beginning, one is allowing feedback to occur. While feedback is often hidden, it should not be underestimated. Feedback is the invisible engine which pushes all computation through time,and it is the driving force behind the execution of a programming. Without feedback, one line of code could never follow another, and a jump-to could never get off the ground. The full process of conditional change made perpetual through feedback is the essence of computation.

jared schiffman

aesthetics & computation group
mit media lab