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

Classroom #6 Room Reservations Calendar

COMPLEX SYSTEMS
ALiCE:
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 2015 Calendar

Instructor: Nicholas Gessler
TA: You-Jin Kim


nick.gessler(at)duke.edu
Lab: Tu/Th 10:05 - 12:55
Perkins LINK Classroom "6"


   

David Fogel
(consultants)

Steven Bankes
(consultants)

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
fusebox
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
 
Tuesdays
Thursdays
 
Calendar Color Code ORANGE:
DAYS SET IN STONE or
DAYS COMPLETED
Calendar Color Code STRAW:
TENTATIVE AGENDA
FOR DAYS AHEAD
 

Week 0

Challenge 0
The Chaos Game

Thursday 9 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.

YOU NEED TO BUY:
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. ..

Videos:
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).

A STANDING ASSIGNMENT:
PRACTICE BUILDING APPLICATIONS ON YOUR OWN FROM SCRATCH!

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!
PROGRAMMING CHALLENGE 0:
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

 

13 January

15 January

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

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
Continued...

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

 

20 January

22 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. maxHits
  4. #define
  5. void color (int choice)
  6. 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.

Programming Challenge 0: The Chaos Game / Saga of the Indecisive Travelers
Adding more enhancements and functionality ...

  1. randomize(); in Form constructor.
  2. change int to float campX, campY;
  3. campX = 0.5 * (campX + cityX[numberOfCities]);
  4. drawFrame(); around PaintBox
  5. TGroupBox for Algorithm and Analysis operations.
  6. To set loops: TEdit, TTrackBar (min = 0, max = 6, loops = pow(10, TrackBar->Position);
  7. To record iterations: TEdit
  8. Probe: TEdit, TPaintBoxOnMouseMove();
  9. Do we need to: #include "math.h"

Week 3

Challenge 1
Cellular Automata

27 January

29 January

Time-Limited Challenge / Test / Quiz:
I will present you with this problem: Build me an application from scratch that will select a card at random from a deck of 52 cards. For example, every time you press a button, it will tell me the value (Ace, Deuce, 3, 4, 5, 6, 7, 8, 9, 10. Jack, Queen, King) and the suit (Hearts, Clubs, Diamonds, Spades). Everything you need in order to do this we have already done and discussed in class. You don't need to put in images or sounds but you are free to enhance it if you can do so comfortably. I want you to code it from scratch and turn in your complete Project folder on a CD/DVD by the end of the test period which will be 30 minutes.

Programming Challenge 0: The Chaos Game / Saga of the Indecisive Travelers
DUE TODAY... Participant project presentations. If you've discovered some interesting explorations, experiments or enhancements, please present. Not everyone needs to present this challenge. In the future, we look forward to presentations from everyone.

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

Does John Conway hate his Game of Life?

Programming Challenge 1: Cellular Automata / Conway's Game of Life
REPRESENTATION: We introduce a different representation of space and time:
We want an unbounded world with true parallel causation.
SPACE will a borderless toroid in which the left edge wraps around to the right edge, the right to the left, the top to the bottom and the bottom to the top. How do we represent this in code and on the screen?

TIME will allow every agent to look around, consider its sitution, and act, in parallel, all at once. No agent will know what any other agent will do until they all do it. Instead of linear serial causation, our representatio of causation will be parallel. How can we do this on a serial computer?

We build Conway's GOL:
thisWorld[][], nextWorld[][] and reset(RANDOM)
showThisWorld()
run(), step(), stop()
computeNextWorld(), countNeighbors(), wrap(),,
copyNextWorldToThisWorld(), countNeighbors()
OnMouseDown()...

FOR THURSDAY AND THE BALANCE OF THIS CLASS: THINK ABOUT THE PHILOSOPHICAL AND EPISTEMOLOGICAL IMPLICATIONS OF WHAT YOU ARE WITNESSING...

PREDICTION: The World is Deterministic but Unpredictable by any Calculus.
Is there a shortcut to preicting the state of Conway's World 1,000 iterations into the future?
Given the state of Conway's GOL, can we retrodict the state that preceded it?

Conway's world is relatively simple; what does this imply about more complex systems, like those of which we are a part?

ON YOUR OWN you may wish to download and explore Mirek's Cellebration to see for yourself the variety of complexities that may be produced from cellular automata. Beyond Mirek's examples CAs can be used to simulate the sounds produced by various shapes of cello bodies built of different woods and mounted with different strings as well the progress of thermonuclear explosions.

Programming Challenge 1: Cellular Automata / Conway's Game of Life
Continued...

Speeding things up:
We add renderChanges()
to renderWorld()
Importing creatures:
A catalog of creatures. We add creature arrays as variables and a TComboBox to choose from among them.

Some minor enhancements:
Showing "iterations" in a TEdit. Inserting randomize() in the form constructor.

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

Introducing the save() and open() functions.
It is always thisWorld that we want to SAVE.
After we OPEN a file to thisWorld we must reset iterations to zero.

Some visualization tweaks to help us see the "evolution" of Conway's world:
Coloring "births."
Coloring "deaths."
Tracking population growth, decline and stability.

ANOTHER SPEED INCREASE
Repeated calls to PaintBox->Canvas take excessive time since it's "a long way to the screen."
The code is closer to a TBitmap, so we can create one and make repeated calls to it: worldBMP->Canvas.
Then when have finished painting our world, we need only make ONE call to copy our bitmap to the screen:
Form1->PaintBox->Canvas->Draw(0, 0, worldBMP);
You will see a 3-fold increase in speed.

FOR TUESDAY AND NEXT WEEK:

SOME IDEAS TO PONDER AND ENHANCEMENTS ON OUR CELLULAR AUTOMATA PAGEs...

  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.

THINK ABOUT THE PHILOSOPHICAL AND EPISTEMOLOGICAL IMPLICATIONS OF WHAT YOU ARE WITNESSING...

Conway's "Game of Life" creates an "ecology" of "creatures." From random "initial conditions" there will arise a distinctive distribution of creatures which will "evolve" and become "stable" at some given time (iteration). If you were a naturalist of computational worlds, how would you describe and characterize the "ecosystem" that you see? Some creaturew are common; others are rare. What are the relative proportions of different creatures? How does each creature behave should it encounter living cells around it? I want you to experiment and observe the behvior of this system. As part of the challenge you turn in, I want you to describe the GOL world as a naturalist would, in detail.

TO THINK ABOUT: Is Conway's world a complete computational system?
Are there any limits to the processes we can build in a GOL world? Can it compute?

 

3 February

5 February

Week 4

Challenge 1
Cellular Automata

THE INSTRUCTOR WILL NOT BE IN CLASS TODAY
You-Jin Kim will host today's class...

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).

