Unstable Quickie Scenario, 2 species seedlings, time 0.
Time 0: A little field is seeded with two species of plant, dubbed "Plant" and "BigPlant." (BigPlant is bluer.) Each timestep, both seedlings take their sun, pay their metabolic costs, and grow. Growth is allometric.

The nearer plant is big enough to reproduce, time 240.
Time 240: Plant reaches reproductive size and starts new seedlings out of its biomass. The difference between Plant and BigPlant is the size threshold for reproduction. BigPlant isn't big enough yet. The seedlings survive or die based on whether they land on their own place in the sun. Seeds can't survive much overlap.

Plants compete for area, split resources on overlap, time 420.
Time 420: The little field is crowded. Most plants overlap. BigPlant is reproducing, but only one of its seedlings has taken root (barely visible, left rear.) The plants do move, by the amount they grow or shrink. They're jostling to even out all the competitions.

Yellow grasshoppers graze the plants, time 450.
Time 450: Yellow grasshoppers are born. They eat whatever plant they intersect with, then move by a fixed distance. Their direction is random within a constrained angle ('veer') of their last move.

Red (active) and purple (digesting) spiders hunt the grasshoppers, time 477.
Time 477: Spiders hunt the grasshoppers. The red spider is active. This species looks beyond its sphere, and moves toward food. The darker purple spiders are sleeping. A more frenetic predator would require a much larger food base.

Animated version (639kb.)

What are the Circles?

Gecko is an individual-based ecological simulator for modelling ecosystem dynamics. All the individuals, generally plants and animals, move freely rather than being gridded to a fixed-position lattice. The GrassWorld models here are of an essentially flat system: plants and grasshoppers and spiders in a field.

Gecko takes a "follow the money" approach to modelling ecosystems. The coin is the energy needed to fuel metabolism to stay alive and maybe grow and reproduce. Our field is evenly replenished every timestep with sun and water and adequate soil. The plants convert this energy input into plant biomass. The grasshoppers eat the plants, converting carbohydrates (at a loss) into grasshopper flesh. The spiders eat the grasshoppers. The biomass of a newborn is supplied by the parent.

Gecko abstracts individuals as spheres. Each sphere represents an agent's extent in time and space. An agent exists 'here' 'now'. The size of the sphere also grows allometrically as the agent grows. So the sphere shows the agent's biomass. Agents eat where they are. They may not care what exists outside their spheres. Agents interact with other agents they intersect in time and space.

Since plants effectively 'eat' their place in the sun, their energy intake is how much floor space they intersect. Where they intersect another plant, the energy of the overlap has to be split between them. The plant species to the left are defined by sun conversion efficiency, minimum biomass to survive, biomass size of a seed, and biomass required for reproductive size. Since radius and volume and biomass are locked, the sizes are specified by radius. Plant and BigPlant are identical except for breeding radius.

The circles on the screen are a quick sketch of the spheres. The illustration to the left shows the spheres that the circles represent. It's a run of the scenario "Unstable Quickie" in the basic Gecko web demo. This demo is quick because it supports so few agents, and unstable for the same reason. The same species mix on a bigger field can survive indefinitely through boom/bust cycles.

What is Gecko?

Gecko is a simulator for these ecosystem models. Within its basic model, of spheres and energetics, one can build different models, usually by building new species and setting them up to play together. This setup is called a protocol. Since most Gecko models have some random influence, individual runs differ.

This latest version of Gecko is implemented in Java 1.1. The same protocol can be run over the web, or locally as a graphical or batch application, on any machine with Java installed. In web mode, Gecko's only output is graphics, and the protocol is modified only via the menus ("RunControl" and "Parameters".) In application or batch mode, the plotted statistics are output to file for analysis, and the protocol can be changed with any text editor. New species are written as Java classes. They can usually inherit the bulk of their behaviors from pre-existing species.

Two families of Gecko models are currently viewable on the web:

  • GrassWorld, variations on the species illustrated here.
  • ScaredyWorld, a seasonal GrassWorld where grasshoppers evade predators, to explore predation effects.

Another major group of Gecko models form BacSim, the first individual-based simulator for microbial ecology. BacSim uses a 3D world, with input resources diffusing through the substrate volume. As of this writing, the latest BacSim is under construction. BacSim's author is Jan-Ulrich Kreft, at the University of Cardiff, Wales.

A model of hardwood forest succession in New England is in the planning stages. A number of models were explored in a prior version of Gecko, including biomass dynamics analysis, prey selection scenarios, assorted reproductive and lifecycle behaviors, and an Evolution Strategy engine for exploring the protocol parameter space. These can be ported to the current Java version on an as-needed basis.

Gecko's landscapes are also active agents with behaviors, by the way. In the GrassWorld scenarios, a self-replenishing landscape feeds the plants and collects all dead matter. The BacSim landscape handles resource diffusion and recycling. The landscape takes over the parts of the model for which individual actors are not desired. So, for instance, another GrassWorld could have the grasshoppers eating landscape, ignoring plant population dynamics to focus on higher trophic levels.

Tools

Gecko's source code is available for the asking. Java (the "JDK") is freely available for many computer architectures from Sun Microsystems. There are many fine Java development environments (IDE's) available, many free (such as Kawa, and JBuilder for educational users.) Java 2.0 has been avoided so far due to lack of popular browser support. The bubble pictures to the left are generated from Gecko output, with the free 3D rendering system POVray.


Ginger Booth, September 17, 1999