Isle Royale: portage; moose; the flattened grass is a moose bed.
MooseWood Home

Software Notes

What is this?

This simulator uses Forska, a boreal forest simulator, to provide the landscape base for Gecko, an individual based ecosystem simulator. Gecko is providing the user interface and spatial structure, herbivores, and eventually carnivores. Forska provides climate change and tree species data, and simulates the patches of forest within each hexagon.

MooseWood is a model fitting Isle Royale, Lake Superior, on this software base. In other words, Gecko Forska is the software, and MooseWood is the substantial parameterization to model this boreal forest, this climate, this geography, these species, etc. The software can run other models for other locations.

Gecko Forska was written by Ginger Booth as a baseline for a global warming project on Isle Royale, Lake Superior, for Oswald Schmitz of the Yale School of Forestry.

The Java translation of Forska2v runs at 3 different levels:

  1. Gecko Forska batch application, with output files.
  2. Gecko Forska as a Java graphical application, with output files.
  3. Gecko Forska as a web applet.
What are the hexagons?

Each hexagon represents a 0.1 hectare patch of forest. (So the default 217 hexagons in this demo represent 21.7 hectares.) Each hexagon is supposed to be the size of a single canopy tree in the forest. Within each patch, there are up to 300 individual trees, of the species listed. Each hexagon is colored by the tree species with the highest biomass in the patch. A dark hexagon has been "disturbed" (wiped out) that timestep (year). The hexagons can be arrayed into a superhexagon or a rectangle, as desired.

The spatial relationship between the hexagons isn't used in simulating the forest. The hexagons do not know that they are neighbors. But higher level Gecko agents (moose, wolves, whatever) can see what patch of forest they wander across.

The current user interface is set to run one stand in the forest at a time (homogenous conditions.) However, the goal is to tile an input map with stands, each with a mini-climate (sunny, dark, low, hi, rocky, swampy, etc.)


The primary driver of forest growth in this simulation is the climate input (shown on the climate plot), combined with the assorted species' behavioral parameters. The climate data was interpolated from sketchy local data for 1940-2001. The species parameters came from David Price's "Pingree Park" experiment, for Prince Albert park in Central Saskatchewan.

User Interface

Most of the Forska parameters are not available to change yet at the user interface level. The parameters that are available are listed in the Forest Parameters sections below.

  • Pick on the name of a species to highlight it on the hexagon and plot displays. Click again to unhighlight it.
  • Select from a list of canned simulations on the Scenarios menu.
  • Set the number of years and statistics and forest-drawing cycle length via the Parameters | Run/Display menu. If you run past the end of the climate data, the simulator continues cycling through the last N years of data it has.
  • Modify the scenario via the Parameters | World menu. There are also Parameters | Moosebot and Parameters | Mini-Climate menus. More on these below.
  • Grow plots to full-window size via the usual Windows method (upper right icon). Plot data can be zoomed by drawing a box upwards to zoom in, downwards to zoom out, and clicking (no box) to restore original plot limits. The same works on the hexagons, except that there is no zoom out.
  • Forska's living stand descriptions (a report every 10 years) is output to the Java console.

The data on the Climate plot was scaled for readability. The "degree days/50" is growing season degree days, divided by 50. The "drought index" is growing season drought index, times 10. "CO2 ppm/10" is atmospheric carbon dioxide level, parts per million, divided by 10. CO2 levels only matter if the parameter CO2 fertilization is turned on. (I added the CO2 trace to make the Scenario time sequences a bit clearer.) There are other climate data in the input, but these seemed sufficient telltales of the climate changing.


In addition to the forest, there's an optional "Moosebot", a cartoon agent with some mooselike features. Unlike other Gecko Forska agents, it has no physiology. It can't reproduce, it can't die, it simply moves around pruning trees. The default area of this simulation, 21.7 hectares, is about 1/11 the actual 250 hectares (2-3 sq km) a moose usually ranges. You can set the number of moosebots and alter their behavior from the Parameters | Moosebot menu:

