Tiny expressions-based language for elementary cellular automata simulation
Rust 93.5%
Nix 6.5%
17 1 0

Clone this repository

https://tangled.org/ecsolticia.bsky.social/ecaxpr
git@tangled.org:ecsolticia.bsky.social/ecaxpr

For self-hosted knots, clone URLs may differ based on your setup.

README.md

ecaxpr#

ecaxpr is a tiny, declarative, expressions and predicate logic-based language for elementary cellular automata simulation.


There are a total of only 256 distinct elementary cellular automata. We can refer to each of them via a number from 0 to 255 by representing their state evaluation tables as bits. However, ecaxpr represents their rules not by just a simple number, but as a logical formulae. This provides a distinct way of experimenting with and thinking about these cellular automata.

Here, an expression such as

l == ~(r | t)

***************#*************** 15

becomes...

***************#***************
**************###**************
*************##**#*************
************##*####************
***********##**#***#***********
**********##*####*###**********
*********##**#****#**#*********
********##*####**######********
*******##**#***###*****#*******
******##*####*##**#***###******
*****##**#****#*####*##**#*****
****##*####**##*#****#*####****
***##**#***###**##**##*#***#***
**##*####*##**###*###**##*###**
*##**#****#*###***#**###**#**#*
##*####**##*#**#*#####**#######

Install, Get Started, Get Docs#

For installation instructions, documentation and a guide, you may refer to different sections of The ecaxpr Book.