www.aec.at  
Ars Electronica 2003
Festival-Website 2003
Back to:
Festival 1979-2007
 

 

Tissue


'Casey Reas Casey Reas

Tissue zeigt autonom agierende Softwaremaschinen. Jeder Strich im Bild beschreibt den Weg einer Maschine, den sie als Reaktion auf Reize in ihrer Umgebung zurückgelegt hat. Der Betrachter kann diese Stimuli am Bildschirm setzen und so mit der Software interagieren. Setzt man genügend solcher Reize, so entwickelt sich mit der Zeit aufgrund der raffinierten Beziehung zwischen der einfachen Eingabe und der fließenden visuellen Ausgabe ein Verständnis für das gesamte System.

Die Idee zu Tissue stammt aus dem Buch Vehicles, Experiments in Synthetic Psychology des Neuroanatomen Valentino Braitenberg. Braitenberg zählte im Rahmen seiner Tätigkeit Fasern in den Sehganglien von Fliegen und Synapsen in der Hirnkortex von Mäusen und fasste dabei die Funktionsweise von Nervensystemen vereinfacht zusammen. Er führt aus: „Hauptamtlich beschäftige ich mich seit Jahren mit gewissen Strukturen im Inneren tierischer Gehirne, die wegen ihrer Überschaubarkeit oder auch wegen ihres periodischen Aufbaus so aussehen, als wären sie Teil einer Rechenanlage.“ (Braitenberg 1986, S. 2) Er verwendet den Begriff „Synthetische Psychologie“ um zu beschreiben, wie Persönlichkeit/Verhalten durch den Aufbau von Strukturen ähnlich wie in „Rechenanlagen“ geformt werden. In Vehicles definiert Braitenberg eine Serie von dreizehn Konstruktionskonzepten, deren Verhalten durch Anfügen von immer weiteren Komponenten immer komplexer wird.

Die Softwaremaschinen in Tissue entsprechen Braitenbergs Vehikel vierter Art. Einfache Zeilen Code werden miteinander kombiniert, um ein hoch komplexes Verhalten dieser Maschinen vorzutäuschen. Jede Maschine verfügt über zwei Softwaresensoren zur Wahrnehmung von Umgebungsreizen und zwei Softwaremotoren zur Fortbewegung. Das Verhältnis zwischen Sensoren und Antriebseinheiten bestimmt das jeweilige Verhalten der verschiedenen Maschinen. Unter den tausenden von gleichzeitig in Tissue aktiven Softwaremaschinen, gibt es insgesamt vier verschiedene, farblich gekennzeichnete Typen. Die Architektur der Tissue-Maschinen ist in Abbildung 1 zu sehen. Jede Maschine bewegt sich mit unterschiedlicher Geschwindigkeit in eine andere Richtung und hat ihren eigenen Aktionsradius, doch alle Maschinen sind gleich groß und verfügen über die gleiche Dreh- und Höchstgeschwindigkeit. Sie sind an ihre Umgebung gebunden und kehren an deren Grenze um.

Jede Maschine ändert kontinuierlich Richtung und Geschwindigkeit in Abhängigkeit von ihrer Position zur Umgebung. Zuerst bestimmt sie dabei den Abstand zwischen den Sensoren und dem ersten Reizpunkt:

dx = stimulusX – leftSensorX;
dy = stimulusY – leftSensorY;
leftDistance = sqrt(dxdx + dydy);
dx = stimulusX – rightSensorX;
dy = stimulusY – rightSensorY;
rightDistance = sqrt(dxdx + dydy);
Anschließend normalisiert die Software die Messwerte „leftDistance“ und „rightDistance“ und komprimiert sie auf Werte zwischen 0,0 und 1,0. Diese Ergebnisse durchlaufen eine nichtlineare Funktion, werden zurückgegeben und gespeichert. Die beiden so errechneten Werte werden gemittelt und in der Variable „normSensorAverage“ gespeichert:
normSensorLeft = leftDistance/maxDistance;
normSensorRight = rightDistance/maxDistance;
normSensorLeft = hump(normSensorLeft);
normSensorRight = hump(normSensorRight);
normSensorAverage = (normSensorLeft + normSensorRight) / 2.0;
Die Geschwindigkeit der Maschine wird anhand der Werte in „normSensorAverage“ und in der Konstanten „maxSpeed“, die die Höchstgeschwindigkeit der Maschine angibt, angepasst:
speed = speed + (maxSpeed – (maxSpeed * normSensorAverage));
Wie bereits erwähnt, unterscheidet die Software vier verschiedene Maschinentypen. Die beiden unten angeführten Zeilen Code bestimmen die Richtung eines Maschinentyps in Abhängigkeit von seiner momentanen Richtung, seiner Drehrate und dem Abstand jedes Sensors vom Stimulus:
direction = direction + leftDistance/turnSpeed * (1-normSensorLeft);
direction = direction – rightDistance/turnSpeed * (1-normSensorRight);
Dieselben Berechnungen werden für jeden weiteren Reizpunkt ausgeführt, und anschließend werden die X- und Y-Werte der Maschine anhand der ermittelten Geschwindigkeit und Position aktualisiert. Für jede einzelne der abertausend Maschinen, die gleichzeitig am Bildschirm zu sehen sind, werden diese Berechnungen durchgeführt.

Durch das Setzen von Reizen in der Umgebung kann man mit Tissue interagieren. Es stellt sich dabei ein interessantes Gleichgewicht der Kontrolle ein, da die Befehle der Benutzer zwar einen direkten, aber sehr vagen Einfluss auf die Software haben. Kleine Veränderungen bei der Positionierung der Reizpunkte rufen groß angelegte Veränderungen bei den Bewegungen der Maschinen hervor. Man kann die Softwaremaschinen nicht dirigieren, aber ihr Verhalten anregen und intuitiv verstehen. Tissue ist ein Beispiel für Software, die – im Gegensatz zu den sonst eher starren und mathematischen Konstrukten – eine fließende und unerwartete Interaktion erzeugt.

Weitere Informationen, Bilder, Videoclips und Quellcode zu Tissue finden Sie unter http://www.groupc.net Aus dem Amerikanischen von Elisabeth Wiellander

Braitenberg, Valentin: Künstliche Wesen: Verhalten kybernetischer Vehikel, Vieweg, Braunschweig/Wiesbaden 1986.