Skip to content

tpltnt/lysogeny-broth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dependency status

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.

examples

  • 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

features

dead-alive-only

Enable utility functions for binary (only) cell state.

dead-alive-into-bool

Allow dead/alive cell to be converted into boolean values.

dead-alive-u8-utils

Group 8 binary cell states into an octet for nicer processing and i/o.

versions / changes

upcoming

1.2

  • 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

1.1

  • 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"

1.0

  • grid works (setting & retrieving cell states)
  • universe implemented (rules via function pointer)
  • tests
  • examples
  • documentation

links