Urban Suite - Structure from Randomness 2

Urban Suite - Structure from Randomness 2 preview image

3 collaborators

Uri_dolphin3 Uri Wilensky (Author)
79107734_n00-1 Seth Tisue (Author)


(This model has yet to be categorized with any tags)
Model group CCL | Visible to everyone | Changeable by group members (CCL)
Model was written in NetLogo 5.0.4 • Viewed 246 times • Downloaded 51 times • Run 1 time
Download the 'Urban Suite - Structure from Randomness 2' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


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 ( http://ccl.northwestern.edu/cities/ ) for more information.


If you mention this model in a publication, we ask that you include these citations for the model itself and for the NetLogo software:


Copyright 2007 Uri Wilensky.


This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ 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 uri@northwestern.edu.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

patches-own [potential new-potential]

to setup
  ask patches [ set potential one-of [1 -1] ]

to go
  ask patches [ set new-potential (potential + sum [potential] of neighbors4) / 5 + one-of [1 -1] ]
  ask patches [ set potential new-potential
                if potential > threshold [ set pcolor white ] ]

; Copyright 2007 Uri Wilensky.
; See Info tab for full copyright and license.

There are 10 versions of this model.

Uploaded by When Description Download
Uri Wilensky about 11 years ago Updated to NetLogo 5.0.4 Download this version
Uri Wilensky over 11 years ago Updated version tag Download this version
Uri Wilensky over 11 years ago Updated to version from NetLogo 5.0.3 distribution Download this version
Uri Wilensky over 12 years ago Updated to NetLogo 5.0 Download this version
Uri Wilensky almost 14 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky almost 14 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky almost 14 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky almost 14 years ago Updated from NetLogo 4.1 Download this version
Uri Wilensky about 14 years ago Model from NetLogo distribution Download this version
Uri Wilensky about 14 years ago Urban Suite - Structure from Randomness 2 Download this version

Attached files

File Type Description Last updated
Urban Suite - Structure from Randomness 2.png preview Preview for 'Urban Suite - Structure from Randomness 2' about 11 years ago, by Uri Wilensky Download

This model does not have any ancestors.

This model does not have any descendants.