C# Stuff
Delphi Stuff
Artificial Life
Genetic Algorithms
Classifier Systems


One project I've been working on some time back, has to do with complex adaptive systems.

These are dynamic (ie. developing) systems which arrange themselves according to external influences and to their own state. If you are familiar with Conway's "Game of Life", you have an example of such a system.

Complex adaptive systems arrange themselves around one or more critical factors (like in a sandpile, for example, where the pile will rearrange itself when you drop additional sand grains onto it). The theory behind these systems is related to chaos theory, but the systems are "on the edge of chaos", because they have the ability to adjust themselves (around the critical factors), unlike truly chaotic systems.

One interesting thing with CA-systems is that they can suddenly rearrange themselves rather violently. Like in a sandpile which has a grain added to it, which topples onto other grains, which in turn topple onto other grains, etc. You have an avalanche effect.

Many phenomena in daily life are complex adaptive systems, like weather, traffic, earthquakes, eco-systems, or the stock market. This is why the science behind CA-systems, which is relatively new, is very promising as it can probably help tell us a good deal about our world which we can't tell or simply don't know yet.


A fellow student and I constructed a sandpile simulation program, which illustrates the principles of how a (much simplified) sandpile behaves, when grains are added to it. The grains that are added cause the sandpile to grow higher, but it may also cause grains to fall down the sides of the pile, causing more grains to fall down, etc. etc. Even though grains are added in random locations, the pile will eventually become almost symmetric (it will become cone-shaped).

The simulation was originally created to illustrate some underlying principles of why the sandpile behaves like it does (how do avalanches increase in size as the pile grows; how does the calculation time increase; etc).

The sandpile model used in the simulation doesn't have much to do with a real sandpile (the model is quite flat, and grains can fall uphill). However, you might like to watch the patterns that the simulation produces as it runs. The model is an example of a certain kind of models, simply known as sandpile models.

From my Delphi page you can download a sandpile simulator written in Delphi. Documentation and source code is included.

Updated 13 Nov 2015
Send e-mail