Spatial agent-based modelling