Forest Parameters

Most of the Forska parameters have not been brought up to the user interface level, but some are tweakable on the Parameters | World menu:

  • CO2 fertilization : Checkbox, turn on or off. If on, Forksa calculates a growth multiplier factor based on each year's atmospheric CO2 levels, as per the IS92a standard schedule (gray line on Climate plot). You'll notice on the plot that constant CO2 is used for initial and end phases of each Scenario. If CO2 fertilization is off, the multiplier is simply set to 1.0, equivalent to the 1974 value when it is turned on. The growth factor formula is:

    • mult = 1.0 + [ (0.7 x) / ((0.7)(330) - 80)]
    • x = additional CO2 this year over the base year (ppm)
    • 0.7 = ratio of intercellular CO2 to ambient CO2 that characterizes the photosynthetic pathway of C3 plants
    • 330 = base year CO2 level (1974)
    • 80 = species CO2 compensation point (ppm)
  • max CO2 fert factor : The default, 1.35, says to disallow CO2 fertilization effect greater than a 35% increase over 1974 levels. Setting this to 10.0 removes any curb on the fertilization effect (max 10x tree growth rate). This simple stopgap is here because the formula above quickly gets to non-credible growth multipliers:

    Year CO2 Multiplier Comments
    1907 298 0.853 Saskatchewan init phase
    1941 308 0.899 all Isle Royale init phase
    1974 330 1.0 all years if CO2 fert turned off
    2001 375 1.20 year 201 Isle Royale, 301 Saskatchewan
    2016 407 1.35 default limit reached
    2028 440 1.50
    2100 712 2.75 end phase, all scenarios
  • restart randoms : If checked, reruns of scenario use different random sequence so that you can see how much difference random chance makes in forest development. The Moosebot always gets a new random sequence.
  • num patches : Number of 0.1 ha patches (the hexagons). Each patch contains a maximum of 300 individual trees. Most numbers give an incomplete hexagonal or rectangular array of patches, hence the peculiar choices of 217 and 208.
  • array superhex : If checked, tiles the hexagonal patches into a larger hexagonal array, else a rectangular arrangement.
  • climate random seed : By default, the climate sequences are periodic, drawn from a historical collection of years (divided into years available for projecting backward, and years available for projecting forward, from the smallish (59 for Isle Royale and 93 for Saskatchewan) collection of data years.) If you enter a non-zero number for the climate random seed, it randomly selects among years before applying climate warming & CO2 schedule, so that the climate series is non-cyclic.
Gecko Forska does not really generate climate scenarios - it simply assembles them from an input climate sequence and the conclusions of well-know climate projections and a standard CO2 projection. The
Mini-Climate parameters create variations on the input year sequences.


