Jennifer de Kleine December 12, 2000
Reaction-Diffusion Texture Synthesis
Jennifer de Kleine
December 12, 2000
Reaction-Diffusion texture synthesis is a procedural method based on the chemical process known as 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.
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
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.
Greg Turk's results
Here are some pictures that were produced by simulating these reaction-diffusion systems directly over a mesh.