Information Science & Information Studies 170
Visual Studies 172
Computer Science 107

Classroom #6 Room Reservations Calendar

Artificial Life, Culture & Evolutionary Computation.

How to represent the Complex Adaptive Systems in the natural world
with experimental Evolving Multiagent Models & Simulations.

"What if?" Explaining the past; predicting the future.
"If you want me to believe your explanation, show me!
Build me a model or a simulation in computer code.
Let's see how your explanation works!"

Spring 2016 Calendar

Instructor: Nicholas Gessler
TA: You-Jin Kim

Tu/Th 10:05 - 12:55
Perkins LINK Classroom "6"
Nicholas Gessler
Justin Bryant


David Fogel

Steven Bankes

Jean-Philippe Rennard

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

Ludwig Wittgenstein (Tractatus Logico-Philosophicus).

Jerry Huxtable
genetic art
John Mount
Alife Fusebox
The American Algorists: Linear Sublime

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

GECCO 2015
ALIFE 2015
Calendar Color Code ORANGE:
Calendar Color Code STRAW:

Week 0

Challenge 0
The Chaos Game

Thursday 14 January

Welcome and Introduction:

A Sneak Peak into Media Arts + Sciences
Video preview. MA+S-2

Administrative details:
Course requirements are on our syllabus.
"Office Hours" will be here in classroom #6, Tuesdays & Thursdays, before and/or after class.
Please confirm appointments by email in advance.

12+ burnable CDs and or DVDs and clear-front envelopes for them. Please, no plastic jewel-cases!
An indelible pen for marking your CDs and/or DVDs.
12+ clear and ordinary sheet-protectors for letter-size paper.
1+ USB memory stick. Bring this to every meeting!

Representation, literally "re-presentation":
Naturally evolved: perception, thought, reasoning, natural language.
Culturally evolved: traditions, customs, belief systems.
Technologically evolved: diagrams, mathematics, algebra, calculus.
Our focus: the merged philosophies of evolution and computation.
What are the pros and cons of each of these media of description, understanding and explanation?

Some questions:

  1. Did we actually discover computation in nature and adapt it to our technologies, and not invent it?
  2. What happens as we embue our computations with the power that created us: evolution?
  3. Are discursive arguments presented in serial (sentential) natural language any less "toy models" than computational arguments present in parallel multiagent simulations presented?
  4. Experience with multiagent complex systems suggests that our predictions are uncertain. Yet they usually provide insightful "clouds" of possibilities to "what if?" questions. Just as drawing an object helps the brain to comprehend and remember the subject, so too does constructing a model force one to pay attention to the details of the system under study. A computational model is also something we can "put on the table" and share with others interested in the problem. We can modify it in this way or that and in the process we gain new perceptions and perspectives. With complex systems there is often no shortcut (no algebra or calculus) for determining the state of that system at a future state (the "Halting problem"). With these systems, the only way to foresee their futures is to run them, step by step, to their completion. We are often forced to confront uncertainty.
  5. But are social systems comfortable with uncertainty? In hierarchical structures clearly not. Is uncertainty anathema to leadership and governance?
  6. See, "The skipper always knows...," below. ..

U-571 Chapter 12, ending with, "The skipper always knows what to do, whether he does, or not..."
Taking decisive action on false information:
The Gulf of Tonkin Incident and the Vietnam War.

The Weapons of Mass Destruction, "yellow cake" and the Iraq War.
"Were you wrong?" Alan Greenspan fails to see the looming financial crisis.

Our programming challenges will progress from simple to complex representations of:
Space (dimensions): cellular (grid-based or raster) or vector (omnidirectional).
Time (when agents take turns or ar polled): cinematic, random, sequential.
Agency (causation): from simple binary agents to those with "senses, thoughts & actions" (STA).
We begin by writing simulations from scratch to gain confidence in our abilities.
Later we progress to modifying and enhancing already developed code.
Remember to explore, experiment, enhance and enjoy your creativity (the 4 "E"s).


Building a graphics application for Windows PCs with Embarcadero C++ Builder:
(Much of this is reviewed in the left column on our Simulations page.)

  1. The API: Windows Application Programmers' Interface. See "Help" in the IDE.
  2. The IDE: Embarcadero Integrated Development Environment. Setting it up.
  3. The C++ language. See the HANDOUT and also "Help" in the IDE.
  4. Error messages.
  5. Color theory & images.

