Substrate for cellular automata in Rust. Named after the LB medium used in mircobiology. Also look into Angelina Fanny Hesse ;) The underlying grid is of toroidal shape, i.e. the coordinate values/neighbours wrap around. This code is dual-licensed under the MIT/Apache 2.0 licenses.
- retrieve value as grid:
cargo run --example retrieval
- implementation of rule 30:
cargo run --example rule30
- save grid states as JSON:
cargo run --example json
Enable utility functions for binary (only) cell state.
Allow dead/alive cell to be converted into boolean values.
Group 8 binary cell states into an octet for nicer processing and i/o.
- documentation extended
- minor code cleaning
rule30
example minimised- fixed signature of
cs8_into_u8()
to be internally compatible - added
u8_into_cs8
utility function - grouped CellState / u8 conversions under feature "dead-alive-u8-utils"
- dropped feature "dead-alive-into-group-u8"
- added JSON example
- implemented
next()
as iterator - implemented
next_byte()
for easier byte conversion
- binary cell states are explicit feature now: "dead-alive-only"
- optional conversion of binary cell states into boolean value as feature: "dead-alive-into-bool"
- convert eight cellstates into an u8 (octet) via feature: "dead-alive-into-group-u8"
- grid works (setting & retrieving cell states)
- universe implemented (rules via function pointer)
- tests
- examples
- documentation
- crate documentation
- wikipedia: cellular automaton
- Wolfram Atlas - various types of one-dimensional cellular automata
- MathWorld: Rule 30
- ca-rules ... a possible compagnion crate
- JSON