Self-organization is a concept I learned about from a book by
Stuart Kaufman. The idea is
that any systems consisting out of subsystems with a great number of rules that define
interactions between the subsystems will show signs of self-organization. Some systems will
help others, while other systems will slow neighbors. In these kind of environments it is
unavoidable that positive feedback loops will occur. A will help B, B will help C and C will
help A, so the whole system will grow in an ABC pattern.

Archean is an implementation of these ideas in the form of a cellular automatum. T
he idea is rather simpel. Each cell contains a vector of size 6. The average vector of the
neighbourhood is then calculated and multiplied by a matrix. This result is added to the
vector of the cell. By mapping the six reals to rgb space and filling the matrix with random
numbers, fascinating patterns spring to life.

An online version in Java is available and a downloadable one in Delphi. The last one is faster and has a breeding mode, where you see four variants of the same population and you can choose which one you like best. That one is then taken as the seed for four new variants. This allows you to find interesting patterns.

The Java version you see below. The matrix is represented by a 37 character string, which is displayed below. The same string will recreate the same patterns. If you hit on an especially interesting pattern, just copy the pattern and place a comment below, so others can view it too. The first character of the pattern should be 1,2,3 or 4 and determines the size of the neighbourhood used in the calculations. The other characters are the values of the matrix, numbers and capitals are positive numbers (capitals first), negative numbers are represented by the character for positive, but then with the shift pressed. You can vary the characters and see what happens.

If you think the pattern above is interesting, you can add it to the list below. Fill in a description and if you want your name and press Add

Or just press the [random value] button to try again:
**Previously saved entries**