Projects‎ > ‎


Andreas Duering

DPhil Candidate and Clarendon Scholar

Institute of Archaeology

University of Oxford


My profiles:


Clarendon Scholars


Links to the model

POPULATION & CEMETERY SIMULATOR beta 1.2                    

A more advanced version of the model: POPULATION & CEMETERY SIMULATOR beta 2.2

Please have a quick look at the introductory remarks and the brief user manual before using the model. If you have further questions, hints or technical difficulties, I would be happy to help you out. You can contact me via the above mentioned details.


The Population & Cemetery Simulator (PCS) is an open-access toolkit based on the Oxford IT department's modellig4all project ( It provides (osteo-)archaeologists interested in the demography of single populations with an agent-based model with which a dynamic living population and the accumulating dead in a cemetery can be simulated. It can be used to check demographic data of archaeological cemetery sites and try out probable virtual scenarios in the case of missing data. It can also be tailored towards answering other research questions, such as the impact of heterogeneity, artefact & disease frequencies, catastrophes, stochasticity and population growth. It is designed to be easy to use and inclusive. At this point the model is still a trial version and does not include all planned features. However, the simple and self-explaining Behaviour Composer of the modelling4all project makes it possible that users tailor it to their specific interests right away.

The idea to create the Population & Cemetery Simulator evolved out of my interest in the (bio-)archaeological problems of reconstructing the elusive sphere of life from cemetery data presented by Wood et al. (1992) and the "Rostock Manifesto" for Palaeodemography by Hoppa & Vaupel (2002). With the model I hope to illustrate the raised issues and translate them into a language understandable by a wider range of archaeologists and osteologists. Kölbl 's Monte Carlo simulations (2004) were also an important source of inspiration for the project. I would like to thank Ken Kahn, Howard Noble, Anders Sandberg and Thomas Woolley for the invaluable help I received over the time I developed the model.

Share your results & find bugs

As the Population & Cemetery Simulator is the basic tool that I will use for my research at the interface of archaeology, osteoarchaeology and palaeodemography at the Institute of Archaeology, University of Oxford, I would be very happy if you shared your experiences of the model with me, preferentially by direct contact via the above mentioned email addresses. Your feedback will help me to improve the model in three ways:

Firstly, I would like it to be intuitive and therefore utilisable in a cross-disciplinary discourse. So please tell me what you do not understand and what should be included in the user manual.

Secondly, I would like to see which scenarios you are testing out and what you are doing with the toolkit to find new ways of application and generate new ideas together.

Thirdly, if you have got an affinity towards mathematics and demography, please find bugs and help me to rule out logical problems which I might have overlooked.

Powers & limitations of the model

The model is still work in progress and I cannot recommend it to be used for the generation of final results at this point. But the model is already very useful to broaden the perspective of research questions and find new ways of challenging data and their interpretation. If you still believe in the data of a life-table you calculated on the basis of a skeletal population, please prepare for a surprise.

User manual (for beta 1.2)

First steps

The Population & Cemetery Simulator simulates the life of a single virtual living population over the course of 300 years and the accumulating cemetery. The model represents an optimal scenario in which all individuals have been preserved and excavated. One step of time equals one year in the simulation routine.

If you click on the link to the model (see above) the Behaviour Composer of the Oxford-based modelling4all project will open. The code of the model has been packaged in a form that visualises the logic of the agent-based modelling routine and structures the coding procedure in a way that can be easily understood by people who have no experience in computer modelling. The optional features discussed later in the guide can be activated here. This window is also the place for more fundamental changes of the code.

But I recommend that you proceed to the model interface by clicking on the RUN button on the upper left hand side if you are trying out the programme for the first time or if you do not want to change the initial settings. It is the model interface where you put in your data and where the simulation runs can be conducted. It might take some time to load because it will be opened as a Java Applet. If your firewall blocks the Java Applet you must give it specific permission to work, for instance by clicking on OK in a popup window.

If Java does not run, I recommend to download and install NetLogo on your computer. Then download the model via the Download function in the Behaviour Composer.

If you run the model or if you open it in NetLogo you will see the data entry interface in your browser or desktop.

Then put in your data and start each new simulation run by a click on the SETUP button. The model will then apply your changes to the input data and by clicking on GO the run starts.

CAUTION! If you reload completely, for instance if you load the link to the model again, the initial settings will reappear and your individual changes in the interface will get lost.

Model data input/ required data:

1. A randomised initial population at time 0 with sliders to control the overall population size, age distribution and sex ratio.

2. Age-specific mortality profile of a population in the form of the qx column of a life-table that gives the probability of dying by input boxes for age groups in 5 year steps.

3. The fertility of the population with sliders for the reproductive phase of females, the child spacing and the probability of reproduction at each possible moment.

Data output/ produced graphics:

The results appear in various continuous and accumulating graphics and monitors. The graphics are designed to illustrate the different dynamics of the dead and the living populations, i.e. the living population and the cemetery.

There are monitors and graphics for the total population size of the living population at each point of time and the accumulating burials in the dead population. There are also plots that show the age structure of the living and dead populations, the overall input mortality profile, the mean age at death and the mean age in the living group.


