Urban Suite - Pollution

Urban Suite - Pollution preview image

1 collaborator

Uri_dolphin3 Uri Wilensky (Author)


(This model has yet to be categorized with any tags)
Model group CCL | Visible to everyone | Changeable by group members (CCL)
Model was written in NetLogo 5.0.4 • Viewed 410 times • Downloaded 41 times • Run 1 time
Download the 'Urban Suite - Pollution' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


This model is an examination of the fragile equilibrium of a predator-prey ecosystem. Populations of (1) people, (2) landscape elements and (3) swarms of airborne pollutant-agents compete for resources within an enclosed environment. Using this model, one can explore the behavior of the populations over time as they dynamically interact: the predators (pollution) and prey (people) can be compared over multiple generations as their populations demonstrate regular or irregular reproductive success.

Regular oscillations (cycles) of population size indicate balance and stability in the eco-system where, despite fluctuations, populations maintain themselves over time. Conversely, irregular oscillations indicate instability leading toward potential extinction of both co-dependant populations. The model establishes a negative feedback loop: predators inhibit the density of prey, and prey stimulates the density of predators.


Power plants create pollution, which diffuses into the environment. The health of people who are exposed to this pollution is adversely affected, reducing their chances of reproduction. Those who can reproduce will create healthy children at a given birth rate. People can also take some action to alleviate the pollution problem, which is represented in this model by planting trees. The presence of trees helps curb the pollution.

Even without pollution, people's health naturally degrades over time, and they will eventually die of natural causes. To allow the populations of people to endure, people are cloned at a certain rate (see the BIRTH-RATE slider). A stable eco-system is achieved if pollutant-agent levels are held in check, and neither the populations of people nor landscape elements overtake the environment. As in all agent-based modeling, rules define the behavior of each individual agent in each population.


Power plants are grid cells with a very high fixed pollution value (determined by the POLLUTING-RATE slider).

All grid cells have some pollution value, although it may be 0. Pollution diffuses throughout the grid, so each grid shares part of its pollution value with its neighboring cells. Since the pollution is fixed at a high amount at power plants, this has the effect that pollution emanates out from the power plants.

Trees, however, clean up pollution in the cell they are planted, and the neighboring cells. Thus, they block the spread of pollution, by emanating low-pollution values. Trees live for a set period of time and cannot reproduce.

Each time step (tick) of the model, people agents

  1. move randomly to an adjacent cell
  2. with some probability, they may plant a landscape element
  3. if they are healthy enough, with some probability, they may reproduce (clone)
  4. if their health has dropped to 0, they die.


Press SETUP and GO to run the model. (Note: the model will automatically stop when there are no people left in the world.)

INITIAL-POPULATION controls the number of people created at the start of the model run.

BIRTH-RATE controls the chance each person has of producing offspring. The initial rate of 0.10 means they have a 10% chance each year of having a child, provided they are healthy enough. People must have 4 health points or greater to reproduce, and they lose 0.1 points each year. This means they have at most 10 years to reproduce in, and even less if they are hurt by pollution. The default setting is very near "replacement rate" which means that on average, each person has one offspring.

PLANTING-RATE controls the change a person has of planting a tree each year. The default setting of 0.05 means they have a 5% chance. Trees live for 50 years and never reproduce themselves. In this sense, they are not literally trees, but represent any pollution treatment mechanism.

At the start of the model, POWER-PLANTS controls how many power plants are created.

POLLUTION-RATE is the pollution that each power plant outputs in a year. This pollution is then spread to the surrounding area.

The WORLD STATUS plot shows how many trees there are, how many people there are, and how much pollution there is, plotted over time as the model runs.


What are the relationships between the amount of pollution, the number of people and the number of trees? If there is an increase in the number of people, the number of trees will increase, but they will lag behind? Run the model several times until you see that lag. However, sometimes the number of trees reduces pollution so much that the people increase. Which is the cause and which is the effect?

How does the location and grouping of the power plants effect the population over time? Is it better for the power plants to be closer, or further apart?


With the default setting, populations will eventually die out, but the length of time they survive varies quite a bit. Try increasing or decreasing the BIRTH-RATE just a little bit and runt he model several times. How long does the population survive?

Reset the BIRTH-RATE to 0.1 and then do several runs while varying POWER-PLANTS and POLLUTION-RATE.

