Demos


CoSMoS has produced a number of demonstration complex systems:


Occoids

Occoids is an implementation of Reynolds’ Boids, a simulation of bird flocking. Each bird is able to see the other birds and obstacles in a fixed radius in front of it, and adjusts its velocity based on a set of simple rules. Our implementation also features trees (white circles), which the birds will avoid flying into. The birds form tight flocks and navigate around obstacles as an emergent behaviour.

Occoids video

Occoids with food

We extended the model to include food (green squares), which the birds are strongly attracted to, and hawks (red squares), which frighten the birds and cause them to temporarily change their flocking behaviour.

Occoids with food video

Occoids with retricted view

If the field of view of the birds is severely restricted, they form long, thin “flocks” that eventually settle down into a single direction.

Restricted occoids video

Distributed Occoids

Occoids can be distributed across a cluster of machines using asynchronous network messaging. This video shows Occoids running on the Display Wall at the University of Tromsø.

Display wall Occoids video

Plain occoids

Plain occoids

Occoids with food

Occoids with food

Restricted vision occoids

Restricted vision occoids

Display wall occoids

Display wall occoids


Ant-based annular sorting

Annular implements Martyn Amos’ ant-based annular sorting algorithm. The population consists of moving ants (the red and green dots) and various sizes of static eggs (the white circles). Ants can make aesthetic judgements about the placement of eggs. When an ant encounters an egg that it feels to be poorly-placed, it picks it up and carries it until it finds a better location for it. Using a simple aesthetic rule, the ants can eventually sort the eggs into rings by size, with the smallest eggs in the centre and the largest at the outside.

Annular video

Annular sorting

Annular sorting


Lymphocyte migration

Migration models the migration of lymphocytes from the blood system to the lymphatic system. Inside lymph nodes, there are sections of blood vessel called high endothelial venules through which lymphocytes can pass under certain conditions. When a lymphocyte collides with the HEV wall, it may slow down and roll along the wall. If receptors on the lymphocyte are activated during the rolling process, it can pass through the wall and into the lymph node. The diameter of the HEV can vary as the body responds to infection, which may affect the rate of lymphocyte migration.

Our simulation models a three-dimensional tubular section of HEV, with lymphocytes either flowing freely through the HEV (green), rolling (red) or migrating (blue). The display may be freely rotated and the HEV diameter adjusted while the simulation is running. Counts are displayed of the number of lymphocytes in each state, and of the number that have passed into the blood and lymphatic systems.

Migration video

The simulation can also be put into “chase camera” mode, which picks a lymphocyte and follows it as it passes through the HEV.

Migration (chase camera) video

Lymphocyte migration

Lymphocyte migration

Lymphocyte migration; "chase camera" view

Chase camera view


Chemical diffusion

Many simulations require a model of chemical diffusion. Diffusion demonstrates diffusion of three differently-coloured chemicals (red, green and blue) across a grid of cells. The user can place chemicals using the mouse. In this simulation, the chemicals do not react with each other.

Diffusion video

Diffusion

Diffusion


Artificial immune systems

These two case studies model populations of immune-system cells that can interact with other cells that have complementary shapes to their own. Each cell maintains an activation level, which slowly decreases over time. When a cell encounters another cell with a complementary shape, its activation level increases by an amount related to the similarity in shape of the two cells. If a cell’s activation level reaches zero, it dies and is removed from the simulation.

Shapespace is based on the model described in Hart and Ross’s Studies on the Implications of Shape-Space Models for Idiotypic Networks. The visualisation shows shape space rather than physical space, with cells coloured according to their activation level. Each point in shape space has a complementary region in which cells will be activated. From a random initial state, the system quickly develops “tolerant” and “intolerant” regions as an emergent behaviour.

Shapespace video

Grid extends the model to support cells that not only have a shape but also move around in discretised physical space. The visualisation shows physical space and two live charts: a histogram showing the age distribution of the cells, and a line chart showing the total population. In this model, we see population explosions as groups of mutually-reinforcing cells come into contact.

Grid video

Shapespace

Shapespace

Grid

Grid


Scale free networks

Simulations that operate over an arbitrary graph rather than in continuous space are also easy to construct using process-oriented modelling. Scalefree demonstrates the real-time construction of a scale-free network of processes and channels that could be used as the basis for another simulation.

In this model, a new node is added on each time step, and connected to two randomly-chosen other nodes. The choice of other nodes is weighted by the number of connections they already have, so well-connected nodes tend to become more well-connected. Bars are drawn around the outside of the network to show the number of connections on each node.

Scale free video

Scalefree network

Scalefree network


L-systems

In an L-system, a string of symbols is repeatedly rewritten using a set of rules. If the symbols are interpreted as a series of drawing instructions, the resulting graphics can resemble organic structures; L-systems can therefore be used to model the development of plants and other lifeforms.

Lsystems implements L-systems in a process-oriented way: each symbol is a process, linked into a string using channels. On each time step, a channel end is passed along the string; each process sends its symbol down the channel, and then replaces itself with the string of processes corresponding to the symbols it should be rewritten to. The symbols are interpreted as turtle graphics commands.

L-Systems video

Dragon curve

Dragon curve

Penrose tiles

Penrose tiles