2004W


3.14.2004


ARTS 122 Advanced Projects in Interactive Media


Steve G. Hans

Flocking Algorithms in Action:
As a Generative Source for visualizations
&
A Unique Approach to Business

Research Keywords
  Flocking Algorithms, Swarm, Emergence

Research Description
 

Flocking, commonly referred to as 'coordinated animal motion' is a particularly evocative example of emergence: where complex global behavior can arise from the interaction of simple local rules. Flocking Algorithms are based on behavioral patterns in nature found in bees, flies, frogs, birds, fish, ants, and any other flocking animal, including humans.
The underlying idea behind flocking algorithms is that complex behavior can emerge from a seemingly normal set of rules obeyed locally by each individual organism in the flock.

Generally speaking, these rules can be summarized as:
  • Alignment of direction of motion with that of neighbors.
  • Matching of speed with that of neighbors.
  • Spatial cohesion with neighbors.
  • Collision avoidance.
Aside from being interesting in and of itself, the study of flocking lends itself immediately to the study of animal behavior, distributed computing, and collision avoidance. In the most fundamental sense, a flocking simulation is an example of a chaotic system; it's a completely deterministic system which is sensitive to initial conditions.

Some of the most extraordinary natural occurrences of flocking behavior and systems are found in the domains of colonial insects, namely, ants. Without centralized planning and very minimal communication, complicated, coordinated, goal-oriented behavior often arises from the interactions of many of these simple insects.

The level of efficiency of such autonomous behavior is illustrated by ants and other colonial insects keen ability to:
  • dynamically divide labor amongst members of the colony
  • sort and cluster different objects
  • forage for food, divide their colony’s resources effectively
  • construct complex hives/nests
  • cooperate to defeat enemies
All of which would be impossible for a single individual to accomplish. More specifically, colonial insects fall under the individual-based model for flocking algorithms, which is a subset of ‘multi-agent systems’ which include any computational system whose design is fundamentally composed of a collection of interacting parts. For example an "expert system" might be composed of many distinct bits of advice which interact to produce a solution. Individual-based models are distinguished by the fact that each "agent" corresponds to autonomous individuals in the simulated domain. Individual-based models are being used in biology, ecology, economics and many other fields of study.

This concept seems abstract, but the collective motion of a flock of birds, a herd of land animals, or a school of fish is a beautiful and familiar part of the natural world. But this type of complex motion is rarely seen in computer animation. So, why are flocking algorithms pragmatic at all? Because they provide an alternative to scripting the paths of each bird, ant, person, or animal in a herd individually; they also provide a uniqe and successful model for enterprise business.


Examples
Flocking Algorithm Based Robotics:
Brooks began an ambitious graduate program at MIT to build a robot that would be more insect than dinosaur. "Allen" was the first robot Brooks built. It kept its brains on a nearby desktop, because that's what all robot makers did at the time in order to have a brain worth keeping. The multiple cables leading to the brain box from Allen's bodily senses of video, sonar, and tactile were a neverending source of frustration for Brooks and crew. There was so much electronic background interference generated on the cables that Brooks burnt out a long string of undergraduate engineering students attempting to clear the problem. They checked every known communication media, including ham radio, police walkie-talkies and cellular phones, as alternatives, but all failed to find a static-free connection for such diverse signals. Eventually the undergraduates and Brooks vowed that on their next project they would incorporate the brains inside a robot-where no significant wiring would be needed-no matter how tiny the brains might have to be.

They were thus forced to use very primitive logic steps, and very short and primitive connections in "Tom" and "Jerry," the next two robots they built. But to their amazement they found that the dumb way their onboard neural circuit was organized worked far better than a brain in getting simple things done. When Brooks reexamined the abandoned Allen in light of their modest success with dumb neurons, he recalled that "it turned out that in Allen's brain, there really was not much happening."

Animals learn (in evolutionary time) in a similar manner. As do Brooks's mobots. His machines learn to move through a complicated world by building up a hierarchy of behaviors, somewhat in this order:

  • Avoid contact with objects
  • Wander aimlessly
  • Explore the world
  • Build an internal map
  • Notice changes in the environment
  • Formulate travel plans
  • Anticipate and modify plans accordingly
http://www.kk.org/outofcontrol/ch3-b.html

