NetLogo tutorial: Dispersal

Today we’re starting a series of tutorials showing how to create simple building blocks for simulations. NetLogo has an extensive library of models, including many ecological, sociological and economic ones. Similarly, the OpenABM has a fantastic library of checked and proven models, many of which are strictly archaeological. However, for a complete newbie it may be a bit daunting to try to dissect these, often quite complex, simulations to extract the particular aspect they need for their model. That’s why we will focus on a few particularly common procedures in archaeological  models, such as dispersal, exchange, population growth etc. We hope that in time, this will create a library of simulation building blocks tailor-made for researchers dealing with social systems.

The following tutorial shows how to build a simple model of human spatial spread (dispersal):


By dispersal we mean spatial spread of humans over time. This can be modelled on many scales – local wanderings of individuals, regional shifts of groups’ ranges or global dispersal patterns of species. Often the spatial spread is a function of different types of interaction with the environment.

There are many aspects of modelling dispersal, below we listed a few things one may want to consider when creating a simulation including human movement. It’s just a loose set of ideas one needs to give at least some attention to, but which shows how important the conceptual part of modelling is.

  • Space

how to represent space? squares? non-squares? von Neumann neighbourhood (manhattan distance) or Moor neighbourhood? What’s the scale of the simulation? Global, regional, local? If large scale, what about projections? How to match it to the resolution of to data (environmental data, behavioural data)?

  • Environmental variability

What aspect of the environment do we want to represent? Topography? Rainfall? Vegetation zones? Specific elements (waterholes)? Potential sources of data?

  • Adaptation

What do we use to represent adaptation/fitness: population growth? rate of dispersal? availability of cells for dispersal? resource return?

  • Edge conditions

There are two main types of edge conditions:

a) between friction map’s zones of different values (eg. stepping from savannah to a desert)

if we differentiate the adaptation on the basis of the values in the friction map should we use the values in a patch in which the agent is or the one to which it disperses to?

b) between ‘dispersable’ and ‘non-dispersable’ zones (edge of a landmass or edge of the screen)

do we vary population growth? proportion of people dispersing? have some agent drown? or have more agents going in the available directions?

  • Archaeological consequence

How do we try to recreate the patterns in archaeological record (including the biases)? do we let people drop things? do we record how far they made it in the time we gave them? do we quantify the probability of dispersal to a given patch? do we count how many times ‘check’ patches recorded agent presence?

  • What if it’s a spread of an idea rather than people?

how would that change the dynamics? what do we model then?


This tutorial as well as the model description was prepared for the CAA2014 workshop “One hour, one model: Agent-based Modelling on-the-fly” led by Iza Romanowska, Ben Davies, Tom Brughmans and Enrico Crema.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s