Automates is a lightweight OCaml platform for prototyping cellular automata and agent-based rule models on two-dimensional grids.
In Automates, space is represented as a two-dimensional matrix. At each
iteration, a model-specific evolve function computes the next state of the
system. The graphical layer then renders the resulting matrix efficiently.
This design keeps the core application independent from individual models. New automata or rule-based simulations can be added as plugins, while reusing the same interface, rendering engine, execution loop, and configuration system.
Although simple by design, Automates can be used to explore a broad range of spatial dynamics, including Conway-like automata, cyclic automata, coral-like growth, maze-forming systems, propagating fronts, hyphal-growth toy models, and agent-like simulations on a grid.
The program combines:
- a graphical interface;
- Cairo-based rendering;
- a modular plugin system;
- import and export of model states;
- optional frame capture for visualization;
- command-line parameters for reproducible exploration.
The central goal of Automates is to provide a simple, extensible framework for testing how local rules generate complex spatial dynamics. It is intended for exploratory modelling, teaching, visualization, and early-stage hypothesis formalization rather than for fully calibrated simulation.
- User guide: installation, building, running, repository structure, and plugin basics.
- Cellular automata: general principles of cellular automata and their implementation in Automates.
- Model prototyping: use of Automates as a platform for spatial rule-based and agent-like models.