ISIS 170
Information Science & Information Studies Program.
Visual Studies 172
Computer Science 107

Classroom #6 Room Reservations Calendar

Complex Systems
ALiCE:
Artificial Life,

Artificial Culture & Evolutionary Computation.


Representing the Complex Adaptive Systems in the natural world with
Evolving Multiagent Models & Simulations.
"What if?" Explaining the past; predicting the future.
"Show me!" Gaining insights by modeling and exploring possibilities.

FALL 2014 Calendar

Instructor: Nicholas Gessler


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

 
26 August
28 August

Week 1

z

Challenge 0
The Chaos Game

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:
z

 

Week 2

Challenge 0
The Chaos Game

 

2 September

4 September

Review of FUNCTIONS on the Handout from Day 0...

Due Today: Exercise 0:
Turn in 2 or 3 separate applications that you have written using Embarcadero. The point of this exercise is to ensure that you know how to use Embarcader to build an application from scratch. Copy each of the two project folders onto the same CD or DVD. Enclose the CD or DVD in a window envelope. Make sure to write your name on the disk and envelope and turn it i
n.

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

Let's disambiguate the variable called "iterations." Let "loops" be the number of times the "if" statement executes the algorithm with each press of "run." Let "iterations" mean the total number of times the half-way code has been executed before "reset" is pressed.

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 number of "hits" on each pixel in a world array.

The RGB color cube:
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
We implement shading using a kludge, a cheat, an heuristic:
c) Faux shadows (relative to the sun at top left).

continued in panel to the right...

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

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

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


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?

Take Home Discursive Challenge 0: Philosophical Foundations.
DUE on Tuesday, September 16th. (Thoughtfully written, double-spaced, 4-5 pages.)

On SAKAI under "Resources" please read the two articles:

Marvin Minsky PUBLIC LECTURE, NARA JAPAN.
Jurgen Schmidhuber A COMPUTER SCIENTIST'S VIEW OF LIFE, THE UNIVERSE AND EVERYTHING.

Compare and contrast their major views in 2-3 pages, double-spaced, on paper. Paper only please, no drop-box submissions.

 

Week 3

Challenge 0
The Chaos Game

9 September

11 September

