Cellumina
A library to easily crate and run Cellular Automata.
Basic features
Cellumina provides an Automaton struct that represents a 2-dimensional grid of characters.
This grid can be initialized from a vector, a file or an image.
Additionally, the user can configure the Rule the automaton uses to transform itself into the next step.
The transformation to the next state can be initiated manually or on a fixed time step, for example when using Cellumina as part of a larger graphical application.
Rules
- Pattern Replacement Rules
- Specifiy a pattern that is searched each stepped and replaced with a second pattern.
- Example: Falling Sand Simulations.
- Environment Rules
- The next state of a cell is fully determined by its environment in the step before.
- Example: Rule 90.
- Example: Game Of Life.
Live View
Cellumina can be run in 'Live View' mode. It will then take ownership of a configured automaton, run it by itself and display the cell state in a separate window. This is useful when just playing around with cellular automata.
Performance
Since pattern replacement can be a rather costly operation, cellumina runs these in parallel using the rayon crate.
Planned Features
- Interaction in Live View.
- Loading rules from files and entire configurations from files.
- Extensive examples.