powered by NetLogo

view/download model file: cellAut.nlogo


This model simulates the self-organized growth of the urban fabric, in terms of built and un-built cells. Roads are included, as the drivers of the urban expansion. The growth is logistic, so that the growth rate decreases when the built area saturates the available space.


The model is based on cellular automata. The space, a squared flat surface, is divided in square cells. Each cell takes three states: open land (un-built), built, or (crossed by a) road. The transitions from one state to the other, are: an open land cell may change in built or road cell, a road or built cell does not change state.

The change of status of a cell from open land to road is exogenously established by the user.

The change of status of a cell, from open land to built, depends on the surrounding built cells and on the surrounding roads cells. Each cell, depending on its state, produces a potentiality in the surrounding cells which influences the change of the status of these cells, so that each cell is characterized by the potential given by the cells around. It is as if the cell looked around: the situation of cells closest is taken into consideration more than cells further. To consider this aspect, for each cell the number of the surrounding cells, included in and established radius, which are built (built-neighbor) or road cells (road-neighbor) is calculated.

In order to simulate the effects of the states of the surrounding cells, two mechanisms are utilized: the first one considers mainly the effects of the built cells around the central cell. The built cells influence the building of a new cells both alone, and in connection with roads. This is done by considering the following potentiality value:

(1) P(b)= (1/2)*built-neighbor + (1/2)*sqrt(built-neighbor*road-neighbor)

In this way the potentiality depends on the surrounding built cells but it is reinforced by the presence of roads.

The second considers only the roads. In this case, the potentiality is simply the number of cells roads in the neighborhood:

(2) P(r)= road-neighbor

The building of a new cell, happens when the two potentialities overcome two established thresholds, as follows. An open space cell becomes built when

(3) P(b)>= min-built-cells.

In case of a negative result of the previous test, to simulate the creation of cells built from only the proximity to the roads, we introduce the following rule which is valid with a low probability: a cell can anyway be built if
(4) P(r)>=min-road-neigh

and if
(5) R<0.01

where R is a random number uniformly distributed [0-1].

Otherwise stated, this second case is considered as exceptional. Of course, when one such event happens it become a seed from which an expansion happens using the first mechanism.

In both the first and the second mechanism the building of a new cell is submitted to a general probability that a cell can be built (probability-to-build). It depends on the speed of urbanization, on the availability of financing for the new buildings etc.


The model allows one to observe the self-organized growth of the urban fabric. You can establish the spatial context, including the roads network and the growth rules and to simulate the urban growth. First of all you draw the road network which is crucial factor for the urban expansion. Second you decide the rules of the growth. These rules concern the diffusion of the potentiality of the two expansion factors (built cells and roads cells) and their relative influence on the urban pattern expansion.

First click on setup, and the central seed of built cell red colored, will appear. To draw the roads network click on draw-roads, and later pushing the right button of the mouse you can draw the roads network that will appear yellow colored. You are free to draw the network you like. Note that the connectivity of the roads network is not checked. Roads are not considered in fact as a network but only as cell crossed by roads. It is your concern to draw a roads network which resemble the most the characteristics of a true roads network.

Second choose the rules of the urban evolution:
- choose the radius of the neighbors, one considers as relevant for the change of the status of the cell. The more large is the radius the more scattered will be the urban pattern.
- choose the threshold for the built-cells factor (min-built-neigh)
- choose the threshold for the roads factor (min-road-neigh)
- choose the probability to build (probability-to-build). Decreasing this probability one obtain a more scattered urban pattern.
Note that the greater is the value of min-built-neigh, and of min-road-neigh, the lesser are the effects of the corresponding factors (built cells and road cells) on the expansion of the urban fabric.

Then click on go and the growth will start.

To repeat the simulation without changing the roads network, select built-cells in the chooser clear, and later click on setup. The built cell will be canceled, unless the central seed, but the road network remain unchanged. You are thus able to change the rule and to repeat the simulation. You can also repeat the simulation maintaining the rules unchanged and changing online the random-number-seed. In this case a new simulation is produced with the same rules but with a different result due to the different sequence of random number utilized by the code.


The urban pattern strongly depends on the established building rules, so that you can observe the resulting urban pattern in correspondence of the chosen rules. The more the potentiality is extended and the more the urban pattern is scattered. The more the parameter related to the roads is lower, the more the roads effect is high.


You can simulate the urban growth with different building rules, maintaining the same roads network. You can also observe in details the growth of the urban cluster, clearing only the built-cells and lowering the speed of the growth by using the slider at the top of the screen.
If you wish you can change the rules during the growth, even if it would be better to observe the result with an established set of rules and later change the rules and to observe the corresponding result.
You can also stop the the growth clicking on go and add more roads in order to observe the effects on the growth of the spatial pattern.


The urban pattern is roughly determined by the roads network, and by the elevation and slope of the ground. In fact to build where the slope is important is more expensive. For this reason, the cities contemporary expansion happens in flat areas. To add elevation would be useful in order to get more realistic result and to consider this important factor in urban expansion.


The random-seed instruction is utilized for exactly reproduce the same simulation, starting from the same set of parameters


Comments are welcome, as well as suggestions to upgrade the model.
Please send you comments and suggestions to semboloniATunifi.it

Copyright 2011 Ferdinando Semboloni. All rights reserved.