NetLogo banner

 Contact Us

 Modeling Commons

 User Manuals:


NetLogo Models Library:
Curricular Models/Urban Suite

(back to the library)

Urban Suite - Structure from Randomness 2

[screen shot]

If you download the NetLogo application, this model is included. (You can also run this model in your browser, but we don't recommend it; details here.)


This is another model that demonstrates the concept of "structure from randomness". In particular, it is an implementation of the model described in the book "Cities and Complexity" by Michael Batty, on pages 45-47. For analysis and discussion beyond that provided with this model, the reader is encouraged to refer to this text.

The basic idea here is showing how structured formations can easily from completely random initial data, through a simple process.


Each grid cell is initialized to have a potential value of either 1 or -1, at random.

Each tick of the model, the cell takes on a new potential value, which is the average of the potential values from its Von Neumann neighborhood (that is, itself and its 4 neighbors) from the previous step, plus a random number, either 1 or -1.

The potential values are not displayed directly in the graphical view. Instead, a cell is shown as white in the view when it becomes activated, which occurs when its potential value exceeds the threshold specified by the THRESHOLD slider. Once a cell has become activated it stays activated, even though the potential value of the cell may drop down below the threshold again.


Press the SETUP button to initialize the grid squares.

Press the GO button to run the model. Press the GO ONCE button to run the model just a single tick. For a while nothing may change in the view -- this is because none of the cells have reached the threshold yet, to become activated. Let the model run for some time, and then you will see cells start to light up.

The THRESHOLD slider controls the threshold which cell's potential value must reach in order to become activated.

The CELLS ABOVE THRESHOLD plot records (at each tick) the number of cells that are currently above the threshold. Note that this is different than plotting the number of activated cells, which is a monotonically increasing function.

The POTENTIAL plot shows two different things. The maximum potential value that any cell currently has is plotted in green. The average potential of all the cells (times a factor of 10, so that it can be seen better on the same graph) is plotted in blue.
(These plots were designed to match the plots shown in Figure 1.11 of the Cities and Complexity Book.)


The maximum potential shoots up quickly at first, but then slows. However, it continues to slowly increase over time. It is important to understand that the maximum potential that is being plotted is the largest potential found in any of the cells -- not the theoretically maximum potential, which increases linearly with the number of ticks, since it is possible (though very improbable) that all the cells could continually have 1 added to them, and never have -1.


Choose a medium threshold level (such as 4 or 5) and let the model run for about 1500 ticks. The white patterns of activated cells that form have been shown definitively to be fractal in nature (by Viscek and Szalay, 1987). Furthermore, it was shown that the fractal dimension (which gives an indication of the amount to which a fractal fills the space) varies with respect to the THRESHOLD value. This makes sense, and you can see it visually be setting different THRESHOLD values and running the model for a fixed number of ticks.


Make it so that cells can be activated in either the positive or negative direction -- that is, if they go below -THRESHOLD, then they should become negatively activated. Color positively activated cells blue, and negatively activated cells red. If a cell gets activated one way, and then later is activated the other way, color that cell purple.


When creating or adding white noise to the system, this model uses the expression "ONE-OF [1 -1]", to choose either 1 or -1 randomly. ONE-OF is a primitive that works with either agentsets or lists. It makes a random choice from the collection it is given. An alternative choice would have been "(RANDOM 2) * 2 - 1", but the ONE-OF notation is easier to read.


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

In particular, it is related to "Urban Suite - Structure from Randomness 1", which is another model demonstrating the same concept.

It is also related to the DLA (diffusion-limited aggregation) model in the NetLogo models library, which grows fractal structures from random particle motion.


This model is based on pages 45-47 of the book "Cities and Complexity" by Michael Batty.

Thanks to Seth Tisue and Forrest Stonedahl for their work on this 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 ( ) for more information.


If you mention this model or the NetLogo software in a publication, we ask that you include the citations below.

For the model itself:

* Wilensky, U. (2007). NetLogo Urban Suite - Structure from Randomness 2 model. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

Please cite the NetLogo software as:

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


Copyright 2007 Uri Wilensky.

![CC BY-NC-SA 3.0](

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit 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

(back to the NetLogo Models Library)