We jump right in and get wet!
THE CHAOS GAME (or saga of the indecisive wanderers).

An apocryphal narrative: OK, so there's a family wandering the countryside looking for a city in which they can make al living. Let's say there are three cities. They pick one at random and set out towards it. Exactly half way there they camp for the night. Next morning, having forgotten their goal, they pick another one at random and head out towards it. Halfway there again, they camp for the night. And so it goes... As an archaeologist interested in the location of their camps, what pattern, if any, will they form?

FYI: Tabs under which common Visual Components may be found:

Week 1

Challenge 0
The Chaos Game


19 January

21 January

Programming Challenge 0: The Chaos Game / Saga of the Indecisive Travelers

Execution of the program constructs a topographic landscape, but our implementation
obscures much of what is going on. What are we not seeing?
How could we visualize the complexities and behavior of this system more clearly?
Let's treat it as a landscape? Let's record the "hits" in a world array.

How can we visualize that array? Let's try color and shading.
We implement the colorRamp() function in two directions:
a) Cool to Warm: black, violet, blue... red, magenta, white
b) Warm to Cool: magenta, red... blue, violet, black
c) Casting shadows: faux shadows (a kludge, a cheat, a heuristic)

A look at some other variations on the Chaos Game under "Fractals & Strange Attractors:"
a) adding an Edit box
b) varying the multiplier (divisor)
c) adding a third dimension
d) adding sonification to the visualization (can this help us hear the pattern?)
e) an unlikely "bent" version (flipping the "+" to "-")

continued in panel to the right...

Programming Challenge 0: The Chaos Game / Saga of the Indecisive Travelers

What else might we try to enhance, enjoy, experiment and explore this "world?"
Brain-storm some ideas and ways to implement them...

Ensuring that you application will run on any PC operating system:
Project / Options / C++ Linker: set "Dynamic RTL" to false.
Project / Options / Packages: uncheck "Build with Runtime Packages."
Project / Options / Application: uncheck "Runtime Themes."

We consider:
Stephen Wolfram on the Chaos Game.
More Interesting Patterns.

Sonification, Can we transform the fractal visual pattern into a fractal aural sequence?
Can a fractal image be turned into a fractal musical composition?
Will sonification provide an alternative way of comprehending the pattern?


Week 2

Challenge 0
The Chaos Game


26 January

28 January

Programming Challenge 0: The Chaos Game / Saga of the Indecisive Travelers
Continued from above...

  1. Review of the algorithm (the story)
  2. Review of the code
  3. Some enhancements

Review: Setting up a project from scratch.

Purchasing an academic copy of Embarcadero XE6

There will be a test/quiz on Tuesday to build an application from scratch and burn the entire project folder to disk. Time limit is 30 minutes beginning at the beginning of class..
Probably a simple game of chance, not rolling dice but perhaps flipping coins or picking cards.

Review: C++, Functions and WinAPI on the Handout.

randomize(); in Form constructor.

Programming Challenge 0: The Chaos Game / Saga of the Indecisive Travelers
Participant presentations...

Week 3

Challenge 1
Cellular Automata

2 February

4 February

Justin Bryant will host today's class...

Written Challenge 0:
Alex Garland (director). EX MACHINA, DNA Films (2015).

Interview with the film-makers.
Movie script.

On two occasions Caleb quotes Robert Oppenheimer (Director of the Manhattan Atomic Bomb Project) who in turn is quoting from the Bhagavad Gita:

Caleb: "I am become Death, the destroyer of worlds."
Nathan: "There you go again, Mr. Quotable.

Nathan continues Oppenheimer's quote as he passes out drunk on the sofa:

I'd say we're about due a refill. Bottoms up. (BREATHING HEAVILY) NATHAN: "In battle, in the forest, on the precipice of the mountain. (VOICE CRACKING) On the... The great dark sea. In sleep, in confusion, in the depths of shame. (SOBBING) The good deeds a man has done before defend him. The good deeds a man has done before defends him. The good deeds a man has done before defends him. (SIGHS DEEPLY) It is what it is. It's Promethean, man.

