Beyond the Limits: Computer simulation software to accompany the book Beyond the Limits
by Kenneth L. Simons
Jennifer Newbury & Aaron Young
This program uses the "World3" computer model of Beyond the Limits. The model can help you think about possible world futures, and help you investigate possible effects of global policies. Do not use it to predict the future. The model is a tool for thinking. Use it to help you revise your conceptions.
The World3 model shows you many possible patterns of events that might happen in the future. It lets you think about how world policy could affect these possible patterns of events, thereby creating a better future. It gives you an understanding of the underlying causes that lead to these patterns of worldwide events.
Back to main document about Beyond the Limits.
This program requires:
If you are using the small version of the program:
For any version of the program:
Back to contents.
You may copy and distribute this program at no charge, provided
This program is Copyright ©1997, 1996, 1995, 1994, 1993, 1992 by Kenneth L. Simons.
If you have questions related to the program, while no formal system of technical support is presently available, feel free to contact the author. If you want support related to the World3 model, you may be able to obtain help from the University of New Hampshire's Laboratory for Interactive Learning, perhaps for a registration fee. Other materials related to Beyond the Limits are also available from this Laboratory. Contact the Laboratory at this address:
re: Beyond the Limits software
Laboratory for Interactive Learning
University of New Hampshire
Durham, NH 03824
Back to contents.
The program has three sections (fig. 1):
Figure 1. The main screen of the program. Click on the buttons to access each of the program's three sections, or to quit.
The second section lets you alter the World3 model (e.g. fig. 2). You can change all of the factors that the authors of the book Beyond the Limits changed in their book. In each case, the program gives a brief explanation of what you are changing. A detailed explanation is available by clicking on the middle button on the left side. The second section also has diagrams of the World3 model, just like those in an appendix of Beyond the Limits. You can click on any part of the diagrams to see an explanation and the equation for a variable, and to change a constant or graphical function. Finally, this section includes a powerful tool for sensitivity analysis of model parameters.
Figure 2. Part of the Change the Model section of the program. The top left button returns you to the section's table of contents. The middle left button gives you detailed information about this change to the model. The bottom left button turns on help, to explain how to use this screen. The two triangular buttons at the bottom let you page through this section. To change the model's assumptions about the amount of critical resources available in the ground, click and drag on the sliding control.
The third section lets you use, or "run," the model (fig. 3). As simulated years go by, bars go up and down and messages appear. To draw graphs that show how any of the variables in the model change over time, click on the graph button. The button below that lets you change the simulation speed, or if you want, turn on a "game mode" (described later) that lets you use sliding controls to change the model easily while it runs. Changes from the Change the Model section are ignored while you use game mode.
Figure 3. The Run the Model section of the program. The bars go up and down as amounts change of the world's population, industrial output, non-renewable resources, pollution, and food. The lower right corner shows the year. Under the year, messages sometimes appear about what's happening in the world. The start, pause, resume, and stop buttons control whether the simulation is running. The sliding controls at the bottom do not usually appear. They are used in the program's "game mode," described later in this handbook. The globe button returns you to the program's main screen. The graph button lets you look at the model's results from 1900 to 2100 (or as far as you have gone in the simulation). The next button down lets you set preferences to control the simulation. The question mark button turns on help, so that you can find out how to use what you see on the screen.
To return from any section to where the program began, click on the buttons in the top left corners. Those buttons take you back toward the main screen. In the first two sections, you can click on arrow buttons at the bottom to flip between pages. From the tables of contents of those sections, click on a topic to go to the topic.
A faster way to move around is the "Go" menu. It provides quick access to seven commonly-used parts of the program. Or hold down the command key and press a number from 1 to 8, as indicated in the menu. On a small-screen computer the menu will have disappeared, and you must press command-spacebar to show or hide the menus.
If you don't know where to look for a topic, hold down the command key and press F. This lets you find text anywhere in the program. To find the next place where the text appears, press command-G.
Back to contents.
Before you use the model, familiarize yourself with the book Beyond the Limits. This will give you background knowledge about the purpose of the model, how it works, and its creators' conclusions. For users familiar with World Dynamics or The Limits to Growth, the book is useful for its look at empirical data, for its more recent assessment of how to transition to sustainability, and for its more detailed text.
Included with the program is the Beyond the Limits Workbook. You may find the Workbook useful as a guide for learning about the model. Question 7 gets you acquainted with the software and shows you how to use the software to understand what happens in the model.
Before you start the model, always ask yourself what will happen and why. If you know what you expect will happen, you can be surprised if it doesn't happen. You will be able to ask, "Why did the model do that, instead of what I expected?" Also, by thinking about what will happen, you will learn about important forces that may be involved in the world's future. You will begin to understand the model.
Use the model through an iterative process with four steps. For steps 2 and 4, photocopy the Before and After thought experiment sheets at the end of this handbook. Repeat these steps:
As you use the model, ask yourself what you are learning about possible world futures and about how to improve the future.
If you want to examine the model in detail, please consult the book Dynamics of Growth in a Finite World. This book documents the model. It explains why each part was formulated as it is, and it describes the scientific studies and data which led the builders of World3 to choose these formulations.
Donella H. Meadows, Dennis L. Meadows, and Jørgen Randers. Beyond the Limits. 1992. Chelsea Green Publishing Company (Post Mills, Vermont; 1-800-639-4099).
Dennis L. Meadows, et al. Dynamics of Growth in a Finite World. 1974. Originally Wright-Allen Press, now Productivity Press (Cambridge, Massachusetts; 1-800-274-9911).
(This author has no association with the above publishers.)
Back to contents.
To help you investigate what happened after you run the model, click on the graph button at the left side of the screen in Figure 3. You will see a graph of population or other variables, such as the example in Figure 4. The top-left button, with a bar graph symbol, returns you to running the model. The next button displays messages about what happened while the model ran. The messages appear in place of the graph key; click on the messages to make them go away and see the key again. The printing button prints graphs, or messages if they are currently displayed. The second button from the bottom lets you pick which variables to graph.
Figure 4. A graph shown after running the model.
The bottom axis of the graph indicates the year, starting from 1900. A small cross-hatch on the axis points out the year 1990. If you are using the program's "game mode," dots may also appear below the bottom axis of the graph. Click on a dot to see how human policy changed, according to your choices during the game, at the time indicated by the dot.
Plot graphs of the variables that interest you, and look at the messages displayed during the simulation. These should give a good sense of what happened, but you will probably still have questions as to why it happened. To investigate why, you can use the diagrams in the program's Change the Model section. Go to that section, click on Model Diagrams, and choose the diagram for the appropriate part of the model. If you wonder why pollution levels rose, for example, choose the Persistent Pollution part of the model. Figure 5 shows the diagram for persistent pollution. Click on any variable to read about it. From the diagram, you might guess that persistent pollution increased because its appearance "rate" increased, which in turn happened because more pollution was generated by agriculture or industry. But you next have to graph the results for these variables, to see whether they actually did increase around the time when persistent pollution increased. You must go back and forth between graphs and model diagrams, searching out the causes of the increase in pollution.
Figure 5. Within the Change the Model section, the Model Diagrams describe all parts of the World3 model. The part pertaining to persistent pollution is shown here.
This back-and-forth process could become tedious very quickly! If you had to keep moving through the program between graphs and model diagrams, all the time keeping notes and selecting new variables to plot, you would proceed very slowly. Fortunately, there is an easier way. Use the Graphs menu to select what happens when you click on a variable name in the graph key. Initially, the program assumes that it should take no action when you click on the key. But you select options to either display information about variables or graph the variables that are causes of a variable. Thus, to investigate why pollution rose, just choose to see causes affecting variables, and click on "persistent pollution index" in the graph key. The graph will change to show the two variables that directly influence the persistent pollution index, and you can click on either of these two variables to see their causes. By this process you can investigate the chain of causality that seems to have led to the increase in pollution.
Along the way, you almost certainly will encounter variables that mystify you. What, for example, is the "persistent pollution generation factor"? To find out, just use the Graphs menu to switch from looking at causes to instead looking at information about the variables. Then, clicking on a variable's name in the key allows you to quickly jump to the relevant model diagram in a different section of the program. Furthermore, as shown in Figure 6, the program displays a description of the variable and how it is calculated. (To see information for other variables, just click on the relevant circles or rectangles in a model diagram.) To jump back to your graph as quickly as you jumped away from it, choose "Return from Info" in the Graphs menu.
Figure 6. When using the Model Diagrams, click on the circle or rectangle that represents a variable in order to display information about that variable. The information includes a description, equation, and units of measurement. For constants, as well as for functions specified in the form of graphs, you can alter the constant or adjust the shape of the function by typing in a new number or dragging on the X-shaped handles on the graphs.
To make graphs using the same sets of variables you graphed previously, choose Back and Forward in the Graphs menu. The program does not save results from past times when you ran the model; you must print out graphs in order to compare between runs.
Back to contents.
This program lets you switch into "game mode" to use policy controls while the model runs, without having to use the Change the Model section. Changes in the Change the Model section have no effect while you use game mode. To turn on game mode, go to the Simulation Preferences screen (from the Run the Model screen, click on the 2nd-from-the-bottom left button) and reset the appropriate control. In game mode, the following controls appear:
The family size target is a policy for family size. Governments and agencies around the world gradually convince people to have a number of children determined by the family size target. At its middle setting, the target is 3.8 children per family. Moving the control lets you change the target as low as 1 child per family or as high as 6.6 children per family. (This target affects the "desired completed family size normal" in the model, as a twenty-year, first-order smoothing.)
The birth control spending control increases or decreases spending on family planning services and on making birth control devices available. Moving it to the right increases spending by up to four times as much. Moving it to the left decreases spending to as low as one-fourth as much. Spending on these programs comes from money that would otherwise go to various services. (This control multiplies the "fraction of services allocated to fertility control" by a number from one-fourth to four.)
The material goods target describes how many dollars worth of goods the average person in the world would like to consume each year. When set at the middle of the control, the average person wants to get $700 worth of goods each year. Moving the control to the left makes people satisfied with less, down to $300 of goods per year. Moving it to the right makes people want more, up to $1100 of goods per year. In game mode, people are assumed to buy more, not invest more in factories, when their average consumption becomes higher than the target. (In game mode, the "industrial equilibrium time" is set to 1990. The "industrial output per capita desired" is set to this figure of $300 to $1100 of goods per person per year.)
The resource & pollution technology development control allocates spending on technologies to reduce resource use and to reduce pollution. To the left of center, there is no significant spending on this technological development. To the right of center, development of the technologies can take place at a maximum pace of 3% improvement per year. Development of a technology happens more when the world sorely needs that technology. For a complete description of how this works, see "Pollution Control Technology" and "Resource Efficiency Technology" in the Change the Model section of the program.
The agriculture technology development control allocates spending on technologies related to agriculture. To the left of center, there is no significant spending on this technological development. To the right of center, the control causes the following effects: development and implementation of technologies to increase land yield (by a maximum of 3% improvement per year when the control is all the way to the right), implementation of erosion controls (at a pace of up to 6% of remaining farmers per year), and an increased fraction of agricultural spending going to maintain the fertility of the land (up to "1x" in the "Land Fertility Maintenance" part of the Change the Model section). For complete descriptions, see the Change the Model section of this program.
If you make no changes, game mode will be similar, but by no means identical, to scenario 2 in the book Beyond the Limits.
If you use game mode, be sure to think through what will happen, and to figure out why the model behaves as it does. Do not use the program mindlessly, or it can only brainwash you. Use it as a tool to help you think.
Back to contents.
In the Change the Model section of the program, a powerful sensitivity analysis feature makes it easier to investigate how the results change after altering constants or functions in the model. (Only functions shown in graphical form can be varied. The model includes many such functions, including for example the "assimilation half-life multiplier.")
The program helps you answer three kinds of questions about how sensitive the model's results are to changes in these parameters. First, if the model's constants and functions are changed slightly, by different random amounts for each constant and function, do the changes substantially alter the outcomes of the model? Second, with different parameter settings, would the model seem to suggest different policy recommendations? And third, which parameters make the most difference to the results?
You can address all these questions. In each case, the sensitivity analysis will make changes to one or more parameters of the model. It will simulate the model many times, each time changing the parameters in a different way. To perform sensitivity analyses, first make any changes in the model that you wish to make, in the Change the Model section of the program. Then go to the sensitivity analysis screen (Fig. 7) and choose a purpose for your analyses. The first purpose, Show distribution of possibilities, will give you a sense how much changes in parameters could affect the model's results. It will change each parameter by plus or minus some random amount, then run the model, then randomly change the parameters again, then run again, et cetera. Click on the histogram button to see the results of the many different runs. Remember, only specific parameters of the model are being altered, not the very structure of the model, so there are other ways in which the "correct" model is unknown. The second purpose, Analyze policy effects, lets you compare the outcomes of different policies. It will randomly change the parameters of the model as with Show distribution of possibilities. Then, given the randomly-chosen parameters, it will try out three different sets of policies: the ones you have set in the Change the Model section, the policies recommended by the authors of Beyond the Limits ("Scenario 10"), and complete inaction by the world with regard to these policies ("Scenario 2"). After running the model once for each policy, it will randomly change parameters and run again, et cetera. Click on the histogram button to see the results. The third purpose, Find sensitive parameters, helps you identify which parameters in the model, when changed by some amount, have a big effect on the results. Parameters that have a strong effect on the results may deserve close study, to understand why they have this effect and what their true values are likely to be. This purpose will increase and decrease every parameter by the percentage that you specify. Click on the histogram button to find out which parameter changes had a big impact on the outcome (no histogram, only text, will be displayed).
Figure 7. Within the Change the Model section, the Sensitivity Analysis feature can assist you in probing how changes to the model affect the model's results.
Sensitivity analyses take a long time! Start your analysis on the fastest computer available, then go do something else. If you have a screen-saver program, you may wish to temporarily turn it off, if it slows down whatever else is happening on your computer. Get some lunch, take a stroll in the park, have a conversation with your friends, and then come back and check your computer.
Certain parameters in the model are fractions, and one parameter is a number less than one that can be a negative number. This program makes appropriate changes to these parameters, keeping fractions between 0 and 1, and increasing or decreasing the latter parameter's distance away from 1. For fractions, the program simply increases or decreases the parameter by the specified (or randomly determined) percentage, then substitutes 1 for any resulting values greater than 1 (other methods could be used, but this is a straightforward approach that allows for substantial parameter changes). When changes are made randomly, graphical functions are randomly changed by picking two random numbers. One end of the graphical function is increased or decreased by the first randomly chosen percentage, and the other end by the second percentage. Values in between are increased or decreased by some (linearly determined) percentage in between the first and second percentages.
There are several strategies that a modeler might take for changing parameters. One approach is to change parameters when the model begins, in 1900. This approach requires that the parameters be calibrated to fit what is known about the real world. In the case of the World3 model, the world's population from 1900 to the present is known, and the model should duplicate the real-world data on population. If the parameters chosen do not fit the real-world data, then the parameters are no good, and a new set of parameters must be chosen. This makes for a very big job for a computer. The computer must keep choosing parameter values, simulating the model, and discarding results until finally a set of parameter values is found that fits with the real-world data. Then the process must begin all over again to find the next set of parameter values that fits with the real-world data, and so on for each run in the sensitivity analysis. Since this is such a big job, this program takes another approach. It supposes that the values of parameters are valid for the past, but that they are likely to change in future. In fact, the "true" parameter values probably change continually over time. In this program, though, all changes are made at a single point in time, the year 1990. With the World3 model, this method can yield almost the same diverse set of results as with changes made continually over time, but it is much simpler for the computer to carry out, and for you to understand. Thus, the sensitivity analyses done in this program always make parameter changes in 1990.
On the sensitivity analysis screen, you can choose which parameters to change. There is a list of the model's parameters from which you can select. All parameters in the list will be changed unless you specify otherwise. Each parameter will be increased or decreased by up to 10% to 50%, depending on how you position the sliding control. For some parameters, it might be preferable to try more drastic changes. To drastically change a parameter, you must change its value elsewhere in the Change the model section. If you tell the sensitivity analyses to change the parameter, it will be increased or decreased by percentages above or below your changed value.
If you do sensitivity analyses that change all parameters, you will sometimes get some strange results. Notably, the world's population may begin to fall immediately in 1990. This usually occurs because of changes to demographic parameters. For example, if the "life expectancy normal" is decreased, then all of a sudden people will live shorter lifetimes, and the world's population will fall. While changes in demographic patterns are likely to occur, demographic parameter changes that cause the world's population to actually decrease seem unlikely to occur within the next few decades. It is questionable whether the birth rate will even level off, not to mention fall so much that the world's population will decrease. Therefore, for most purposes you will probably not want to allow changes in certain demographic parameters. These parameters are as follows: fecundity multiplier, life expectancy normal, and maximum total fertility normal. Other demographic parameters that you may not wish to change are as follows: family response to social norm, family size multiplier from perceived lifetime, fertility control effectiveness table, lifetime perception delay, social adjustment delay, and social family size norm. The program never alters the parameters for reproductive lifetime or mortality. To alter reproductive lifetime in a sensible way, the underlying structure of the model would have to be changed, and to alter the mortality graphical functions requires great care so that these functions correctly reflect life expectancy. The program also does not alter the "potential arable land total," which could not sensibly change at a point in time.
You can specify whether the model should run to 2100 or 2200. Sometimes certain policies and parameters can forestall a global population or economic collapse until after 2100. By running the model to 2200 instead, you will still detect such a collapse even though it has been delayed.
You can also choose to have the model computed more exactly, by choosing a 3-month computational time step in place of the default 6-month time step. This slows the program down and is usually unnecessary. Rarely you might come across parameter values that require more computational accuracy in order to get a correct result. If you get a strange result, such as a value of population that is less than zero, you may wish to switch to a 3-month time step. Strange results will always be pointed out to you when you look at histograms.
Histograms of the results show the percentage of model runs with certain outcomes. You can choose what kinds of outcomes to look at. First, you can look at the (unweighted) average life expectancy from 2000 to 2100, or at the lowest value the life expectancy ever achieves during a simulation. The life expectancy variable reflects the current conditions in the world: if food available per person, health services per person, pollution levels, city sizes, and so forth were to remain the same forever, the life expectancy would describe how long the average person would live. Thus, life expectancy is a useful measure of living conditions. If the life expectancy is high, the world is a nice place for humans to live, at least with regard to the issues examined in the World3 model. Second, you can see whether a population collapse occurred, and if so, how big it was. You can look at the results in terms of what year had the highest world population, how big that population was, how small it became afterward, how much the population decreased, and the decrease as a percentage of the highest population ever reached. Third, you can examine whether an industrial collapse occurred, and if so, how much. The five ways to look at the results are analogous to the ways you can examine population collapses. Fourth, you can examine why a population collapse occurred, by looking at variables that contribute to determining life expectancy. You can look at the minimum values of lifetime multipliers related to food, pollution, health services, and crowding into cities. Fifth, you can examine why a collapse of industry occurred, by looking at variables related to industrial output. The ratio of industrial capital to output describes how much capital is needed to produce one unit of output. It can increase if high-technology solutions to the world's problems require, on average, a decrease in industrial efficiency. Some fraction of the world's industrial capital is devoted to obtaining resources from the earth, and if resources become scarce, an increasingly large fraction of global industry may need to be devoted to resource extraction. Certain fractions of the world's industrial output go to consumer goods, services, and agricultural inputs. Investment in new capital, according to the World3 model, is whatever industrial output is left over after accounting for these needs. Under some conditions, global economic collapse can happen when investment in capital becomes small, and one might debate the validity of this behavior of the model. Thus, these options allow you to investigate the parameter sensitivity issues most central to the model.
Back to contents.
Going from version 2.1 to 2.3, the following changes were made:
Going from version 2.0 to 2.1, the following changes were made:
Going from version 1.5 to 2.0, the following changes were made:
Going from version 1.0 to 1.5, the following changes were made:
Back to contents.
(While the thought experiment sheets distributed with the program are designed to be printed out and photocopied, the thought experiment sheets presented here contain the same information without the appropriate pge layout.)
What policies is your world using?
What changes have you made to the model?
What do you expect will happen? (written description)
What do you expect will happen? (graphs)
What happened? (written description)
What happened? (graphs)
Did what happened agree with your expectations?
If not, why did the model behave as it did?
Back to contents.
This software is part of a project to create educational software about models of global society and environment. The project is spearheaded by Peter Poole and Kenneth Simons. Also available from the project is the program The Gaia Hypothesis and Daisyworld.
A preliminary prototype for this software was created at MIT by Kenneth Simons, Kevin Rathbun, Erik Trimble, and Michelle Bell.
Thanks to David Kreutzer and John Sterman for support and encouragement; to Tom Fiddeman and Dennis Meadows for feedback; and to Ann Bostrum and Baruch Fischhoff for ideas. Numerous faculty and staff at MIT provided assistance in early phases of the project; those people are listed in the Gaia Hypothesis program.
This material is based upon work supported under a National Science Foundation Graduate Fellowship. Any opinions, findings, conclusions or recommendations expressed in this publication are those of the author and do not necessarily reflect the views of the National Science Foundation.
Copyright ©1992-1997 by
Kenneth L. Simons.
Revised 8 August 1997