INSTRUCTOR WILL BE OUT OF TOWN
Michael Tauschinger-Dempsey will host our class.
(Don't ask him programming questions; his expertise is in Media Arts + Sciences.)

Philisophy & Epistemology of Complex Systems and Artificial Life (past & present).

Screening: ARTIFICIAL LIFE (1994) by VPRO Amsterdam. (VHS 90m).
This is one of the only documentaries on the origins of Artificial Life. It contains a number of interviews with pioneers in the field. One is in Dutch, the rest are in English.

Take Home Discursive Challenge 1: Artificial Life, an Historical Trajectory.
DUE on Tuesday, September 16th. (Thoughtfully written, double-spaced, 4-5 pages.)

Focus on one of the researchers and his research (Chris Langton, John Holland, Doyne Farmer, Rodney Brooks, Stuart Kauffman, Tom Ray, Karl Sims and Luc Steels). Search to the Internet to see what he or his students are doing now and/or how his research project has evolved since the documentary was filmed. Some people who are prominent today who were not included in the video are: Kathleen Carley, Patti Maes, John Koza, David Fogel and Steven Bankes. Follow the trajectory of one researcher or one research goal from then until now. How have the ideas evolved? How has the software evolved? What applications does this research have for various facets of society and culture?

Please spend the balance of the class period working on The Chaos Game.

 

INSTRUCTOR WILL BE OUT OF TOWN
Michael Tauschinger-Dempsey will host our class.
(Don't ask him programming questions; his expertise is in Media Arts + Sciences.)

Philisophy & Epistemology of Complex Systems and Artificial Life (future).

Screening: THE THIRTEENTH FLOOR (1999) by Daniel Galouye and Josef Rusnak (DVD Widescreen 100m).
This is a remake of the original German film entitled WORLD ON A WIRE.

Take Home Discursive Challenge 2: A Computational Universe?
DUE on Tuesday, September 16th. (Thoughtfully written, double-spaced, 4-5 pages.)

After class, having watched THE THIRTEENTH FLOOR, please review this scene in which the characters Douglas Hall and Jane Fuller meet for the first time. (You may have to save it to your desktop before playing it.) How well do the actors portray their characters Douglas and Jane? What is going on inside Jane's and Douglas' heads that the actors are trying to bring to the screen and how do they accomplish that? (Short, a paragraph or so.).

Please compare and contrast the stories NON-SERVIAM, PERMUTATION CITY and THE THIRTEENTH FLOOR and my own article on Alan Turing (all on SAKAI). Pay particular attention to the philosophies and epistemologies the authors are alluding to, for instance how the authors envision the abilities of agents to move from one level of a simulation to another and how the agents come into being. If you think about it, there are allusions to be made with how we, as humans, come to know the world and how much of our own consciousness and modules and processes of mind we can know. Take the metaphors seriously but also enjoy the stories.

Please spend the balance of the class period working on The Chaos Game.

Week 4

Challenge 1
Cellular Automata

16 September

18 September

Programming Challenge 0: The Chaos Game / Saga of the Indecisive Travelers
Due today: Participant presentations.
Due today: Discursive challenges 0, 1 and 2.

Programming Challenge 1: Cellular Automata / Conway's Game of Life
A different representation of space and time...
How do we represent a borderless world with true parallel causation?

Parallel (cinematic) time.
Borderless (toroidal) space.

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

Speeding things up:
renderChanges()

Importing creatures:
A wrap-around function.

Optimizing the application with some minor changes:
Showing iteration" in an Edit box.
Inserting randomize().

EXPERIMENT EXTENSIVELY with Conway's rules.
Characterize the ecology and ethology of the creatures in the GOL:
What is the relative proportion of different creatures spontaneously created?

How do they behave when encountering changes in their surroundings?
Include this information in the challenge you hand in.

TO THINK ABOUT:

Can we automate this type of information gathering?
Does Conway's Game of Life imply anything about:
How we think the world works?
How we think we think?
Philosophy?
Epistemology?


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?

  • How about a "counter" that prints out decimal digits? A digital counter running on a computer (the GOL CA), running on a computer (the PC in front of you), running on a computer (the computational universe we live in).

Deterministic but Unpredictable:
Is there a shortcut to viewing the state of Conway's World 1,000 iterations into the future?
Given one state of Conway's GOL, can we calculate the states that preceded it?
Using the Game of Life as a "one-way" or "trap door" function:
A way to authenticate your passwords without remembering what they are?


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

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

RadioLab on Emergence...
(Begin at one minute in)

The OTCA Metapixel links have been updated by adding:
Life on Life, a superb progressive zoom out...
Some links for Brice Due, OTCAMP inventor:
The OTCA MetaPixel blog spot.
Sample Patterns
The OTCAMP Pattern in Detail
Mirek's Cellebration

Introducing the save() and open() functions.
We always SAVE thisWorld for maximum flexibility.
After we OPEN a file to thisWorld reset iterations.

Optional: Another Speed Increase:
Repeated Canvas-> calls to the PaintBox on the display take excessive time.
Instead, dynamically create a TBitmap object (e.g. worldBMP) and make the Canvas-> calls to it.
Then when you are finished, make only ONE call to the PaintBox on the display, e.g.:
Form1->PaintBox->Canvas->Draw(0, 0, worldBMP);
I've noted up to a 3-fold speed increase...

Introducing more creatures:
A glossary of terms...
Adding #defines to the switch() statement.

SOME THINGS WE MIGHT DO:

  1. Find the initial configuration for a world that runs the longest before stabilizing.
    How many initial configurations are there? 2^10,000 or 2 x 10^3,010? The age of the Universe is 4.33 x 10^17 seconds. 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.
  2. Implementing a "creature counter."
  3. Can we add a "midiRamp()" function to give us an audible "image" of how the world is progressing? How would we have to scale it?
  4. How might we evolve a bitmap image as Karl Sims did, using a cellular automaton?
  5. What if we draw a line as the initial condition for Conway's Game of Life? That's been incorpirated into Version 22b.
  6. What if we create cellular automaton to operate on an image? See our CA page near the top. In this case we have the foundation for a 16,777,216 state, 2 dimension cellular automaton. Of course we don't want to write that many rules, so let's see what we can do with three.
 

23 September

25 September

Week 5

Challenge 1
Cellular Automata

Challenge 2
Evolutionary
Computing

 

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

The Programming Challenge, due on Thursday:
Investigate and characterize some of the behaviors of Conway's world as if you were a scientist looking at the surface of some new unusual phenomenon.

Enhance the functionality of the application with variations on the initial patterns, variations on the rules and/or variations on the visualization. (I appreciate your aesthetic tweaks, but adding images and sounds that have nothing to do with the GOL will not count this tim
e.)

Remember, the point of this challenge is to illustrate the phenomenon of emergence, the observation that simple local rules lead to complex global behaviors. In other words it is important to understand that the patterns that we see do NOT have any representation in the source code that we wrote. So don't try to code "intelligence" into the rules. By contrast, see if the initial "unintelligent" settings or the rules can produce "intelligent" behavior. This is best seen in the GOL but the lesson carries over into many more complex systems.

In modeling social and cultural systems, we should be aware that collective behaviors (e.g. the recent financial crisis) may not have been invisioned by the individuals involved (e.g. the traders), yet it was their interaction that produced the pattern that emerged. Do the models that the financial sector creates accurately represent the behavior of the economy? Or do those models, when applied to financial trancastions, actually become the engines of that economy? Does the "random walk" of prices truly follow the predictions of probability theory?

Programming Challenge 1: Cellular Automata / Conway's Game of Life
DUE TODAY: Partipant presentations...

Some GOL innovations...

Programming Challenge 2: Evolutionary Computation
INTRODUCTION

CONSIDER MODELS AND SIMULATIONS IN NON-COMPUTATIONAL MEDIA:
Traditional models may have advantages over mathematical and computational models and simulations. Perhaps you played in a "sand box" as a chile, and built roads and mountains out of sand or dirt heaped up and sculpted by your hand. The impromptu "sand box" is routinely used in the field. It may be elevated to the table top to serve military planners as situation maps in war rooms. Perhaps the largest "sand box" is the model is located in China: a model of Tibet almost the size of Duke West Campus. How does the physical medium in which a model or simulation is fashioned affect its usefulness?

For TUESDAY / TRAVELLING SALESMAN PROBLEM:
Hardcopy on paper which includes screenshots and discussion.
Create the one initial configuration of cities and barriers which will most clearly illustrate the difference in the paths evolved under the several different "initial constraints." Provide screen shots and discussion of your strategy and the application's behavior.

 
A RESEARCH AGENDA

A
RESEARCH
AGENDA

A research agenda: Based upon the notion that the world is computational, how might we encode the complexity of the individual, society and culture most effectively?
Nicholas Gessler, "The Computerman, the Cryptographer and the Physicist." Pages 521-530.


xx

Given what we've learned about the games people, groups and nations play, what problem might reasonably we attack in class? An International consortium has been formed to study the financial crisis: CRISIS – Complexity Research Initiative for Systemic Instabilities. The economic models they are using are quite complex. We might, however, begin by looking at the slip-sliding definition of the "dollar" from Colonial times to the present day: Specie (gold and silver), funding the American revolution with the Continental dollar, the paper promises of private banks, funding the Civil War with U.S. Banknotes, from demand notes payable in silver and gold or secured by bonds to legal tender ("fiat money") and the issuance of new forms of currency in our money supply.

 

30 September

2 October

Week 6

Challenge 2
Evolutionary
Computing

Programming Challenge 2: Evolutionary Computation
INTRODUCTION, continued...

The visualizations and the code for a sequence optimizer:
The Travelling Salesman Problem
The Image Descrambling Problem ("a deshredder")

For THURSDAY / IMAGE DESCRAMBLER:
Why does the image descrambler "work well" (from a human perspective) on some images and not so well on others? What patterns (anomalies, glitches, curiosities) do you see in its reconstructions? Why do they occur? Are they analogous to the way evolution in the natural biological world works? What might we do to "correct them?" Create and run three (3) bitmap images through the appliction which illustrate your ideas. select images that most clearly illustrate different "success" in reconstructing the image from a human perspective. Provide screen shots and discussion of why the application "works best" on some and not on others. Include screen shots of these, before and after, and discuss them.
How could you improve the application's behavior.

A note: Last Friday I gave a talk at UNC Charlotte's "Complex Systems Institute."
Too bad we don't have one here! Nevertheless, they were quite impressed by your work.


Programming Challenge 2: Evolutionary Computation
Continued...

To turn in:
How does the image descrambler handle different types of images?
My own quick three experiments and analyses...

What are the role of introns in biological genetics?

TOPICS:
C/C++ Classes (do-it-yourself variables and functions).
Optimizing profits from trading on the Stock Exchange.
Other sequences to optimize?
Seriation in archaeology.
Ballistics: billiards, angry birds.
Solution of a simple substitution cipher.
Creating algorithmic art.

For next week:
On SAKAI please read the articles by David Fogel and Peter Bentley on Evolutionary Computation.
(Three strong schools are Genetic Algorithms, Evolutionary Programming and Genetic Programming.)
Pick a complex problem that interests you. Describe it briefly.
How would you go about representing the problem computationally?
How would you design a fitness function to measure the "success" of a solution to that problem?
Which school of evolutionary computation would be the most appropriate representation of evolution for that problem?
How did you balance the choices (above) among the different representations of the problem and of evolution?

2-3 pages, double-spaced, hardcopy, with illustrations if they add to the discussion.

Week 7

Challenge 2
Evolutionary
Computing

7 October

9 October

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.

EMBARCADERO XE6 and JAVA "ISSUES":

WINDOWS SPEECH API (SAPI):

We have some working code on our "sounds" page. See what we can do to figure out how the code works, and knowing that, how we can use it to our own ends.

EMBARCADERO XE6:

Problems migrating projects from older versions. Apparently, you can past in the old code, but you have to completely rebild the GUI from scratch. We'll give it a try with the Windows Speech API.

As far as the evolutionary program is concerned, for Thursday:
a) Write some new rules. You won't be able to change the RadioGroup, so delete the code for one of the choices and insert code of your own design.
b) Do some experiments with complex configurations of cities, boundaries and other penalties. You can save your configurations.

