Exploring emergent multiagent worlds.
"The whole is greater than the sum of its parts."


The Slipstream of Mixed Reality:

xx x
The 13th Floorxxxxxxxxxxxxxx Dark City

"One of the perks of the job..."

Skip the talk! Take me to the applications...


Multiagent Modeling / Numerical Simulation / Agent Based Modeling / Artificial Worlds

Welcome to a new way of looking at the world. This is an introduction to a new philosophy of science, one that applies what we've learned about evolution and computation in order to explore the complexities of the natural and cultural worlds. We build models and simulations of agents interacting in environments situated in both space and time. We begin with simple representations of time, space and agency and progress in steps to representations that are more complex. We create these artificial worlds and the ways these worlds work. We specify how space and time work in these worlds. We specify how its agents sense the world around them, how they think and how they then effect the world around them. We, as individuals, are not omniscient, there are limits to our perceptions of the world. Thus we can specify that the knowledge each agent acquires is local. In the real world, we see complex global patterns of interaction that none of the local participants are aware of. This gap between local and global knowledge is reflected in the phrase "from simple local rules to complex global patterns of behavior." We too can study this phenomenon among our agents interacting in our artificial worlds. In the natural world, we often see these complexities and wonder about their causes. The causes are elusive. Sometimes, when we try to analyze a complex system by cutting it into parts, we destroy our understanding of how it works. Our project is to take another approach, to synthesize a world from the bottom-up. We ask, "what if?" We create the agents in computer code, defining each in detail. We place them in a spatial and temporal environment. Then we press "run." We turn them loose and watch how their local ineractons create dynamically new global patterns of behavior. Then we ask, "Do these results match what we seen in the real world?" If not, we modify our "what if" scenario and begin again. By trial and error, by the insight of experiment and evolution, we tweak our simulation until it is a good fit to reality. We are looking to discover the processes that create and maintain the world we live in. We want to describe, understand and explain how all these processes are interrelated.

Our knowledge of the world is indirect. It is based on our individual biological senses, our perceptions and beliefs. Over countless generations they have been modified by culture. We come to know the world by intuition, both conscious and unconscious, which allows us to make decisions quickly. We also come to know the world through natural language, which allows us to communicate, but which is relatively slow. To these we have added other ways to know our world: new technologies to describe, understand and explain the world in which we live. We think, reason and communicate not just with thoughts and language, but with artifacts as well. Art, diagrams, maps & charts, sculpture, architectural, nautical and aircraft models are literally things with which to think. The sciences have created the formal languages of mathematics, algebra and calculus. We have ported a great deal of our cognition over to so-called "intelligent" devices. In the the 1950s we began to add evolution and multiple causation into our models and simulations of complexity. This is the way of knowing that we lay before you to in this course.

There are, indeed,
things that cannot be put into words...
They make themselves manifest...
They are what is mystical...

Ludwig Wittgenstein
(Tractatus Logico-Philosophicus).

And the signifieds butt heads with the signifiers,
and we all fall down slack-jawed to marvel at words!
While across the sky sheet the impossible birds,
In a steady, illiterate movement homewards.

Joanna Newsome
"This Side of the Blue" (2004 Drag City Records)

I used to think that the brain was
the most wonderful organ in my body.
Then I realized who was telling me this.

Emo Phillips
Neuropsychology: Clinical and Experimental Foundations


Most stories that we listen to and arguments we hear are simple ones, told in simple sentences.  They are literally and figuratively serials, narratives of chains of causes and effects, sequences such as “for want of a nail the shoe was lost; for want of a shoe the horse was lost and for want of a horse the rider was lost, being overtaken and slain by the enemy.” (Ben Franklin 1758).  Historians are fond of forging linked chains of causation, but “what if?”  What if other happenings had intervened?  An explanation given without a thorough exploration of the counterfactuals is wrong.  Explanations that reduce reality to a linear sequence or series of events are over simplifications. They lack the dynamic interrelationship of causes and effects of the parallel real world.  Since we have trouble thinking and communicating in this fashion, how do we describe, understand and explain the complexity we see?  Computation offers us a new medium of comprehension.


An AGENT is a thing, an entity, or an object that interacts with its environment. The agent is situated in a LOCAL space and time.  It interacts in the sense that this situatedness causes a change in that LOCAL space and time.  A population of agents, sharing parts of one another’s LOCAL situatedness gives rise to GLOBAL changes in that environment in often surprising ways.  Assuming that the agent is not a rock, but cognizing entity, we can describe its architecture as SENSE-THINK-ACT or STA.  Its input SENSES it’s environment.  Its internal processes THINK by evaluating those sensations, beliefs, goals and plans.  And its output is finally an ACT that changes both its state and that of its environment.  For us and agent might be a rock, an insect, a fish, a represent of a component of mind, a representation of a human or a segment of computer code that performs some sentient act.  An agent may be many things and each may be comprised of other agents.  The world may be comprised of agents, all the way down, and emergences, all the way up.


We represent reality internally as mental models: thoughts, concepts and ideas. To communicate externally with others we use discursive languages such as speech and writing, and behavioral performances such as actions and gestures. We have evolved and extended our cognitions with technologies of our own invention, such as writing with pen and paper, and mathematics with more elaborate notations and procedures. Today we commonly aid our thinking with a variety of physical representations such as drawings, maps, photographs, sculptures and model ships, cars, aircraft and terrains. It should be no surprise that we now regard these technologies, along with the more obviously cognitive electronic devices as “things that think.”  We should regard them all as “cognitive devices.”