Suggested max length: 3 pages, single-spaced. This is due before class on Tuesday, February 9. Please upload your work to SAKAI.

Of the three main characters in the film, Caleb is the most transparent. He has been charged with the task of determining whether Ava is conscious.

A) Why do the characters feel that the "Turing Test" does not measure intelligence or consciousness? What are they looking for as specific evidence that an entity (a human, a monkey or a robot) is conscious? In other words, according to the film, what is "consciousness," how do we recognize it and how do we know that we really have it?

B) What is going on in Caleb's mind is relatively clear, so let's ignore him. But what is going on in the minds of Nathan and Ava is obscure. Certainly, they say quite a lot to one another, but what are they thinking? Since Nathan is human, we might be able to guess his evolving state of mind. But what about Ava's mind? What is stirring inside her mind? Please recount the story from the perspectives of Nathan and Ava. There may be more than one way to understand their thoughts (even the film-makers are not sure). I am not interested in the morality or the ethics of the characters, only in how their inner (unspoken) thoughts and ideas (emotions?) develop and how they direct or reflect their actions.



Justin Bryant will host today's class...

Written Challenge 0:

Of the t...

Suggested max length: 3 pages, single-spaced. This is due before class on Tuesday, February 9. Please upload your work to SAKAI.



9 February

10 February

Week 4

Challenge 1
Cellular Automata

Is Conway's world a complete computational system? Example One:
Game of Life "Digital Counter" by Alan Hensel 1994 (Modified by Nick Gessler 13 February 2013).

  1. Save "GOL Counter Data.txt" to the DeskTop.
  2. Open the executable on our cellular-automata pages. It's world is larger than the world we wrote (857x524).
  3. Show that from a random initial setting it runs the same as the GOL we built.
  4. Now click "Open Counter" and import the text file you saved. This sets the intial configuration of the world. Click "Run" and watch what happens. The decimal digits (0, 1, 2, 3...) will rise from the center of the screen. Left-click to zoom in. Right-click to zoom out. What you see are "gliders" constituting data "bits" on four tapes that run in loops around "pulleys" or "reflectors" composed of other Conway creatures. Towards the center, those "bits" are copied and sent to a "translator" that converts them to vertically rising creatures. The red line is a "kludge" to keep the wrap-around from destroying the mechanism. Note that at 1000 iterations the simulation runs much faster. Think about all the computational resources wasted by running the rules for dead cells that are far away from the mechanism, dead cells that will NEVER have a living cell around them. Cells that were alive and have died are colored white. Dead cells that have never been alive are colored tan. At 1000 iterations we don't bother to run the rules for dead tan cells. Why run the computation if we know nothing will ever come of it? If we assume that the real world, the universe, is a computational system (the laws of physics for example) running on some sort of grand computer beyond our imagination, let's call it "other," then in some sense "empty" space is just as rich in its potentiality as space "filled" with stuff.

Is Conway's world a complete computational system? Example Two:
"Life in Life" by Phillip Bradbury. If you can program the "Game of Life" INSIDE the "Game of Life" itself, does that confirm that the "Game of Life" is a univrsal computer?

 ¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸.

Screening: ARTIFICIAL LIFE (1994) VPRO Amsterdam. (VHS 90m). This is one of the only documentaries on the origins of Artificial Life. It features interviews with its creators. Take notes on each of the contributors (except Luc Steels who is speaking in Dutch).

In three to four pages (double-spaced) provide a summary of the philosophical and epistemological views of those interviewed. What are they saying is important about this field and how does what they say tie into "GOL Counter" and "Life on Life?" DUE TUESDAY FEBRUARY 10TH on SAKAI.

You-Jin Kim will host today's class...

Screening: JOURNEY OF THE UNIVERSE, an Epic Story of Cosmic, Earth and Human Transformation written and narrrated by evolutionary philosopher Brian Swimme. Swimme repeatedly draws on complexity science, self organization and emergence to weave a tapestry to explain the ongoing evolution of everything. Although teleology plays into his narrative he nonetheless raises important issues, not the least of which is process, that at all levels of scale, "from quark to quasar," in some sense Darwin's and Wallace's natural selection is taking place pruning variation to maximize survival.
(Harold Morowitz tells a similar story, with more emphasis on computational complexity, in THE EMERGENCE OF EVERYTHING: HOW THE WORLD BECAME COMPLEX, Oxford (2004).)

