reaction-diffusion/README.org
2023-10-03 13:47:51 +02:00

2 KiB

Reaction-Diffusion Model

Reaction-Diffusion system simulation using the Gray-Scott model, in Dyalog APL and BQN.

/dimitri/reaction-diffusion/media/branch/main/img.png

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.