When a population of agents, situated LOCALLY in time and space, become active, the GLOBAL pattern of their behaviors often comes as a surprise.  This is partly because our minds have not evolved the ability to evaluate the outcome. We refer to those happenings as EMERGENT. But it's not just that our minds cannot deal with the complexity. Often there is NO shortcut, NO mathematics and NO calculus to tell us what will happen.  Sometimes the only way to determine what will happen is to run the simulation to completion.  Sometimes there is not enough computer power to provide us with an answer.  The world, in many instances is entirely deterministic but yet unknowable. Like "the halting problem," we are forced to confront uncertainty.

Our complex systems models provide insightful "clouds" of possibile answers to various "what if?" scenarios. Just as drawing an scene on paper helps us to see it better, so does building a computer model force us to understand it better. Unlike an idea residing in one's mind, a computer model is something we can "put on the table." We can share and tweak it and in the process gain new perceptions and perspectives.


Did we actually discover computation in nature and adapt it to our technologies, or did we invent it?

What happens when we take the power that created us, evolution, and place it into our computer code?

Some people complain that simulations are "toy models" and overly simplified. But is natural speech and writing any less simplistic? At least simulations can deal with parallel causation which is difficult to do with speech and writing.

Our brains seem to operate in parallel moreso than our speech and writing. Why did speech and writing evolve serially?

How can we express parallel causation in speech, writing, art and cinema? It has been done, but why is it so difficult?

Aside from our computational technologies, how do groups of people, things, artifacts and objects constitute cognitive systems?

ALIFE 2015
The American Algorists: Linear Sublime

GECCO 2015

David Fogel

Steven Bankes

Jean-Philippe Rennard
genetic art
John Mount
Alife Fusebox

Jerry Huxtable

"The challenges of the 21st century will require new ways of thinking about and understanding the complex, interconnected and rapidly changing world in which we live and work. And the new field of complexity science is providing the insights we need to push our thinking in new directions."

The Use of Complexity Science
A Report of the U.S. Department of Education

"There are known knowns.
These are things we know that we know.

There are known unknowns.
That is to say, there are things that we know we don't know.

But there are also unknown unknowns.
There are things we don't know we don't know."

Donald Rumsfeld

"In times of fear people turn to fundamentalist mindsets, and I don't mean that only in terms of religion. There's economic fundamentalism; there's political fundamentalism, and so forth.

And that's really a reducing of the complexity to very clear black versus white, right versus wrong, issues.

When that happens, it is very easy for people to take stark, and harshly polarized, points of view and simply lob bombs back and forth at one another verbally.

I think there is no question that that is, to some extent, the nature of the discourse in this country right now. And I long to have us move to an understanding of the complex nature of these things."

Rushworth Kidder
(President, Institute for Global Ethics)
Radio Interview, "The World,"
November 22, 2005

Dell XPS One 27" touch system.
2560x1440 pixel monitor.
NVidia GEFORCE GT750m graphics card.
HDMI & BlueRay 3D support.
NVidia 3D Vision.
Touchscreen, 3D graphics capability.


Check for help in Embarcadero first.


Why C++ is the perfect choice

C/C++/C# popularity April 2015


Exercise due diligence before asking for help online.
Understand the code before pasting it in.


Generalized Procedures and Applications:

Windows API Examples
representing numbers
as colors

Easy 3D Stereo
in Red/Cyan

Speech API
Speech Synthesis
Rrepresenting Data as Music

Visualization & Sonification:




as sensors &

as cognition in
different media
Parrot AR Drone
Epilog Laser Cutter
Replicator 2X
3d Printer
Form 1
3d Printer
You only need these six project files to reconstruct your application in Embarcadero RadStudio 2010.

Embarcadero Basics:

  1. Getting Started with Embarcadero from Scratch
  2. Managing Projects
  3. Creating an Icon
  4. Making More Windows
  5. Getting Help


Complex Systems Applications:

Chaos Game,
Fractals &
Strange Attractors
Segregation & Assimilation
Solar System Orbits
Flocking Polygons
Flocking Images
Text & Web
A Sampling of Participants' Projects
icon Duke University

C++ and the Windows API essentials:

  1. C++ Language Elements
  2. C++ Functions
  3. Color Graphics Language
  4. Color RGB Triplet Chart
  5. File Save and Open
  6. MouseDown Parameters
  7. Embedding Sounds in Applications
  8. Handling Strings
  9. ASCII Code



Complex Systems Applications:

Monty Hall Problem
Speculation Game
Other Games
Sluis DEM
Iterated Prisoners' Dilemma
Planet WATOR
& Works-
A Sampling of Participants' Projects
ACulture 2006
ALiCE 2005
Participants' Projects
Participants' Growth
of Life



Additional information:

  1. Formatting Numbers as Strings
  2. Data Conversions
  3. Bit/Byte Operations
  4. Math Routines
  5. Data Acquisition
  6. Vectors
  7. Binary Quantities
  8. Variable Types & Scope