World3 model implementations
The World3 model from 1972 indicates that “Business as Usual” (BAU) would lead to a collapse around 2030. A comparison with empirical data, made by Gaya Herrington, now 50 years later is really scary. I wanted to dig deeper into this, and run the World3 model myself. There are several World3 simulation programs available, and this post is about how I ran some of them (it wasn’t hard).
There are links to Model implementations on the wikipedia page. I have tried the Javascript and Python models. The “modelica” links seem broken, but I hope to get back to the Julia model.
I am using Linux (Ubuntu 24.04), and will not try other OS’es. I expect no big differences for other Linux distributions though.
Javascript simulator
By far the simplest to use! Go to the web-page, and click “Run”.
The default is the original “Business as Usual” (BAU) simulation where
a rapid decrease begins around 2030, caused by shortage of
resources. Since 1972 more resources has been found (e.g
fracking), and you may try
the “BAU2” simulation by adjusting the “initial resources multiplier”
to 2
. In this scenario the rapid decrease begins around 2050, and is
caused by pollution (i.e climate change).
The source is available on github (but you don’t need it).
Python preparations
Install Python dependencies, and use a variable for the “workspace” where everything is stored:
sudo apt install -y git python3-pip python3-full python3-numpy python3-scipy python3-matplotlib
WS=$HOME/world3 # (you probably want to use another directory)
mkdir -p $WS
Pyworld3
The pyworld3 model is written in Python and is intended to be as close to the original from 1972 as possible.
git clone --depth 1 https://github.com/cvanwynsberghe/pyworld3 $WS/pyworld3
cd $WS/pyworld3
python example_world3_standard.py
evince fig_world3_standard_a.pdf
The example_world3_standard.py
simulates the BAU scenario, and the
simulated graphs are overlaid on top of the original graphs to show
the conformance (which is perfect). With a minimum of Python skills
you can alter the initial values for different simulations.
MyWorld3
MyWorld3 is another Python
model. All documentation is in the pdf
file, even a diagram of the
original World3 model.
git clone --depth 1 https://github.com/Juji29/MyWorld3 $WS/MyWorld3
cd $WS/MyWorld3/MyWorld3
python world3_run.py
As described in the pdf, you can edit the N_SCENARIO
in
world3_run.py to simulate different scenarios.
PyWorld3-03
PyWorld3-03 is an upgrade of pyworld3. It was used to recalibrate the world3 model parameters to match empiric data.
git clone --depth 1 https://github.com/TimSchell98/PyWorld3-03.git $WS/PyWorld3-03
cd $WS/PyWorld3-03
# (no graphs were printed at the time of writing, hence...)
echo -e "\nplt.show()" >> run_different_standard_configurations.py
python run_different_standard_configurations.py