Set POWER-PLANTS to 0 and PLANTING-RATE to 0. Run the model several times while varying BIRTH-RATE. Why is there a spike at 50 ticks? If you run the model several times you will see that it sometimes peaks at 50 ticks before dying out, but other times it will continue on for hundreds of more ticks and more than double the population at tick 50.


Make the pollution rate dependent upon the number of people.


This model uses the DIFFUSE command to spread pollution.


This model is related to all of the other models in the "Urban Suite".

Another slightly related model, which examines environmental issues and the relationship between creatures and their environment, is the DaisyWorld model, found in the NetLogo models library.


The original version of this model was developed during the Sprawl/Swarm Class at Illinois Institute of Technology in Fall 2006 under the supervision of Sarah Dunn and Martin Felsen, by the following student: Young Jang. See http://www.sprawlcity.us/ for more information about the course.

Further modifications and refinements on the model were made by members of the Center for Connected Learning and Computer-Based Modeling before its release as an Urban Suite model.

The Urban Suite models were developed as part of the Procedural Modeling of Cities project, under the sponsorship of NSF ITR award 0326542, Electronic Arts & Maxis.

Please see the project web site ( http://ccl.northwestern.edu/cities/ ) for more information.


If you mention this model in a publication, we ask that you include these citations for the model itself and for the NetLogo software:

  • Felsen, M. and Wilensky, U. (2007). NetLogo Urban Suite - Pollution model. http://ccl.northwestern.edu/netlogo/models/UrbanSuite-Pollution. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.
  • Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.


Copyright 2007 Uri Wilensky.


This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at uri@northwestern.edu.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

breed [ people person ]

; just used to make pretty graphics
breed [ trees tree ]

turtles-own [ health ]

patches-own[ pollution
             is-tree? ]

to setup

  set-default-shape people "person"
  set-default-shape trees "tree"

  ask patches [
    set pollution 0
    set is-power-plant? false


  ask patches [ pollute ]

  create-people initial-population [
    set color black
    set health 5


to go
  ask people

diffuse pollution 0.8
 ask patches [ pollute ]

 ask trees [ cleanup maybe-die ]

 if not any? people
   [ stop ]


to create-power-plants
  ask n-of power-plants patches [ set is-power-plant? true ]

to pollute  ;; patch procedure
  if ( is-power-plant? )
    set pcolor red
    set pollution polluting-rate
  set pcolor scale-color red ( pollution - .1 ) 5 0

to cleanup  ;; tree procedure
    set pcolor green + 3
    set pollution max (list 0 ( pollution - 1 ) )
    ask neighbors [ set pollution max (list 0 ( pollution - .5 ) ) ]
    set health health - 0.1

to wander   ;; person procedure
  rt random-float 50
  lt random-float 50
  fd 1
  set health health - 0.1

to reproduce ;; person procedure
  if ( ( health > 4 ) and ( ( random-float 1 ) < birth-rate ) )
    [ hatch-people 1 [ set health 5 ] ]

to maybe-plant ;; person procedure
  if ( ( random-float 1 ) < planting-rate )
  [ hatch-trees 1 [ set health 5 set color green ] ]

to eat-pollution  ;; person procedure
  if ( pollution > 0.5 )
    set health (health - (pollution / 10))

to maybe-die     ;;die if you run out of health
  if ( health <= 0 )
    [ die ]

to do-plot
  set-current-plot-pen "trees"
  plot count trees
  set-current-plot-pen "people"
  plot count people
  set-current-plot-pen "pollution"
  plot sum [pollution] of patches

to randomize-position
  setxy random-float world-width
        random-float world-height

; Copyright 2007 Uri Wilensky.
; See Info tab for full copyright and license.

There are 10 versions of this model.

Uploaded by When Description Download
Uri Wilensky almost 11 years ago Updated to NetLogo 5.0.4 Download this version
Uri Wilensky over 11 years ago Updated version tag Download this version
Uri Wilensky over 11 years ago Updated to version from NetLogo 5.0.3 distribution Download this version
Uri Wilensky over 12 years ago Updated to NetLogo 5.0 Download this version
Uri Wilensky almost 14 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky almost 14 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky almost 14 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky almost 14 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky almost 14 years ago Model from NetLogo distribution Download this version
Uri Wilensky almost 14 years ago Urban Suite - Pollution Download this version

Attached files

File Type Description Last updated
Urban Suite - Pollution.png preview Preview for 'Urban Suite - Pollution' about 11 years ago, by Uri Wilensky Download

This model does not have any ancestors.

This model does not have any descendants.