Description of A Proposed Artificial Life Programming Course
for January 2006

This course is a brief introduction to some aspects of artificial life including an introduction to the simulation of autonomous robots. Students will construct programs in Java to simulate some of the simpler behaviors of insect like creatures (with small capacity information processing systems), including obstacle avoidance, food finding, and death and reproduction. In the process students will learn how to write applets (those little programs which can run on web pages), learn how to work with GUI (Graphical User Interface--not related to WEDGY), and learn how to create animated graphics (with graphics buffers and a thread for flicker-free performance) and produce pretty colors on their screens. Students may also want to generate programs to illustrate boids (flocking creatures; see e.g lots of boids, more flocking creatures, and floys ), simulate walking devices of 2, 4, or 6 legs (not as easy as one might expect; see e.g. a real course on the subject ), or simulate cooperative behavior among robotic ants (leaving scent trails leads to cooperative behavior; see e.g this short abstract or this long presentation).

Below we see a Java applet which simulates some artificial walking insects. Use the scroll bars at the side and bottom to change your view. Each insect has a pair of eyes, each having only two pixels, which are used to help it avoid other insects and obstacles (the red circles). The "Left Eye" and "Right Eye" displays show what the blue bug is looking at. Based on these four pixels of information the blue bug makes turns when confronted by obstacles.  There is a more advanced version of bugs which follow scents to find artificial food. (I love artificial food). Watch the bugs and then answer a few questions below.

What did you notice about the different sized bug?

Narrow bugs have eyes closer together.

So?

Well, having eyes farther apart means there is a greater difference in what the bug sees in each eye, which means the obstacle avoidance system (part of the Java program) is more efficient in detecting obstacles.

Do the narrow bugs tend to run up closer to obstacles before they stop than the wider bugs?

Sure do. Often they run right over the obstacles.

Why?

Their eyes are too close together.

Would you expect the small bugs (with closer eyes) to be better at avoiding small close spaced obstacles, than big bugs with widely spaced eyes?

I'm not told enough about the way the eyes work! (That's not much of an excuse.)

What else did you notice?

Do all the bugs have the same turning radius? (I don't know. I need to watch them as they make a turn after going out of bounds.)

I like the big slow orange bug.

This page prepared by C.Hartley, Director of the Ernest B. Wright Observatory at the Department of Physics at Hartwick College in the City of Oneonta, NY. More things from C. Hartley at his home.

All text & graphics copyright ©2005 by C. Hartley. unless noted otherwise.

.