ArtiFishial Life


Introduction
Proposal
Problem Statement
Approach
Results
References
Code Directory 
Class Presentations

 

    We found our results from this project extremely promising. In fact, we were actually quite surprised by how well we did. During the course of writing the code, we fell into the centralized mindset a few times and ended up with code that didn't work as we expected.  One of these difficulties arose trying to define the neighborhoods of fish and to figure out how to weight fear and sociability. We thought that Craig Reynolds said it well when he first started to work with his model of flocks, schools and herds:
One of the charming aspects of the work reported here is not knowing how a
simulation is going to proceed from the specified behaviors and initial
conditions; there are many unexpected, pleasant surprises. On the other
hand, this charm starts to wear thin as deadlines approach and the
unexpected annoyances pop up. This author has spent a lot of time recently
trying to get uncooperative flocks to move as intended ("these darn boids
seem to have a mind of their own!").
    However, we were able to eventually produce a model that used decentralized behavior and emergence to make schools.  After many trials, we even produced a fear/social model that we thought worked fairly well.  In addition, we were also able to produce the predator/prey model which we didn't even feel was in the scope of the project when we originally started. The pond model looked great; the bubbles that we implemented really added to the realism of the pond. The interface was simple to use, and it was easy to see how different values for the inputs affected schooling, fear, and demise (from sharks eating habits)  of the fish.

    Some of the negative aspects associated with the project resulted from frustrations because there was no way (that we found) to print debugging information within any of our methods.  Sometimes, we experience "buzzing" of the fish, where the fish heading keeps flipping, causing a flashing effect as the fish graphic flips left to right. StarLogo also wraps around the edges of the screen, which looks slightly odd as fish go through the top to reappear at the bottom. Sometimes the fish (or sharks) travel vertically for long periods of time - this doesn't look very realistic as a fish schooling model, but we could see no way to prevent those interactions from occurring. Lastly, there was an error in the StarLogo code that caused the sharks to migrate to the center of the screen after eating all the fish, but that was beyond our control to fix.
 

Some screen shots of one simulation:

          

                         Initial Configuration                                                             Later time step
 

          

                                                                                         Later  Still

Notice  the greens get eliminated fairly rapidly. Their fear was set low, as was their speed. Red fish wanted to school more than yellow fish and were slightly more fearful of others.  All 10 of the original redfish survived, while only 7 of the yellowfish did, and none of the original 10 greenfish survived.