This model implements Jay Forrester's WORLD2 model as described in his 1971 book on World Dynamics.

It is a very simply model that contains only five state variables:

  1. total human population,
  2. total persistent pollution,
  3. remaining non-recoverable natural resources,
  4. total capital investment, and
  5. fraction of capital investment allocated to the agricultural sector.

The aim of the model is to demonstrate, in very simple terms, that physical systems remain always constrained. The production of goods (especially food) on this globe is limited by the available resources, and energy constraints will prevent production to grow indefinitely.

While these are very simple facts, it is useful to investigate, when our globe will reach its limits. Forrester showed that this will inevitably happen during the first half of the 21st century. After that, humanity will invariably have to learn to transform itself from a society of (seemingly perpetual) exponential growth to one of (truly perpetual) stagnation, at least as long as humanity limits itself to the resources available on this one planet.

Forrester listed his entire model in his book, which made it easy for other researcher to reproduce his results. Many people have done so using a variety of different tools. Whereas the original model had been coded in Dynamo, a rather clumsy and old-fashioned alphanumerical M&S environment, the most popular tool for coding System Dynamics models today is STELLA.

In this library, we offer a Modelica implementation of Forrester's WORLD2 model.


  1. Cellier, F.E. (1991), Continuous System Modeling, Springer-Verlag, New York, ISBN: 0-387-97502-0, 755p.
  2. Forrester, J.W. (1971), World Dynamics, Pegasus Communications, 160p.


Name Description
 Scenario_1 1st Scenario
 Scenario_2 2nd Scenario
 Scenario_3 3rd Scenario
 Scenario_4 4th Scenario
 Scenario_5 5th Scenario
 Scenario_6 6th Scenario
 Utilities Utility models of Forrester's WORLD2 model

Generated at 2021-04-21T01:03:25Z by OpenModelicaOpenModelica 1.18.0~dev-230-gf39a4fe using GenerateDoc.mos