The Behaviour Composer makes it possible to switch on and off specific parts of the code. By right clicking on specific behaviours these pieces of code can be activated and inactivated. This is why there are two optional ways of data input for mortality data, a specific fertility routine that reduces reproduction success if there is no balance of sexes and an experimental simulation routine for disease and artefact rates.

E.g. the two optional ways of mortality input:

1. A continuous Siler Mortality Curve with known alpha and beta values.

2. A very simple mortality structure with only three different age groups: children, reproducing adults & a post-reproductive phase.

CAUTION! If two redundant behaviours, such as two mortality routines, have been activated at the same time, the model cannot work properly and might produce error messages. Please switch on only one of the optional features per simulation run.

The options DOWNLOAD and SHARE can help you to download the programme and to save changes you made in the Behaviour Composer. Both functions do not relate to your individual data you put in using the Java Applet interface.

For the DOWNLOAD option you will need to install the netLogo software which is freely available online ( Simulation runs are much faster in the downloaded version of the model.

If you click on SHARE you will find four links with specific properties. These links will help you to save changes and share your results. I recommend using the first link (frozen model).


List of input and output data

The naming might not adhere strictly to the common palaeodemographic nomenclature to improve readability. Most of the parameters controlled by sliders or input boxes must be named "the-NAME", such as "the-mortality_0to4". The use of "the-" as a suffix of the parameters is required by the logic of the netLogo programming language.


1 step of time equals one year


initial population or starter generation


number of female individuals at time step 0


number of male individuals at time step 0


minimum age of the individuals of the initial population


maximum age of the individuals of the initial population



defines the minimum age of reproduction for females


defines the maximum age of reproduction for females


the ratio of female versus male newborns


the temporal delay between briths


the probability of reproduction at a point of time a female could reproduce defined by age and childspacing





the age-dependant risk of dying changes for each individual when they age, each input box controls a 5-years increment


multiplies the overall mortality of each individual by that value; this slider can be used to change the mortality of the total population


subtracts the value from the mortality of each individual; this slider can be used to change the mortality of the total population




n females:                                       

total number of living females at this point of time

n males:                                           

total number of living males at this point of time

n deadfemales:                              

accumulated dead females in the cemetery up to this point

n deadmales:                                  

accumulated dead males in the cemetery up to this point

+age mean:                                     

mean age at death of all individuals buried in the cemetery up to this point

age mean:                                       

mean age of all living individuals, changes dynamically over time

mean no children per woman:    

the average number of children which are being produced by the average female in the living population with the current reproduction settings

graphics & plots

living population:                           

plots the size of the female population at each point of time in red and that of the male population in blue

dead population / cemetery:       

plots the total number of the accumulating dead females and males in the cemetery

living population structure:         

plots the number of individuals in each age category at each point of time according to the sexes

age structure in cemetery:           

plots the accumulating number of individuals who die at a certain age according to age and sex; This equals the data you get from a cemetery excavation.    

input mortality profile:                 

This is the overall risk of dying over age defined by the mortality data input of the user.

mean age plot:                                

plots the mean age at death, i.e. the average age at death of the cemetery population, in black and the mean age of each living individual over time in green

% of trait plots:                              

these plots show the frequency of an artefact/disease in the living and dead populations given to 20% of all male individuals aged 30 over time in the subgroup of males aged 30 and over as well as in the complete population     

User manual (for beta 2.2)

(((in preparation)))


Copyright & citation

Please give the source of the programme if you are using it when dealing with third parties and contact me (details above) if you plan to use the tool in your own research. I would be very happy to collaborate with you and share experiences with the modelling tool.


Duering, A. (2012). Media vita in morte sumus. Different dynamics of the living and dead populations at Bärenthal. In: Proceedings of the Cultural Heritage and New Technologies Conference 17. Vienna, Stadtarchäologie Wien. Online resource, retrieved 15/01/2014, from

Duering, A. (2014). Der Friedhof von Bärenthal auf der Scherra. Lebensverhältnisse und Bestattungsbrauch einer Dorfbevölkerung des 7. bis 10. Jahrhunderts. Fundberichte aus Baden-Württemberg 2013, 34/2: 391-490.

Duering, A. and J. Wahl (2014). Agentenbasierte Computersimulationen als Schlüssel zur demographischen Struktur des bandkeramischen Massengrabs von Talheim. Fundberichte aus Baden-Württemberg 2013, 34/2: 5-24.

Duering, A. and J. Wahl (2014). A massacred village community? Agent-based modelling sheds new light on the demography of the Neolithic mass grave of Talheim. Journal of Biological and Clinical Anthropology [in press].

Hoppa, R. D. & Vaupel, J. W. (Ed.) (2002). Paleodemography: Age distributions from skeletal samples, Cambridge Studies in Biological and Evolutionary Anthropology 31, Cambridge University Press, Cambridge.

Kahn, K. and H. Noble (2010). The BehaviourComposer 2.0: a web-based tool for composing NetLogo code fragments. Constructionism Paris 2010, 1-14.

Kölbl, S. (2004). Das Kinderdefizit im frühen Mittelalter – Realität oder Hypothese? – Zur Deutung demographischer Strukturen in Gräberfeldern, Diss. Tübingen.

Wilensky, U. (1999). NetLogo, Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL. 2014, from

Wood et al. (1992). The Osteological Paradox: Problems of Inferring Prehistoric Health from Skeletal Samples, Current Anthropology 33/4, 343-370.