Emergent Wave Dynamics from Local Threshold Rules
This model is a deterministic discrete simulation framework that demonstrates how complex spatiotemporal excitation patterns can emerge from simple local interaction rules on a 2D grid.
Instead of solving global differential equations, the system uses nearest-neighbor deterministic update rules inspired by excitable media dynamics akin to action potential propagation in neurons and excitable tissues.
Built using NumPy + Matplotlib, the engine simulates the time evolution of discrete waves and visualizes emergent behavior arising from neighbor interactions.
- Discrete Lattice Representation: 100×100 grid with deterministic update rules.
- Three-State Excitable Dynamics: States cycle through Resting, Excited, Refractory.
- Periodic Boundary Conditions: Wrap-around edges create a seamless topology.
- Nearest-Neighbor Interactions: Moore neighborhood (8 directions).
- Visual Animation Output: Produces a simulation GIF of emergent wave patterns.
- Parameter Tunable: You can adjust grid size, initial activity, and threshold rules.
Excitable systems can support wave propagation even when each element only “sees” its nearest neighbors.
In this system, each cell
| State Code | Meaning |
|---|---|
0 |
Resting (OFF) |
1 |
Excited (ON) |
2 |
Refractory |
The evolution of the grid is fully deterministic — no stochastic elements — and patterns emerge solely from the interaction between neighboring cells.
Grid size:
Neighborhood used: Moore neighborhood
Periodic boundary conditions are applied, making the grid behave like a torus.
The grid evolves through discrete time steps according to deterministic local rules:
A resting cell becomes excited if it has exactly two neighboring excited cells:
An excited cell always becomes refractory at the next step:
A refractory cell always returns to the resting state:
Despite their simplicity, these rules produce rich spatiotemporal structure.
The simulation is coded in:
Key packages used:
numpy— for efficient array operationsmatplotlib— for visualization and animationmatplotlib.animation.FuncAnimation— for generating GIF output
The simulation initializes the grid with 10% of cells in the ON state and evolves the system for a fixed number of frames while saving the animation as a GIF.
This animation visualizes the emergent propagation waves over discrete time steps.
Created as a project for IDC621 - Modelling Complex Systems.
