A five-sector coupled system dynamics model of national food systems, calibrated for **Canada** and **Nigeria**
# PyWorld3 Country-Level Food System Model
A five-sector coupled system dynamics model of national food systems,
calibrated for **Canada** and **Nigeria**. Based on the World3 architecture
of Meadows et al. (1972) *The Limits to Growth*, implemented in Python
on top of PyWorld3 (Vanwynsberghe, 2021), with an IPCC AR6 climate
overlay (Zhu et al. 2018) for SSP scenario analysis.
The model simulates how five interdependent sectors evolve from 1971 to
2100 under bidirectional feedback:
| Sector | Stocks (state variables) |
|---|---|
| Population | Four age cohorts (0-14, 15-44, 45-64, 65+) |
| Capital | Industrial Capital, Service Capital |
| Agriculture | Arable Land, Land Fertility |
| Pollution | Persistent Pollution |
| Nutrition | (terminal sector — calories, protein, micronutrients) |
Plus an **exogenous climate module** (ClimateAgricultureBridge) that
optionally overlays IPCC AR6 SSP1-2.6 / SSP2-4.5 / SSP3-7.0 / SSP5-8.5
temperature, precipitation, and CO2 trajectories onto the agriculture
sector. CO2-induced nutrient dilution (protein, iron, zinc) follows
Zhu et al. (2018) *Nature Plants*.
The interactive Streamlit dashboard (9 tabs) lets users adjust any
parameter, crop mix, or IPCC scenario and watch the effects cascade
through all five sectors and seven named feedback loops.
Dashboard
pyworld3-country-food-syste…
## Quick start
Install dependencies:
```
pip install -r requirements.txt
```
Run the interactive dashboard:
```
streamlit run climate_nutrition_world3/dashboard_v2.py
```
Or run a scenario from Python:
```python
from climate_nutrition_world3 import World3Integrator
# Baseline with simple linear climate model
model = World3Integrator.from_country('nigeria', 1971, 2100)
model.run()
df = model.get_all_results()
model.print_summary()
# Same country under IPCC SSP5-8.5 (fossil-fuel future)
model_climate = World3Integrator.from_country(
'nigeria', 1971, 2100, climate_scenario='ssp585'
)
model_cli …