Readings on SAKAI:

  1. Marvin Minsky, PUBLIC LECTURE, NARA, JAPAN.
  3. * Konrad Zuse, CALCULATING SPACE.
  4. * Ed Fredkin, A NEW COSMOGONY.
  5. * These last two get quite technical. Read them for what you can understand from them. It's not the details, but the general idea that is important.

 ¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸.

In three to four pages (double-spaced) provide a summary of the philosophical and epistemological views of each these five men. How do their views tie together as a coherent assessment of our status in the world. (I am not so much inerested in their environmental stances as in their ways of looking at reality. DUE TUESDAY FEBRUARY 10TH on SAKAI.



16 February

18 February

Week 5

Challenge 1
Cellular Automata

Challenge 2

Programming Challenge 1: Conway's Game of Life.


  1. The GOL as a "one-way" or "trap door" function to authenticate passwords without remembering what they are.
  2. Find the initial configuration for a world that runs the longest before becomming stable
  3. How many initial configurations are there? There are 2^10,000 or 2 x 10^3,010. The Universe is only 4.33 x 10^17 seconds old. The fastest computer runs at 8.162 petaflops or 8.162 x 10^15 floating point operations per second. Running at that speed since the origin of the Universe, this machine could execute only 3.53 x 10^33 flops, computing an infinitesimal set of those possible.
  4. Implementing a "creature counter."
  5. Can we add a function to give us an audible "sound image" of the patterns of that world?
  6. What if we draw a line as the initial condition for the GOL? See Version 22b.
  7. What if we create a cellular automaton to operate on an image? See our CA page near the top.

 ¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸.

Programming Challenge 1: Conway's Game of Life.
Due today. Participant presentations from everyone:

 ¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸. ><((((><((((º> `·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸¸.·´¯`·.¸><((((º>¸ ·´¯`·.¸.

Programming Challenge 2: Evolutionary Computation

Week 6

Challenge 2

23 February

25 February

Programming Challenge 2: Evolutionary Computation: due Thursday, 10 October
The Evolutionary Concert Tour (a.k.a. Traveling Salesman Problem, Traveling Ferenghi Problem).

Discussion of additional constraints and their implementation...
Visit nearest city next (more-or-less done).
Enhance the 3d version with new rules, stereo pairs, OpenGL.
Treat cities as islands and invoke ocean currents and trade winds.
Preference for right-angle turns, sharp turns, gradual turns.
Alter space from a bounded to a toroidal wrap-around world.
Invoke some requirement for a path leg length entering or exiting a particular city type.

Outside the realm of the Traveling Salesman Problem:
Evolve an algorithmic artwork.

Programming Challenge 2: Evolutionary Computation: DUE TODAY
Participant Presentations

Challenge 3: Segregation/Assimilation & Growth...

Familiarize yourself with the Segregation/Assimilation application. Explore and experiment with the initial conditions and the rules. Examine the code to see how the application is set up. Pay special attention to the processes that "implement the rules" than those that that "do the housekeeping." Begin working on some initial conditions and rules of your own...

Note: This model is built from Thosmas Schelling's original work on segregation. The foundation of this simulation is not readily conducive to building more sophisticated agent based models such as predator/prey relationships. We may attempt to do so in the weeks ahead. In this application, as in cellular automata, agents can only be changed by their surrounds, an agent cannot directly change another agent...

Week 7

Challenge 3
Segregation &

1 March

3 March

Challenge #3: Segregation/Assimilation.

Some more thoughts on what to do:

  1. Import the Sluis digital elevation model. But remember the Sluis DEM is bounded and our current world is toroidal. Also, how are we going to visualize different agent types on top of a visualization of the terrain? What colors will we use?.
  2. Expand the agent size.
  3. Remember to check out the notes.

Challenge #3: Segregation/Assimilation.

Additional thoughts on what to do:

  1. Allow agents to climb a gradient, but only a mild slope or follow a contour.
  2. Drop rain or snow agents on the DEM (but we currently only allow one agent per location).
  3. Happiness second thoughts: If the measure is whether or not one moves, we already monitor that.
  4. If you add another characteristic to an agent, be sure to also add that characteristic to the moveMe() function.

Week 8

Challenge 3
Segregation &


8 March

10 March

Challenge #3: Segregation/Assimilation.

Other Possible "to-dos":

  1. Right-click to zoom in on a region, not just the upper left.
  2. Add some sort of agent memory and design some rules for it.
  3. Adding a "happiness" characteristic. Add it to the class declaration and modify moveMe() to move it to a new cell. Perhaps increment happiness with each moveMe() and decrement it with each !moveMe(). One might also add some rules for it. Count and display happiness by agent type at each frame, and/or replot agents showing positive or negative happiness. How would we visualize the latter? We could enlarge the display and plot happiness with the pen and agent type with the brush of a rectangle.
  4. Recode for Embarcadero.

Challenge #3: Segregation/Assimilation.
Project due today.
Class Presentations.

Challenge #4: Flocking, Schooling, Herding, Following, Crowd Behavior, Asteroidal Orbits.

Spring Break


15 March

17 March

Spring Break

Familiarize yourself with Flocking Version 38,
the illustrations, links and notes which are featured on both these pages:

Spring Break

Familiarize yourself with Flocking Version 32,
the illustrations, links and notes which are featured on both these pages:

Week 9

Challenge 4
Collective Movement:
Flocking, Herding,
Schooling, Orbits

22 March

24 March

Challenge #4:
Flocking, Schooling, Herding, Following, Crowd Behavior, Asteroidal Orbits.


Challenge #4:
Flocking, Schooling, Herding, Following, Crowd Behavior, Asteroidal Orbits.


A modified version 38...

Week 10

Challenge 4
Collective Movement:
Flocking, Herding,
Schooling, Orbits

29 March

31 March

Begin thinking about your course project (due April 22nd). It can be something entirely new of your own making or it can be
a significant enhancement of a previous challenge.

Challenge #4: Flocking (Herding, Schooling, Crowd Behavior).


Familiarize yourselves with the variety of User's settings, the rules, how they are written and how they work.
Locate the "sweet-spots" in the simulations.
Devise some practical new ideas for new rules in pseudocode or code.

Flocking Images verses Flocking Polygons:
Functionality and speed of execution.
Motion represented as [speed & direction] versus [dy & dx].

Flocking Images contains some functionality that could be implemented in Flocking Polygons:
Nearest neighbor plots. Statistics and visualizations on encounters. Musical chairs and banking scenarios.

A to-do list for Flocking Polygons:
New functions in the agentClass in addition to setVelocity(), getVelocity(), setDirection(), getDirection().
For waves of traffic density: collision detectors, vision focused ahead, reset agent movement to a circle or simply an east-west line across the equator to facilitate a simulation of traffic waves of congestion.
For orbits: change the orbits of Mars and Jupiter from clockwork to gravitational, insert all asteroids in prograde orbits, distribute debris from impacts equally rather than randomly, gather statistics on asteroids that are replaced, fix division-by-zero problem.
More complex scenarios: new sub-variables for the agentClass: acquire(), divest(), memories...


Challenge #4: Flocking (Herding, Schooling, Crowd Behavior).

Participant Presentations

Challenge #5: Sensors & Actuators

The marriage of biology and simulation:
Iaian Couzin: Collective Animal Behavior in Locusts and Fish...
Fish schooling in real life and in simulation...

Week 11

Challenge 5
Realworld DAQ:
Sensors &

5 April

7 April

Challenge #5: Sensors & Actuators


Challenge #5: Sensors & Actuators

Aesthetics 102:
Beyond keyboard and display: escaping the confines of the desktop computer.
Transitioning applications into the real world:
TrackBars to IR rangefinders.

Week 12

Challenge 5
Realworld DAQ:
Sensors &

12 April

14 April

Challenge #5: Sensors & Actuators


Challenge #5: Sensors & Actuators

Week 13

Challenge 5
Realworld DAQ:
Sensors &

19 April

21 April

Challenge #5: Sensors & Actuators
Challenge #5: Sensors & Actuators
Week 14

Tuesday 26 April

Last day of class...

Course Projects due today.
Participant presentations.

Course Projects due today.
Participant presentations.

Week 15
23 April 25 April