Jennifer de Kleine December 12, 2000Reaction-Diffusion Texture Synthesis
Reaction-Diffusion texture synthesis is a procedural method based on the chemical process known as reaction-diffusion.
Reaction-Diffusion
chemical mechanism for pattern formation.
first introduced by Alan Turing in 1952.
possible mechanism by which cells of an embryo arrange
themselves into patterns.
two or more chemicals diffuse through an embryo and react
with each other until the chemical concentrations reach some stable state.
cells of different types may then develop in different
positions based on these chemical concentrations, resulting in patterns.
The general form of a two-chemical reaction-diffusion system is:
where represent the two chemicals,
F(a,b) is the reaction between chemicals a and b,
are the diffusion rate constants of a and b,
the Laplacian
is a measure of the
concentration of a at one location with respect to it's concentration nearby.
determines how fast a diffuses.
determines the direction in which a diffuses.
if a has low concentration at some cell then
will be positive and a will diffuse toward this cell.
if a has high concentration at some cell then
will be negative and a will diffuse away from this cell.
Key point: a small amount of variation in the initial concentrations gives an initially unstable system which may then be driven to a stable state in which the chemical concentrations vary across the surface, producing a pattern.
Previous work
these systems have been studied by biologists and
mathematicians to see what patterns may be formed.
Andrew Witkin and Micheal Kass considered
reaction-diffusion systems as a model for fingerprints.
Many people have used reaction-diffusion derived algorithms
to generate pretty pictures. You can get nice backgounds from The Wallpaper
Machine by Roy Williams and Bruce Spears.
http://www.cacr.caltech.edu/cgi-bin/wallpaper.pl
Also Andrew Witkin and Micheal Kass won the Prix Ars Electronica 1992 for
their picture 'RD Texture Buttons'. link
Greg Turk looks at generating textures using a cascade of
multiple reaction-diffusion systems.
Greg Turk also introduces a method by which the texture is
generated directly over an arbitrary surface.
Reaction-Diffusion on a grid
each square on the grid represents a cell
each cell diffuses to each of its four neighbours
the concentration of each chemical is represented by a 2-D array of
discrete values, one value for each cell on the grid
simulate reaction-diffusion by solving partial differential
equations over the grid
System for generating spots proposed by Turing:
where s is the source density constant.
Small values of s result in a slower reaction relative to diffusion
which gives us larger spots.
Larger values give us smaller spots.
Beta is the parameter which is used to introduce the
small amount of variation into the system making it unstable.
The more beta varies, the more irregular in shape the spots become.
After running this system on a grid, the concentration can be mapped to some colour values to generate texture. I chose a very straightforward simple mapping:
Another system which I have implemented is a 5-chemical system proposed by Meindhart for the generation of stripe patterns:
Multiple reaction-diffusion systems
More complex patterns can be generated by combining the above two
systems.
First one chemical system is run producing an
initial pattern, which is then refined by simulating another system.
Jonathon Bard suggested that this process may be responsible
for coat patterns of some mammals.
Cheetah spots
Leopard spots
Lionfish stripes
Giraffe reticulation
Zebra stripes
Greg Turk's results
Here are some pictures that were produced by simulating these reaction-diffusion systems directly over a mesh.