Flocking Algorithm Based Generative Visualizations:
Leonel Moura’s displays an especially interesting generative example in his series: ‘UnManned Art’, and ‘MouraBots’:
  • To conceive and improve a set of (12) robots that can produce paintings and drawings based on randomness and stigmergy: Which relates directly to flocking, in that it refers to a variety of self-organization in which agents/individuals are mobile, and interacting via the environment.
  • 'MouraBots' work based on an algorithm that Leonel Moura designed.
    A partner on this project, the scholar Henrique Garcia Pereira, coined the name ‘UnManned Art’ to describe what these robots are doing.
  • “In fact my intention was to remove any predetermined aesthetics or fitness, and let the robots interact throughout the ambient (the paper or canvas) in order to allow the emergence of form. Based on simple rules - essentially responding to environmental change - these robots create their forms, not mine.
    Of course that in the context of art we can relate these works with the surrealist experiences of automatism and particularly the 'cadavre exquis', the paintings of Pollock or the concept and practices of the situationists known as 'derive' and psicogeography. But by using autonomous robots I believe to introduce a fundamental rupture, a paradigm change, not only in art, but in the anthropocentric view of the human culture.
    These robots demonstrate that 'man is not the measure of all things'. And by doing this they contribute to a new vision of the universe and of mankind crucial for survival.”
  • MouraBots is a simulation of the most original art, that of nature which we are forced to recognize as such. For example, a spider web, a honeycomb or a shell pattern, all reveal complex designs. That are a consequence of emergence and self-organization and translate into flocking based Algorithms, which are at work everywhere.

    examples of imagery

    The "Voronoi paintings":

    algorithmic based art
    click for larger view of 'algorithms on canvas'

Flocking Algorithms as a Basis for Original Musical Scores:
Their software works by treating music as a type of 3D space, in which the dimensions are pitch, loudness and note duration. As the musician plays, a swarm of digital "particles" immediately starts to buzz around the notes being played in this space - in the same way that bees behave when they are seeking out pollen.

Swarm Music is an improvisation and composition system inspired by the behaviour of insect swarms. The individuals in Swarm Music, however, are not bees or termites, but musical events. A musical event inhabits Music Parameter Space where each dimension corresponds to a musical variable such as pitch, pulse, duration and loudness. Events are attracted towards each other and to events left behind by other swarms. And like real swarms, the individuals also take care not to bump into each other.