A forest like Isle Royale is not homogenous in landscape - there are ridges and low areas, with more or less sun, rocky or swampy ground. The "climate" input for Forska contains monthly precip, and monthly mean temperature lows and highs, and average cloud cover (that's average forever, not by month, in practice) for the area. "Mini-Climates" are intended to vary the climate/topography at the level of a "stand" (these demos all model small "stands" of trees.) All the "Upland" scenarios are sunnier/warmer/drier hillside stands, or Mini-Climates.

Here, the slopes are modeled as 80% of the incoming precipitation, and 75% of the groundwater retention ability (run-off). Those percentages would be lower for a steeper or stonier slope. The temperature offset models the main effect of a sunnier/shadowed area, because sunlight in this model doesn't affect temperature, only photosynthesis.

Mini-climate offsets are applied before the climate warming scenario. So a base year is selected, the temperature/etc. amended by mini-climate, then global warming scenario deltas are applied.


This MooseWood demo provides an assortment of canned Scenarios to choose from. The first on the list is run automatically when the simulator starts up. At the moment, the main difference between them is what climate series they run. All except Saskatchewan run climates for Isle Royale. Their general scheme is:

  1. init phase : Grow a starting forest using a repeating climate sequence. This phase runs to year 141 for Isle Royale, 207 for Saskatchewan (corresponding to 1941 and 1907, respectively.)
  2. historical phase : Represents the years of historical climate data up to "now". This is years 141-200 (1941-2000) for Isle Royale, years 207-300 (1907-2000) for Saskatchewan. The end of this phase already shows climate warming for Isle Royale, but the Saskatchewan 93 year historical sequence was detrended to prevent that.
  3. ramp phase : Differs for each scenario (missing from Historical). Represents climate change projection, years 2000-2100.
  4. end phase : Repeats ending constant-climate sequence to see what would happen if the forest had time to catch up (adjust) to the end of the change scenario without further changes.
  5. Watch the CO2 trace on the Climate plot to track the phases.


    • Historical : The base of all the Isle Royale sequences.

      • init phase : Years 1-141, interpolated historical data based on 1941-1979, a 39 year sequence, to initialize the forest.
      • historical phase : Years 141-201, interpolated historical data based on 1941-2001, a 59 year sequence. So this central portion of the simulation is trying to show the climate that really happened for 59 years.
      • ramp phase : none. All the apparent climate change happens in the historical record.
      • end phase : Years 201-300, end phase, a 17-year sequence repeats based on 1983-2001 (with some years missing).

    • Upland Historical : The basic historical climate sequence does not support northern hardwoods - it's simply too cold, with insufficient growing season degree days for those species to survive. However, Isle Royale does have significant communities of northern hardwoods. It also has a glacial scratch formed landscape, with stripes running almost east-west, which provides some sunnier slopes. The "Upland" climate variants simply add a delta to the temperature and cut precipitation by 20% to reflect water running off the slope. This is sufficient to provide some habitat for northern hardwoods.
    • Upland in general : The CCC climate warming scenario provides both historical and "upland" variants. The others just have upland.
    • XXX warming : All these are based on the Historical scenario, but insert a ramp phase as years 201-300, then have end phase 301-400. Each of these standard climate change scenarios provide a doubled-CO2 ending climate change (average change in mean temperature and precipitation, by month). The 17-year historical repeating sequence is repeated through the ramp phase, with these ending climate changes added linearly over the 100 years. Then for the end phase, the 17-year base sequence is repeated with the whole of the climate change in each year. The climate changes were taken from VEMAP datasets for a grid near Isle Royale on the Minnesota coast of Lake Superior. Overall yearly climate changes are summarized below, but the climates are based on monthly data.

      acronym T Precip name
      CCC +3.6 C +14% Canadian Climate Centre
      GFDL R30 +5.4 C +13% Goddard Fluid Dynamics Lab R30
      GISS +4.8 C +3% Goddard Institute for Space Studies
      OSU +3.5 C +7% Oregon State University
      UKMO +8.6 C +18% UK Meterological Office

    • Saskatchewan : This is a 600 year scenario. It only draws the trees every 10th step by default. This is not MooseWood (Isle Royale), but a verification run, an abbreviated version of David Price's "Pingree Park" experiment, modeling Prince Albert park in central Saskatchewan.

      • init phase : Years 1-207, detrended historical climate data (93 years) is cycled for an initialization phase.
      • historical phase : Years 207-300, same detrended latest 93 years (with CO2).
      • ramp phase : Years 301-400, same sequence of years gradually changes to 1.5 degrees C warmer and 20% less precipitation. Note that all the Isle Royale climate projections are much warmer, and get wetter instead of drier.
      • end phase : Years 401-600.

      Drought is a major driving force here. Note the community structure (biomass of assorted species) in the forest before and after the climate warming phase. In itself, 1.5 degrees C isn't a lot, but the growing season (gdd/50) increases 20% while precipitation drops 20%, and the drought situation is severe.

    Ginger Booth, revised May 2005, original February 2003