2015 Project 3
In this project we shift to a more realistic simulation environment: PyBioSim. You can learn about how to install it and how to make it work here PyBioSim. Your task is to create a flock of at least 10 birds and a herd of at least 10 cows and to create movies of them moving around. You should vary at least one parameter of their behavior and create various movies that show how that parameter affects their behavior.
Suggestions on how to program the behaviors
This is an open ended project that is mostly up to you, but here are some ideas that you may choose to follow:
1. Expand the world to be at least 1000m x 1000m x 1000m with x=0m being "the ground." This will give your agents more room.
2. The movies should be about 2 minutes long. You can adjust the FPS factor so that you generate fewer frames, and thus you'll be able to create the movies faster.
3. Program the "ball" to move around the environment in an interesting way for the full 2 minutes. You can program your flock and herd to try to follow the ball.
4. Initialize your herd animals at Z=0, and keep them there so they don't leave the ground.
5. Initialize your flock animals at some positive Z location.
6. Initialize the animals at at otherwise random locations so we can see how well and quickly the merge into a flock/herd.
7. I suggest you use a motor schema based formulation to program your animals. Recommended schemas include: move-to-ball, move-to-herd-center, avoid-teammate, avoid-obstacle.
8. Include some obstacles in the environment so we can see how your animals deal with them.
Conduct a quantitative comparison how your animals perform as you change their behavioral parameters. You should provide two movies illustrating this (no more due to space issues), but you may create graphs or other data representations to illustrate your results.
Resources and Ideas
What to Turn In
Via t-square turn in attachments only:
- Your "brain" python code.
- Two movies.
- Your report in report.pdf
The report should describe your approach in enough detail that someone else could implement it. What are the behavioral components you used? What are their parameter values? Which parameters did you vary or experiment with? What were the results?