Jeff's Website

Assigning Space For Buildings (1)

The task here is: given an piece of land (a 'Block') divide up its area into plots where individual buildings can be constructed.

Buildings are constructed at different times, by different people and for different purposes. If you look at an area of land, there has often been no overall plan for its use from the outset. Areas of land evolve over time.

This is perhaps the hardest task to achieve using artificial means. It can be difficult to simulate without the results looking 'manufactured'.

The naive method of dividing up a 'Block' into space for buildings is simply to divide the block up into 'plots' using the average building dimensions that have been provided. Using this method we end up with a grid-like arrangement and can simply put a building in each square of the grid. This can however look manufactured and too uniform.

To improve realism we can shift the grid that we create in a similar manner to that which is demonstrated in the city model applet. While this looks better, it is still not perfect.


A more complex way of dividing up block space for buildings can be described as follows (and is demonstrated by the applet on the following page). Imagine you are looking at a plan view of an area of land. Here each building starts off as a 'seed' placed somewhere in the block area. The computer then runs through each building seed and 'grows' it by a small amount each turn.

A building will always expand in a particular direction (x/z) until it :

  • collides with another building, or
  • reaches the edge of the block.

When no building can grow any further, then the block of land has been fully populated. This method of distributing buildings produces more realistic results since it breaks up the uniform lines that are observed with the naive method.

The key factor that determines the outcome of this method is in the initial positioning of the building 'seeds'. A difficulty in using this method is that it is harder to relate this initial positioning to any given parameters such as average building lengths/widths.