ArtiFishial Life


Introduction
Proposal
Problem Statement
Approach
Results
References
Code Directory 
Class Presentations

 

  The first approach that we took to this project was a Java Applet. We soon realized however, that the graphical aspects of creating this model in Java were a little overwhelming. It would take a lot of work just to develop a good interface, not to mention the fact that the simulation would be very simple due to time constraints. Having already done research into StarLogo, we realized that this approach would create a program that was easier to implement, would result in a more complex simulation, and have a good interface.  StarLogo was created by Mitch Resnick at the MIT Media Lab, and is a programming language similar to Logo, but with multiple turtles and built-in parallelism.

    To begin our StarLogo program, we immediately considered a Dr.Seuss approach of "One fish, two fish, red fish, blue fish." (Except that since the water was already blue, our fish needed to be yellow or green in addition to red.) We also wanted to model sharks that would create a predator/prey interaction within the pond, thus increasing the complexity and realism of the simulation.

    After creating the fish, we first looked at how we wanted to model the schooling. This work was actually already done for us, since one of the programs that came with the Mac download of StarLogo was a bird flocking model. The schooling method that we created extends the flocking method created by Resnick, just adding in the factor of how social a fish is with others of its kind. Once we had good schooling behaviors working, we worked on creating fear of sharks. We created a model that ran away from any sharks that were in a fish's immediate radius (the size of this radius was implemented as the Fear factor set by the user in a slider bar.) After we had fish that panicked and ran away from sharks, we worked on the difficult task of how to rate fear of other fish with desire to be social with fish of its breed. We ended up with a vector addition model that weighted heading based on fear and social factors along with how much to follow those headings.