Added as example on webgpgpu Github.
This is a cellular automata analogue of the model that we used for developmental retinal waves in this paper.
Key rules
- Vegetation "grows" occasionally (flip a coin to increment amount of trees)
- Fires have a small chance of starting spontaneously
- Intensity of ignited fires decay down to zero, at which point they leave ash
- Fires spread to adjacent cells with a probability that depends on their intensity
- Probability of a cell igniting given a fire is related to how much vegetation there is
Sketch of WebGL implementation:
- A single RGBA texture stores the game state
- Each color channel in [0,1] can be mapped to a [0,255] byte value
- A "noise" texture creates pseudorandom numbers
- The green channel stores the level of vegetation (BURNT,NONE,GRASS,SCRUB,TREE)
- The blue channel stores the intensity of the fire
- The red channel outputs a tile ID value that is passed to a tile shader to render the game
