Your browser version is outdated. We recommend that you update your browser to the latest version.

Fox Rabbit  (Artificial Life)

Fox Rabbit is an 'a-life' program. 'A-life' stands for artificial life: a phenomenon in a computer program that simulates certain aspects of real, biological life. Besides Fox Rabbit, Roorda wrote another a-life program called Genimal.

Where Genimal simulates evolution through genetic algorithms, mutations and survival of the fittest, Fox Rabbit simulates emergent  group behavior and the rise and fall of populations of predator and prey species.

With surprising results.

Introduction

Experimentation

Emergent group behavior

Comparison with the Theoretical Model

Exercises for students, linked to Roorda's books Fundamentals of Sustainable Development and Basisboek Duurzame Ontwikkeling, make use of the computer program shown on this page.


Introduction

The program shown on this page is a simulation of the growth and decay of two species in a fixed landscape. The species involved are foxes (the preditors) and rabbits (the prey).

Such a simulation can be made in several ways. One of them is the application of a set of mathematical formulae that describe the model completely, leaving no opportunity for coincidence. This is what another program by Roorda does: Fox Rabbit (theoretical model).

Another kind of simulation does not make use of mathematical formulae but of a large number of elements (foxes and rabbits) that actually are place in their landscape, and then are free to behave according to certain pre-programmed behaviour. This kind of programming is called 'artificial life'. This what the program on the present page does. 

Imagine: a region filled with grass. Think of e.g. Europe (as in the image above), or just a rectangular field (as shown below), or anything else. Grass grows everywhere. On land, that is, because the region may partly be filled with water: oceans, sees, or lakes.

Everywhere where grass grows. rabbits grow too. As it goes with rabbits, they multiply; and the speed at which their population grows is directly proportional with the local number that is alive. In other words: the more rabbits you have, the more rabbits you get.

In the maps in the program, the rabbits are visible as small dark-blue dots. Very small: you may think you are watching, say, dust or so, but they are rabbits, believe it or not. The close-up on the right shows them a little bit more clearly.

This may sound as a paradise for the rabbits. But alas, there are foxes too. Foxes eat rabbits. When they do, the number of rabbits locally decreases, evidently. Besides: if foxes succeed in eating enough rabbits to grow very strong, they multiply.

The foxes are shown in the maps as larger red squares: you can see them more easily as individual creatures.

Fox behavior in this program is very simple. The program goes through a loop of events. In every loop, each fox does this:

  1. First it sees if there are one or even two rabbits within jumping distance (i.e. a couple of pixels on the screen).
  2. If so, the fox tries to jump to them, catch them and devour them. However, this is not always successful.
  3. If, thanks to consuming one or two rabbits, the strength of the fox reaches at least at a certain minimum level, it procreates. This is not a very thrilling event, as the foxes in this program are not male or female. Hence, sex is very simple: a new fox pops out and starts doing the same as its parent.
  4. If no rabbit is within jumping distance, the fox suffers. It loses strength.
  5. If the strength gets below a certain minimum level, the fox dies. It vanished from the screen.
  6. If the fox does not eat and does not die, it jumps a few pixels in a random direction. Yes, they are not very smart. (They don't jump into the water: they are not that silly.)

That's it. In other words, the fox does not:

  • Make any plans for the future.
  • Coordinate its actions with other foxes. Actually, it ignores all other foxes completely.
  • See any rabbits beyond its (very small) jumping distance.
  • Evolve, improve, learn, practice, etc.

Experimentation

It is fascinating to compare the development that unfolds when the process is started, with the one that the Theoretical Model exhibits. The mechanism is very different: where the theoretical model is simply based on two mathematical formulae, the A-life model simulates the process in a kind of 'natural environment' where 'real' (virtual) foxes hunt their preys. Below, the two processes are compared in more details.

The program enables the user to perform experiments. The landscape can be changed: it can be selected out of four different regions.

The initial number of rabbits and foxes can also be changed.

Besides, some characteristics of the foxes can be adapted. There are three parameters:

  • Fertility: the minimum strength required to procreate. If the parameter is lowered, the foxes will be more fertile and produce more offspring.
  • Hunting speed: the distance a fox is able to jump, expressed in pixels on the screen.
  • Hunting skills: the likelihood that the foxes will be able to catch rabbits when they make their jumps towards them.

Varying these three parameters, the user is able to test if the following hypothesis is true:

    'A species of animal is more successful if it is (1) more fertile, (2) faster and (3) more skilled.'


Emergent group behavior

The actions of the foxes are 100% arbitrary. Also, they act completely independent from each other. So, it is fascinating to find that an apparent group behavior emerges spontaneously, as the images in this section prove.

 

First, watch the first three images on the right. They are all taken in a rectangular ecosystem without any objects or barriers.

 

The first image shows the initial state. A low number of foxes is distributed randomly through the landscape.

 

In the second image, the foxes have started preying the rabbits, which starts to create a less-than-random distribution.

 

 

 

 

 

 

 

 

 

 

 

 

After a while, the foxes have formed what seems to be hordes of wild animals storming the rabbit population in an apparent attempt to kill them all.

 

 

 

It is this 'horde-like' behavior that creates the illusion of planned or at least coordinated action. Actually, no coordinated behavior has been programmed at all.

 

 

 

 

 

 

Another example shows the same kind of emergent pattern.

 

 

This time, a map has been selected that looks pretty much like the Great Lake Area in North America.

 

 

Starting with an initial random distribution, in this example after a while the population density of the foxes has become quite low: probably the foxes have recently had tough times.

 

 

Some time later, the surviving foxes have spontaneously formed a horde, which storms the world like the armies of Attila the Hun.

 

 

As the horde storms to the West, it eradicates the entire rabbit population in its passing.

 

 

 

After the horde has passed, slowly the rabbits succeed in recreating a rather dense population.

 

 

 

Finally, the foxes reach the uttermost west. Now there is a big risk that all of them will die due to lack of food.

 

 

 

The fox population was too greedy, and is now risking extinction...

 

 

 

A striking illustration of overexploitation, isn't it?

 

 


Comparison with the Theoretical Model

In the computer program Fox Rabbit Theoretical Model, it appears that the development of the populations of foxes and rabbits is cyclic: it repeats itself exactly, over and over again.

In the present program, based on an A-life simulation, such a cycle is less clear. The typical periodic shape of the graphs of the theoretical model can be recognized vaguely in some parts of the A-life graph above on this page; but other parts hardly exhibit the same behavior.

In some simulations, the cyclic behavior can be recognized more clearly, as the graph below illustrates.

It is interesting to use the results of this graph for a phase diagram, and then to compare it with the phase diagram of the theoretical model. In the present case, the consecutive cycles are recognizable but certainly not identical. In order to distinguish the cycles, they have been named 'cycle 1' till '6', and each cycle is given its own color:

The shapes of the 6 cycles remind of the characteristic shape of the phase diagram of the theoretical model, but of course there is much more random variation.

 

The phase diagram of the theoretical model  -->


In some cases, the cyclic pattern is hardly present initially, but the ecosystem 'finds' the cycle after a while, as in the following graph.