JAVA:

Nick,

This is a JAVA thing, and seems to be related to this latest version of Java.  I just tried to open these sites on my computer, and got the same results, independent of what browser I used.  It is NOT related to Symantec.

I'm pretty sure you can go into the Java settings and add it to an exceptions list, but this list is profile specific.  Once you've added it, the site will display properly.  I went to Menu, All Programs\Java\Configure Java.  Under security it does have the option to allow all sites, setting security on LOW, but for Java this is not a great idea in our environment.  Adding to the exceptions list in Java is better, assuming you know these sites to be safe.

Let me know if this process works for you.  I've copied Ted, to keep him apprised of the issues you're running in to.

Thanks,
Patrick

Week 8

Challenge 3
Segregation &
Assimilation

14 October

16 October

Fall BreakChallenge #3: Segregation/Assimilation.

Programming Challenge 2: Evolutionary Computation: DUE TODAY
Participant Presentations

Challenge 3: Segregation/Assimilation & Growth...
Introduction...

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

Remember to check out the notes.

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 9

Challenge 3
Segregation &
Assimilation

 

21 October

23 October

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

From Anne Driscoll:

Creating virtual creatures on which to use evolution to evolve their gaits:

http://goatstream.com/research/thesis/index.html

2013 study video summary showing the evolved human and animal gaits, and their different levels of success at different speeds and encountering obstacles. 

http://goatstream.com/research/papers/SA2013/index.html

Data driven control variable:

http://goatstream.com/research/papers/SCA2012/index.html

 

Week 10

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

 

28 October

30 October

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


Opens November 21: Alan Turing THE IMITATION GAME

Introduction to the Enigma. Decryption exercise with the Swiss NEMA (Neu Machine).


The Russian FIALKA.

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

Familiarize yourself with Flocking Version 34,
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 11

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

4 November

6 November

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 12

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

11 November

13 November

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

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

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

Participant presentations...

Rosetta's Philae probe lands on Comet 79P.

Images of Comet 79P..

Challenge #5: Sensors & Actuators
Introduction...

Week 13

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

18 November

20 November

Challenge #5: Sensors & Actuators
Continued...

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 14

Challenge 5
Realworld DAQ:
Sensors &
Actuators

25 November

27 November

Challenge #5: Sensors & Actuators
Continued...


Thanksgiving Break

Week 15

Challenge 5
Realworld DAQ:
Sensors &
Actuators

2 December

4 December

Challenge #5: Sensors & Actuators
Continued...

Last day of class...

Course Projects due today.
Participant presentations.

Course Projects due today.
Participant presentations.