DISCURSIVE CHALLENGE 1:
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.

THE INSTRUCTOR WILL NOT BE IN CLASS TODAY
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.
  2. Jurgen Schmidhuber, A COMPUTER SCIENTIST'S VIEW OF LIFE, THE UNIVERSE, AND EVRYTHING.
  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.

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

DISCURSIVE CHALLENGE 2:
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.

CONTINUE TO WORK ON THE GOL THE REMAINDER OF THE TIME...

 

10 February

12 February

Week 5

Challenge 1
Cellular Automata

Challenge 2
Evolutionary
Computing

Programming Challenge 1: Conway's Game of Life.
Continued...

RECAP: SOME IDEAS TO PONDER AND ENHANCEMENTS ON OUR CELLULAR AUTOMATA PAGEs...

  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
Introduction...

Week 6

Challenge 2
Evolutionary
Computing

17 February

19 February

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

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...
Introduction...

OVER THE "HOLIDAY:"
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 &
Assimilation

24 February

26 February

Challenge #3: Segregation/Assimilation.
Continued...

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.
Continued...

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 &
Assimilation

 

3 March

5 March

Challenge #3: Segregation/Assimilation.
Continued...

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 http://fallingsandgame.com for Embarcadero.

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

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

Spring Break

 

10 March

12 March

Spring Break

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

https://web.duke.edu/isis/gessler/borland/orbits.htm
https://web.duke.edu/isis/gessler/borland/flocking-polygons.htm

Spring Break

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

https://web.duke.edu/isis/gessler/borland/orbits.htm
https://web.duke.edu/isis/gessler/borland/flocking-polygons.htm

Week 9

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

17 March

19 March

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

Continued...

Explanation of assignment based on Thursday's "VPRO Amsterdam"...

Screening:

VPRO Amsterdam.

For Tuesday, compare and contrast one of the researchers interviewd back when the film was made with what he is doing now. Typewritten, one to three pages. You might alternatively look at the work of David Fogel (Natural Selection, Inc.) or Steve Bankes (Evolving Logic, Inc.)

Week 10

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

24 March

26 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).
Continued...

 

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).
Continued...

A new version 33...

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

The location of missing flight 370 solved using systems of complex evidence and calculation:
http://www.cnn.com/2014/03/24/world/asia/malaysia-airlines-satellite-tracking/index.html?hpt=hp_t1

Week 11

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

31 March

2 April

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

Participant presentations...

Challenge #5: Sensors & Actuators
Introduction...

Challenge #5: Sensors & Actuators
Continued...

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

Week 12

Challenge 5
Realworld DAQ:
Sensors &
Actuators

7 April

9 April

Challenge #5: Sensors & Actuators
Continued...


 

Challenge #5: Sensors & Actuators
Continued...

Week 13

Challenge 5
Realworld DAQ:
Sensors &
Actuators

14 April

16 April

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

Tuesday 21 April

Last day of class...

Course Projects due today.
Participant presentations.

Course Projects due today.
Participant presentations.


Week 15
23 April 25 April
NO FINAL
amsterA