Monday, July 23, 2007

Emergent Forms - self organizing structures

Kas Oosterhuis introduces the idea of 'Swarm Architecture' in the publication GameSetandMatch II (a series of proposals, experiments, and publications on Computer Games, Advanced Geometries, and Digital Technologies). He describes Swarm Architecture as..

"..based on my postulation that every member of an architectural construct is, in essence, based on a computed behavior of discrete quanta. These quanta can represent anything from the smalles building component to the largest building blocks of a metropolis, anything from one single perosn to multinational institutions, as long as they behave in real time, and as long as their behavior can be computed real time."

Kas goes on to describe qualities of 'uncertainty' and 'unpredictability' as the swarm operates through a bottom-up process of independently operating units. With this in mind I began to think about how this concept might take advantage of the unique properties of the virtual.

Architects such as Tobi Schneidler and institutions such as the TU Delft have done some experimentation with swarm behaviors. Usually these projects consist of a physical space 'entangled' with a virtual space inhabited by virtual agents of some type. Entanglement is a word used by the IVM group (InfiniteVisionMedia) to describe virtual/physical spaces connected through custom software and MIDI components. As individuals move throughout the physical spaces, they are interacting with invisible 'agents' which are programmed with simple and predictable behaviors. Sensor devices locate the movements within the physical space and the virtual agents react in real time to these behaviors. This is accomplished through real-time communication between the two spaces (virtual and physical) Generally, the movements of the virtual agents are translated back into kinetic movement within the space (through objects or actuated devices) which allows the physical inhabitants and the virtual agents to communicate in a continuous feedback loop.

While this can result in extremely complex and unpredictable behavior patterns, the individual virtual agents actually run off simple programs. I will publish some examples of this in a future blog. These complex and unpredictable patterns are known as emergent behaviors.

Based upon this info, I started thinking about how we could take advantage of the unique environmental characteristics of SL to create a self-organizing emergent structure. This structure might consist of numerous units that emerge from the landscape or objects within the landscape. These objects may be released when the avatar approaches an object or a specific place within the environment.

(click on pictures to enlarge)

As these objects/agents/bots emerge, they approach and orbit the avatar(s). That is to say each object is scripted to approach and rotate around an avatar in an orbit of a certian diameter. Over time and within a certain distance of an avatar, these objects begin to grow an outer layer much like a seed begins to grow fruit.

The objects are scripted so when a collision occurs, the translucent outer layers 'stick' together and become frozen in space. This can occur with objects of different 'stages' of growth resulting in an asymmetrical evolving form.

As these objects continually collide and 'gel' they begin to form a crystalized architecture around the inhabitants of the environment. The objects might also contain a script which allows them to unstick after a given amount of time. This would allow the form to continually move and reshape itself as the inhabitants move and inhabit different areas within the landscape. The swarm may also adopt properties that attract an avater resulting in a more 'pro-active' architecture that does not simply respond and evolve to user behavior, but actually encourages group behaviors or movements.

So the result is we get a continually moving and evolving liquid/crystalized architectural body who's form is derived from avatar movement and inhabitation. If we wanted to include a social aspect, we might say that the objects only deploy or rotate when a certain number of avatars are within a given proximity of each other. The point is that when we work with bottom-up behaviors, we can create a whole new set of properties by just tweaking a small amount of code within an object.

No comments: