P R O J E CT G U T S E CO S Y S T E M S Ecosystems in StarLogo TNG Introduction An ecosystem is a community of living organisms—along with their environment—that interact to produce a stable system. In this unit, we will explore the basic principles of ecosystems and gain an understanding of their dynamics through the use of simple simulations. Typically, ecosystems are characterized by the energy flows between producers (e.g. plants which convert the energy of the sun into edible starches and sugars) and consumers (e.g. rabbits which feed on the grass, and coyotes which eat the rabbits). An ecosystem can also be thought of as being comprised of multiple food chains, along with the environment on which the food chains depend. PAGE 2 ECOSYSTEMS A food chain is essentially a series of organisms, each dependent on each other (and ultimately, on a few primary producers) for food. For example, in an aquatic ecosystem, algae may be the primary producer, which is eaten by aquatic insects, which are in turn eaten by fish. The fish may be eaten by larger fish, which are predated upon by birds. The different levels of producers and consumers are called tropic levels. Oftentimes, ecosystems do not exhibit a simple producer-consumer relationship. Insects, for example, may be eaten by many different types of predator, which in turn are predated upon by several different types of species on the next tropic level. This relationship in an ecosystem is known as a food web. ECOSYSTEMS PAGE 3 The Base Model: The base model for this unit is a simple ecosystem that consists of rabbits and grass. The grass reproduces at a certain rate, and the rabbits randomly wander around the world eating the grass. If a rabbit stumbles across a patch of grass, they will eat it and gain energy. If a rabbit gains enough energy, they will reproduce. Conversely, if a rabbit wanders around too long without finding any grass to eat, they will die. With these simple behaviors in place, we will observe the system from the global perspective to see the relationship between the amount of grass and the rabbit populations. We will also instrument the model to gain a quantitative understanding of the behavior. PAGE 4 ECOSYSTEMS The most important part of the model is the grass reproduction, since the rabbits depend on grass to reproduce. Under a procedure, we have each agent generate a random number between 1 and 200. If the number is a 1, the grass hatches an offspring. The new grass then sets its heading randomly in a circle and moves forward random 7 step. This simulates grass seed spreading within a local area. Next, we will create the rabbit procedures. The most important component to the model is the rabbit energy, which determines when rabbits will reproduce and when they will die. Put an agent variable block in the rabbits column and name it Rabbit Energy. Next, Make the rabbits move around the world randomly. Use a standard wiggle procedure to make the rabbits randomly move around (left random 46, right random 46 forward 1). We also make the rabbits lose a small amount of energy every time they take a step by using an inc Rabbit Energy block found in the My Blocks/Rabbits bin and -.02 in order to make the rabbits lose energy slowly. ECOSYSTEMS To make the rabbits reproduce, we give them a procedure. In this procedure, if a rabbit gains 8 or more units of energy they will hatch an offspring. Reproduction has a cost, however: a rabbit loses some of its energy. We make the offspring set its heading randomly in a circle and take two steps away from its parent. The offspring also gets a small amount of randomly determined energy. Lastly, the rabbits are given a procedure to tell them what to do if they run out of energy: if their energy drops under a certain amount they die. PAGE 5 PAGE 6 We need to instruct the rabbits on how to eat: We use a collision block that makes them increase their energy by 1 if they happen to run into the grass. The grass dies. Next, we create a setup procedure that initializes the world and gives the rabbits energy. The grass is made larger than default and colored red to make it stand out from the default background. We also include reset clock and show clock blocks in order to reset plots and monitors, and keep track of the simulation time. ECOSYSTEMS ECOSYSTEMS PAGE 7 For the runtime, we will use a Run block instead of a Forever block. The populations of rabbits and grass may fluctuate wildly, and it is easier to see the cycles if the programs stops occasionally. We simply call all of the existing procedures under the run block. To gather quantitative data from our model, we will set up two monitors to count rabbit and grass populations, as well as a line graph to display population data over time. Use the monitor block and rename it “Rabbits”, and add a count rabbits block from the My Blocks/Rabbits bin. Do the same for Grass. PAGE 8 ECOSYSTEMS Lastly, add a line graph block and rename it Populations. Add in count rabbits and count grass blocks and rename the data to rabbits and grass, respectively. Using the model: 1) Run the model by first clicking the setup button, then clicking the run button. What do you observe? 2) Can you identify an emergent patterns that develop? 3) How would you use this model to test a hypothesis? 4) What is your hypothesis? (in the form of a question) 5) How would you test the hypothesis? 6) What would you change in the model? ECOSYSTEMS PAGE 9 Possible Scenarios: 1). The ecosystem remains stable for an indefinite period of time. Note that because of the need to balance the rates of rabbit reproduction and grass regrowth, those variables must be precise to achieve this outcome, like balancing a pin. 2). Rabbits go extinct. The rabbits tend to experience a population boom in one location eat all of the food, and then subsequently starve. Because the rabbit populations fluctuate wildly, there is a good chance the rabbits won’t find enough food to continue their population to the next generation. 3). Ecosystem collapse. Both rabbits and grass go extinct. This happens when the rabbits eat all the grass. Without any additional food to eat, they will starve. Ideas for Expanding the Model: 1). The model has very simple rabbit behavior. Their only means of encountering food is if they randomly wander into it. Are there ways to improve how rabbits search for food? 2). Rabbits instantly eat any food they come across regardless of their energy level. Can you find a way to make the rabbits eat only when they are hungry? What do you think this might do to the long-term stability of the population? 3). The rabbits have no predators. How might the addition of a predator change the ecosystem? 4). Grass is killed when a rabbit eats it instead of being “eaten down” and recovering like real grass. Can you find a way to make the grass behave more realistically when rabbits eat it? Is the solution to change how the grass grows, how the rabbits eat it, or both?