Reaction-Diffusion Cellular Automaton
This is the applet discussed in the 2011 Edition of the CMG. It simulates a reaction-diffusion model to demonstrate pattern formation. It takes a little tinkering to get a feel for what each variable does, so don't feel overwhelmed if you don't "get it" instantly. If you would like to quickly see some patterns forming, select one of the Presets on the lower left and click the "Load" button, and then click the "Go" button at the top of the applet.
·The go button starts the simulation if it is stopped, or unpauses.
·The pause button pauses the simulation. While paused you can either unpause, by clicking go or pause. If you click the tick button it will advance the simulation by another tick and pause again.
·The stop button ends the simulation at its current point.
·While the simulation is running you can select different Drawing Styles.
·The display is showing you how much of the molecule is present in that area of the skin. This level is what triggers those skin cells to make a particular pigment.
·When U and V are both shown, U is yellow and V is blue.
·The "U Thresholds" and "U Histogram" are typically the most useful.
·The histogram view slices the range of values into stairsteps and shows each one in a contrasting color, which can help to visualize different shapes that might be present in the display. The number of bands is how many ranges to divide the display into. Usually 10-20 is most useful.
·The threshold views also divide the range into discrete steps, but allows you to choose the ranges and what colors they represent. Click the Color buttons to change the color for that range. You can change the ranges with the text boxes on the left, or in the color bar by dragging the edge of a range with the mouse.
·The isometric view didn't turn out to be very useful, but it can be interesting to look at when the simulation is completed or paused.
·The Presets are saved on the server so that visitors can see what interesting settings have been found by other users. If you find some interesting settings, you're welcome to save them for others to check out.
·When loading up a preset, please read the description.
·Check out the different drawing styles for a preset.
·Presets will be looked at and if some appear to have been added accidentally, they will be removed.
Text box parameters
The other textboxes show numbers that you can change:
·The Simulation Size is the width and height in dots. Changing this requires a recalculation of the cell matrix so it is best to do it while the simulation is stopped.
·Draw Every ____ tick sets how often the display is updated. Drawing can slow down the program so sometimes it helps to set this to 10 or 20.
·End at ____ ticks sets when the simulation will automatically stop.
·Fuse Spine at ____ ticks sets when the top and bottom halves start to interact with each other. This simulates the actual fusing of the left and right halves of the skin in an embryo.
·U and V Diffusion Rates, Reaction Rate, Replenish Rate, and Decay RateThese are what this simluation is all about... you have to observe it in action to get a feel for how these variables produce different outcomes.
·Edge Force U and V cause the top and bottom edges to stay at the values you enter here. Setting the Edge U to -1 will allow the cells at the edges to behave normally. This seems to be a vital component of the saddle shapes in cornsnake patterns, and it's assumed that these "edges" are where the pattern gets cut off on piedsided corns and the whitesided variations of other snakes.
·Moving the mouse over the main display will show the U and V values of cells.
·Click and drag on the main display with either mouse button to set a chunk of skin to either high U or V values. Some settings require this to kickstart the reaction.
What is being simulated?
·Each dot in the display represents a cell. There are two molecules that we will call U and V. The amount present in each cell is randomized at the start of the simulation. The "diffusion" component of the system is that each molecule diffuses across the tissue, trying to equalize the concentration between each cell and its neighbors. This is controlled by the U Diffusion and V Diffusion parameters.
·The "reaction" component is where two V molecules act to convert one U into one V. The rate of this is controlled by how many U and V molecules are present in the cell. The more there are, the faster U is converted into V. The "Reaction Rate" parameter in the simulation controls this.
·Molecule U is used up in the reaction, but it is also present in the underlying tissue, and diffuses up into the simulated layer of cells. This is represented by the "Replenish Rate" parameter.
·Molecule V builds up as a result of the reaction, but it also decays into another product, typically called P. This is represented by the "Decay Rate" parameter. The P value in the display is the amount of molecule P built up over the course of the simulation. Molecule P stays where it was produced in this simulation.
·The skin over the spine in an embryo is split for part of development and fuses together. The timing of this event (before, during, or after pattern development) can affect the resulting pattern. For example, zigzagging is easy to produce if the left and right halves remain separate.
For pseudocode and a more detailed explanation of the algorithm see this page.