Cellular Automata rules lexicon

Go back to MCell Home

Family: User DLLs

Type: any, in range 1 neighborhood

"User DLLs" game allows MCell users to program rules otherwise impossible to specify in the program. External DLLs can be programmed using any language and compiler producing 32-bit Windows standard DLL files. For detailed instructions of programming user DLLs refer to the "Programming user rules" page.

MCell built-in User DLLs rules

Name Character Description
Aurora Chaotic A one-dimensional version of the Rug rule: every cell's new state is taken to be one greater than the neighborhood average of Left, Me, and Right. When a color value reaches 16, it is rounded back down to 0. The effect produced is like globby paint running down the screen, though really you are seeing "one-dimensional gliders" moving back and forth and interacting.
"I called the rule Aurora because when I visited Norman Packard's office at the Institute for Advanced Study in 1985, he showed me a smoother (eight visible neighbor bits and 255 colors) version of this rule and remarked that it looked like the northern lights." - RR
A rule by Rudy Rucker.
Digital Inkblots
More pictures:
2, 3, 4, 5
Exploding An interesting version of the Rug rule with 9-cells neighbourhood and increment of 3. Most of the patterns will go through stages of relatively small changes for a while and then suddenly hit a chaotic stage that usually spreads out destroying the previous stable state and creating a new stable (but more complicated) phase.
Best palettes seem to be shaded bands of colors, i.e. black=>white=>black=>white or black=>anycolor=>black=>anycolor etc. Shaded palettes without the black fade-out bands do not give as nice effects.
A rule by Jason Rampe.
DLA Chaotic DLA (Diffusion Limited Aggregation) in Margolus neighborhood.
A rule by Brian Behlendorf, November 1999.
DNA Expanding Many automata can reproduce patterns, but such behavior is a simple mathematical property of the rules, and is not based on the starting pattern. In this automata, the correct starting pattern is essential, otherwise nothing interesting happens. True, the rules are VERY convenient for this pattern, but the rules themselves do not make the reproduction occur. It is the rules acting on this special pattern which enables reproduction (just like our own universe!)
Like real organisms, this pattern contains "DNA" which directs the reproduction. The "DNA" is processed in two ways, by replicating it and by transcribing it. This is necessary for "true" reproduction. Like bacteria, the reproduction doesn't simply create another copy of the starting pattern. It creates two identical copies of itself, thus both the parent and the child can continue to make new copies of themselves.
This automata was designed by Christopher G. Langton at the University of Michigan, and is described in his article "Self-Reproduction in Cellular Automata", published in the book "Cellular Automata" in 1984.
GreenHast Gliding The original GreenHast rule seems to die out very quickly. MCell's implementation allows patterns going out of the board to bounce back. I noticed that simple starting patterns reappear after some thousand cycles. Is it a general rule? Will every pattern reappear giving the rule sufficient running time? It's hard to believe it, especially if the pattern enters the chaotic phase.
Greenberg-Hastings rule, slightly modified by Mirek Wojtowicz.
Hodge Exploding A version of the "Hodgepodge machine", the classic CA rule by Martin Gerhardt and Heike Schuster of the University of Bielefeld in West Germany. Hodge is a lovely rule which converges very rapidly. After about 200-500 cycles it starts producing spirals like the Zhabotinsky reaction. Try also running the rule from symmetrical patterns.

The Hodge rule is formulated in terms of two constants g and n:

  1. Healthy. A cell in state 0 becomes nonzero if it has several nonzero neighbors. The details of how this is done are unimportant.
  2. Sick. For a cell with state between 0 and n begin by calculating the average of the nine states in the cell's neighborhood and then add the fixed constant g. If the number you get is less than or equal to n, then that is the cell's new state,
  3. Ill. But if the number you get is greater than n, then you round it down to n. And if a cell is in presently in state n, then its next state is automatically 0.

A rule by Martin Gerhardt and Heike Schuster.

ModulusM4 Exploding Add up the Moore 9 neighbors and return the sum mod 4.
A rule by Dave Hiebeler
ModulusMS9 Exploding This rule sets the new state of each cell to the modulus sum, base 9 of its immediate 8 neighbors.
A rule by Alastair Couper.
ModulusMT9 Exploding This rule sets the new state of each cell to the modulus sum, base 9 of its immediate 8 neighbors plus itself.
A rule by Alastair Couper.
ModulusN2 Exploding Add up the von Neumann 5 neighbors and return the sum mod 2.
A rule by Dave Hiebeler.
RandomWalk Chaotic RandomWalk Cellular Automaton in Margolus neighborhood. All cells move randomly on the grid.
A rule by Brian Behlendorf, November 1999.
Rug Exploding Rug rules are averaging rules using the full range of 256 possible states. To update itself in a Rug rule, every cell takes four steps. 1) Every cell calculates the sum of its eight nearest neighbours' states. 2) Every cell calculates the average neighbour state by dividing the sum by eight and throwing out any remainder. 3) Every cell computes its new state by adding an Increment (usually the increment is 1) to the average neighbour state. 4) As a final step, new state is taken modulo 256.
In general the Rug rules will look better when the wrap is turned off. The existence of a fixed zero boundary gives the rule some information input to react to.
A rule by Rudy Rucker.
Triad Chaotic This rule is a competition of two independent Brian's Brain systems, one blue and the other red. At places where both families of cells clash, yellow sparks come in sight.
A rule by Lionel Bonnetier.
Venus Stable "I call it Venus because it produces a pattern that looks like what you might see peering out through hanging mosses at floating mats of vegetation in a swampy sea. When I was a child this is what science-fiction writers thought the surface of the planet Venus would be like." - RR
A rule by Rudy Rucker:
Weighted Generations Any

WeightedGenerations DLL is a configurable user DLL that implements a Weighted Generations family. It's a natural extension of the Generations family. The extension simply permits any state to contribute to the neighbor count using weights associated with each state. If a weight is n, and the corresponding state occurs m times in a cells neighborhood then the neighbor count is incremented by n*m. If a state's weight is 0, then that state does not contribute to the neighbor count. Position weights identical to those used in the Weighted Life family are also supported.
Discovered and explored in 2001 by Brian Prentice.


Webmaster: Mirek Wojtowicz

globe http://www.mirekw.com

MCell mirrors:
globe USA  http://psoup.math.wisc.edu/mcell/
globe Europe  http://www.mirwoj.opus.chelm.pl

Last update: 15 Sep 2001