Rabbits

What is it?
This project explores a simple ecosystem made up of rabbits and grass. The rabbits wander around randomly, and the grass grows randomly. When a rabbit bumps into some grass, it eats the grass and gains energy. If the rabbit gains enough energy, it reproduces. If it doesn't gain enough energy, it dies.
How to Use It

Click the SETUP button to set up the rabbits (red) and grass (green). Click the GO button to start the simulation.
The NUMBER slider controls the initial number of rabbits. The HATCH_THRESHOLD slider sets the energy level at which the rabbits reproduce. The GRASS-GROWTH-RATE slider controls the rate at which the grass grows. (Note: If you change the GRASS-GROWTH-RATE slider in the middle of a simulation, the change will not take effect until the next setup.)

Things to Notice

Watch the TOTAL-RABBITS monitor to see how the rabbit population changes over time. At first, there is plenty of grass for the rabbits. The rabbits gain energy and reproduce. The abundance of rabbits leads to a shortage of grass, and soon the rabbit population begins to decline. This allows the grass to grow more freely, providing an abundance of food for the remaining rabbits, and the cycle begins again.
The rabbit population goes through a damped oscillation, eventually stabilizing in a narrow range. The total amount of grass also oscillates, out of phase with the rabbit population.
These dual osciallations are characteristic of predator-prey systems. Such systems are usually described by a set of differential equations known as the Lotka-Volterra equations. StarLogo provides a new way of studying predatory-prey systems and other ecosystems.

Explorations

With the current settings, the rabbit population goes through a damped osciallation. By changing the parameters, can you create an undamped oscillation? Or an unstable oscillation?
In the current version, each rabbit has the same hatch-threshold. What would happen if each rabbit had a different hatch-threshold? What if the hatch-threshold of each new rabbit was slightly different from the hatch-threshold of its parent? How would the values for hatch-threshold evolve over time?

StarLogo Features
This project uses turtles to "grow" the grass. It would be more "natural" for the patches to grow the grass, with a command like: if (random 1000) = 0 [setpc green] But that command would be much slower, since all of the patches would need to execute the command.

We welcome your feedback and suggestions! Please send us email.