As the events swarm around each other, constantly varying melodies, harmonies and rhythms are produced. Attracting events captured from an external source enable humans to interact with the swarm. Insect swarms have a remarkable ability to organise themselves despite being leaderless and the simplicity of each individual. This phenomenon is called self-organisation, and Swarm Music demonstrates that these principles apply to music too.
(http://www.timblackwell.com/)

Examples:
http://www.thecool.freeserve.co.uk/Recordings/RainTrance.ram
http://www.thecool.freeserve.co.uk/mp3s/BigBlipExcerpt1.mp3


Enterprise Business Application:
The industrial management paradigm has relied on top down control of all activities within an organization. And for good reason. At the birth of the 19th century factory, a single engine would drive all of the factory's processes through a system of interconnected belts. Everyone had to perform their job with numbing precision or they could bring the entire factory to a halt. People were filling roles for which machines had yet to be invented. Roles that required no independent thought and forbid independent action and decision-making. Whole systems of education, policy, culture, and livelihood coalesced around this operating principle. (This is admittedly a gross simplification, but will suffice for purposes of this article.) We are still struggling under this behavioral model.

See full article:

In order for an enterprise to avoid falling into a strictly hierarchical, bureaucratic model by default, a set of rules must be found that can be employed by each Agent in the system (whether a customer, producer, or investor) so that the enterprise emerges through these countless interactions: This in juxtaposition to creating a mechanical shell of an organization from the top and then filling it with compliant employees. The Agent-based system would allow temporary hierarchies (we call them ad-hocracies) to coalesce about the nuclei of wealth-generating projects for varying durations. The structure emerges as a result of the autocatalytic interaction of the enterprise's network, or web.

The web flocks as an evolutionary imperative to survive and thrive. The rules evolve and so does the emergent behavior, but there is no one-to-one correlation between the rules and the emergent properties.

Our team took a first cut at what these rules might be. The most difficult thing to keep in mind during the process was the "nonlinear" relationship between the rules that the Agents (or Knodes, as we refer to Knowledge Nodes in our network) would follow, and the resulting emergent properties of the network, or enterprise as a whole. For example, if diversity is an emergent feature we wish to foster, it's tempting to build diversity into the behavior of individual Knodes. It's much more difficult to try to think through what types of individual behavior might result in collective diversity.

We had no opportunity, due to time and systems constraints, to devise a means of testing our hypothesis, either in silico, in vitro or in vivo. For this work to gain more value, its premises should be subjected to further scrutiny, simulation and testing.

The Emergent Behavior We Seek We imagine that a healthy, emergent ValueWeb™ enterprise will exhibit, among others, these properties:

Diversity of Knodes and products Ability of Knodes to cycle between being producers, customers, and investors within the web Knodes will find themselves being cross-utilized in the web across a wide range of projects and product lines The web as a whole tells its own story; speaks for itself; and every Knode can learn this story, or song

  • The web generates wealth
  • The web is self-correcting
  • The web is anticipatory
  • The web is sustainable (these last three properties come from the Appropriate Response model)
  • The web develops structure around certain interactive group sizes:
  • The "Active, Passionate Flock" or cell, (7±2)
  • The "DesignShop Flock", (50±25)
  • The "Mother Flock", (125-300) (Above this level, competition for resources tends to stress the local environment, creating a natural splitting and division of the flock into smaller groups)

A First Cut at the Rules
These are the things that each Knode decides for itself: What the "local neighborhood" is (a collection of investors, producers, consumers of some interactive group size. Each Knode may have several overlapping or non-overlapping neighborhoods to which it belongs). What to value--a personal definition of "wealth". It's current "state": skills, values, blocks, activity, anticipation. These are the rules that each Knode follows: If another Knode does something you value, emulate it. Send regular "here's my current state" messages--communicate your current state to your neighborhood. Hunt for and discover resources and opportunities. Once discovered, communicate these as a part of your current state message. Look outward to identify new ideas, toys, tools and techniques. Once identified, communicate these as a part of your current state message. Tell the story of the purpose of the web to new Knodes you run into (which may or may not be a part of the current web/flock that you belong to). Family and immediate neighborhood come first. Critical mass: If the neighborhood flock is too small for critical mass, join another one. If the neighborhood flock is too large and noisy, split off. Align with and converge upon the currently highest wealth-generating opportunity (from your value vantage point) that you are aware of, based on current state messages you receive from other Knodes. Always ship a product from your experiences to your local neighborhood. A product is actually a specific subset of a current state message. Reply to current state messages you think are valuable, even if it's just to say, "thanks, that was valuable." DON'T respond to current state messages which you think are not valuable


Flocking Algorithms in the World of Computer Animation:
The 1992 Tim Burton film ‘Batman Returns’ was the first. It contained computer simulated bat swarms and penguin flocks which were created with modified versions of the original boids software developed by Craig Reynolds.

Ken Rinaldo & Mark Grossman built an Artificial Life Sculpture, a creature called Senster a computerized sculpture, which was able to dynamically sense it's environment and, under software control, modify its behavior based on past experience and current environmental inputs.

http://www.ylem.org/artists/krinaldo/works/flock/




java source code
References/Links
 
Early Pioneers - Craig Reynolds:
The term 'boids' which comes from bird oids, was first coined by Craig Reynolds in 1986 as the name for his computer simulation of Flocking:

http://www.red3d.com/cwr/boids/index.html

For well over a decade now, scientists from many different disciplines have used the computer to experiment with metaphors and algorithms to help us understand how life and all of its complexity has emerged, survived and evolved. Some of these silicon-based art forms have taken on such convincing and surprising behavior, that they have acquired the general name of Artificial Life. At one level, these algorithms appear as games; the famous game of Life is one example, while the Maxis corporation game, SimCity is another. A
lternately they appear as a bottom-up approach to robotic intelligence that views robots as a cooperating and competing system of components instead of some all-powerful, centralized decision-making brain struggling for omniscience. A-Life techniques have been applied to solve intractable mathematical puzzles, and have even been used by software to write and evolve its own code. (For a layman's description of the history of A-Life, read Steven Levy's Artificial Life; for a slightly more advanced but very rewarding look at the field, read Christopher G. Langton's Artificial Life: An Overview; for a description of software that anyone can use to design A-life systems, read Mitchel Resnick's Turtles, Termites and Traffic Jams)

In the mid 80's Craig Reynolds applied the principles of A-life to the phenomenon of birds flying in coordinated flocks. The challenge was to uncover simple rules that each bird (or boid) could follow that would produce flocking as an emergent behavior. Flocking is not a quality of any individual bird; it only emerges as a property of a group of birds. Each bird acts as an independent Agent and obeys the simple rules. Reynolds identified three simple rules for each boid to follow within some given global parameters, and the result was an uncanny facsimile of flocking behavior unfolding itself on his computer screen. The phenomenon has been applied repeatedly on screen in SIGGRAPH animations, for the penguins in Batman and the Wildebeest stampede in Lion King. To see the Java code behind boids, click here: code sample.

The programming language of choice for various simulations of flocking algorithms is Java, due to the benefits of and stability of object-oriented languages, like portability and speed.