| .gitignore | ||
| generate_animation.sh | ||
| grayscott.bqn | ||
| grayscott.dyalog | ||
| img.png | ||
| img.pnm | ||
| inferno.pnm | ||
| Makefile | ||
| out.mp4 | ||
| README.org | ||
Reaction-Diffusion Model
Reaction-Diffusion system simulation using the Gray-Scott model, in Dyalog APL and BQN.

Running the Dyalog version
Install Dyalog APL and Netpbm (apt-get install netpbm). Then run
make. This will create the img.pnm and img.png files in the
current directory.
The images are generated from APL by creating a Netpbm file, which are
nice because they are just plain-text. It is then converted to PNG
using pnmtopng.
Running the BQN version
Clone bqn-graphics at the same level than this repository. Run the
./generate_animation.sh script. It requires GNU Parallel, Netpbm,
and ffmpeg.
PNM and PNG images are in the out directory, and the animation is in
out.mp4.
Parameters
All the parameters are defined directly in /dimitri/reaction-diffusion/src/branch/main/grayscott.dyalog.
The parameters of the model are:
dt: the time step,da: the diffusion rate for A,db: the diffusion rate for B,f: the feed rate for A,k: the kill rate for B.
Additionally, you can change N, the size of the grid, and steps,
the number of time steps to simulate.
Finally, the function mat2pbm exports to a bitmap (black and white)
format, while mat2pgm exports a grayscale image.
References
This page gives a good explanation of the Gray-Scott model. This notebook gives a nice example of implementation in Python with Numpy. For even more details on the model and a classification of pattern, see this page.