A companion repo for my blog post about Wolfram's elementary cellular automata.
Currently requires Python 3.x, and no other dependencies.
To run with the default arguments, just run:
$ python3 wolfram.py
Using rule 30
█
███
██ █
██ ████
██ █ █
██ ████ ███
██ █ █ █
██ ████ ██████
██ █ ███ █
██ ████ ██ █ ███
██ █ █ ████ ██ █
██ ████ ██ █ █ ████
██ █ ███ ██ ██ █ █
██ ████ ██ ███ ███ ██ ███
██ █ █ ███ █ ███ █ █
██ ████ ██ █ █ █████ ███████
██ █ ███ ████ █ ███ █
██ ████ ██ ███ ██ ██ █ ███
██ █ █ ███ █ ██ ███ ████ ██ █
██ ████ ██ █ ██████ █ █ ███ ████
██ █ ███ ████ ████ ███ ██ █ █
██ ████ ██ ███ █ ██ █ █ █ ███ ███
██ █ █ ███ █ ███ ██ █ ███ ██ █ █ █ █
██ ████ ██ █ ███ █ █ ████ █ █ ██ ██████
██ █ ███ ████ ██ █████ █ █████ █ █ █
██ ████ ██ ███ █ ██ █ █ ██ █ █████ ███
██ █ █ ███ █ ██ █ ████ ██ █ ██ ██ █ ██ █
██ ████ ██ █ ███ █ █ █ ███ ████ █ ██ █ ██ █ ████
██ █ ███ ████ ████ ██ ██ ███ █ █ ████ █ █ █
██ ████ ██ ███ █ ██ █ █ ███ █ ██ ████ ███ ██ ███
██ █ █ ███ █ ██ █ █ █████ █ ██████ █ █ ██ █ █ █
██ ████ ██ █ ███ █ █ ████ ████ ████ ██ █ █ █████████
██ █ ███ ████ ████ █ █ ██ █ ██ █ █ █ █ █
██ ████ ██ ███ █ ██ ██ ███ ██ █ ███ ██ █ █████ █ ██ ███
██ █ █ ███ █ ██ █ █ ██ █ █ █ █ █ ████ █ █ █ ██ █
██ ████ ██ █ ███ █ █ ████ ████ █████ ██ █████ █ ██ █ ██ ██ ████
██ █ ███ ████ ████ █ █ █ █ █ █ ███ ██ █ █ ███ █ █
██ ████ ██ ███ █ ██ ██ ███ ███ ██████ ██ █ █ ███ █ █ ████ ███
██ █ █ ███ █ ██ █ █ ██ ███ ███ █ ██ ███ ██ ██ █ █ ████ █ █
To get a random seed, use the -r
flag:
$ python3 wolfram.py -r
Here's a random initial state
Using rule 30
█ ███ █████ █ █ ██ █ ██ ██ █ ███ █ ██ ██
█ █ ██ ███ █ █ ███ █ ███ █ █ ████ █ ██
████████ █ ██ █ █ █ █ █ ███ ██ ██ ████
█ ████ █ ██ █ ██ ██ ████ █ █ █ ██ █
██ ██ █ █ █ █ █ █ █ █████ ████ █ ██
█ █ ██ █ ██ ████ ████████ ██ █ █ █ █
█ ██ ██ ████ █ █ █ ██ ███ ██ ██
█ █ ███ ███ ████ ███ █████ █ ██ ███ █
█ █ █ █ █ ██ ███ █ ██ █ █ ███ ████
█ █ ██ █████ █ █ ██ ████ ██ █ ██ █ █ ███
█ █ █ █ █ █ █ ███ ███ ██ ██ █ ████ █
█ █ █████ ██ █ █ █ █ ██ ███ █ ███ █ ████
█ █ █ █ ██ █ █ ████ █ ███ ███ █ ██ ██ █
█ █ ██ ██ █ ███ █ █ █ █ ███ ██ ██ █ █ ██
█ █ █ ███ █ █ █ ██ ██ ████ █ ██ █ ███ █ █
█ █ █ █ ███ ██ ██ █ ███ █ ███ █ ███ █ █ ██
█ █ █ ████ █ █ █ █ ████ ██ █ █ ██ ██ █
█ █ █ █ █ ████████ ████ █ █ ██ ██ ██ █ ██
█ █ █ ██ ██ █ █ █ ██ █ █ █ █ ██████
█ █ █ █ █ ██ ███ █████ █ ███████ █ █
█ █ █ ███████ █ ██ █ ███ █ ██ ██
█ █ █ █ ██ ██ █ ███ ██ ██ ██ █ ██
█ █ █ ██ ██ ███ █ █ ███ █ ██ █ ██ █ █ █
█ █ █ █ █ ██ █ ███ ████ █ █ ██ ██ ███ █ █
█ █ █ █ ██ ██ ██████ █ █ ██ ████ █ █ █ █
█ █ █ █ █ █ █ █ ███ ██ █ █ ███████ ██ █
█ █ █ █ ████████ ██ █ █ █████ ██ █ █
█ █ █ █ █ █ ██ ██ █████ █ █ █████
█ █ █ █ ██ ██ █ ███ █ █ ██ ██ ██
█ █ █ █ █ █ ██ █ █ ████ ███ ██ █ █ ██ █
█ █ █ █ █ ██ ██ ███ ████ ███ █ ███ █ █ ██
█ █ █ █ █ █ █ █ █ █ ██ █ ██ █ █ ████ █
█ █ █ █ █ ████████ ███ ██ █ ███ █ ██ ██ █ ██
█ █ █ █ █ █ █ █ █ █ ████ █ ██ ██
█ █ █ █ █ ██ ███ █████ ██ ██ ██████ ███ █
█ █ █ █ █ █ █ ██ █ █ █ █ ██ █ █
█ █ █ █ █ █ ██ ██ █ ███ █████ █ █ █ ███ ██
█ █ █ █ █ █ █ ███ █ █ █ ██ █ █ ██ ██ █
█ █ █ █ █ █ █ █ ███ ████ █ █ ██ █ █ ███ █ ███
█ █ █ █ █ █ █ ████ █ █ ██ ██ █ █ █ █ █
To pick a different rule, use the --rule
argument:
$ python3 wolfram.py -r --rule 110
Here's a random initial state
Using rule 110
█ ██ ██ █ █ ██ █ █ █ ████████ ███ █ █ ██
███████ ███████ ██ ██ ██ ██ █ ██ █ ██████
█ █ ██ █████████████ ███████ ██ █
█ █████ ██ █ ██ ████ ██
█ ██ █ ███ ██ ███ ██ █ ███
█ ███ ██ ██ █ ███ ██ █ ███ ██ ██ █
█ ██ █ ███ █████ ██ █ █████ ██ █████████
████████ ███ █ ███████ █ █████ █
█ ███ █ ██ ██ █ ████ █ ██
█ ██ ███ ███ ███ ██ ██ █ ██ ███
█ █████ ███ █ ██ █ ██████ ██ ███ ██ █
█ ██ ███ ███ █████ ██ ██████ █ █████
█ ███ ██ ███ █ ██ █ ███ ██ ███ ██ █
█ ██ █ █████ ███ ███ ████ █ ███ ██ █ ███ ██
████████ ███ ███ █ ██ ███ ██ █ ███████ █ ███
█ █ ██ ███ ██████ ██ ██████ ██ █████ █
█ ██ █████ ███ ██████ ████ ██ ███
█ █████ ███ █ ██ █ ██ █ ███ ██ █
█ ██ █ ██ ███ ███ ██ ███ ██ ██ █ █████
█ ███ ██ █████ █ ██ █ ███ ██ ████ ███████ █
█ ██ █ █████ ████████ ██ ██████ ███ █ ██
████████ █ ██ ██████ █ ██ █ ██ ███
█ █ ██ ███ ██ █ ███████ █████ █
█ ██ █████ █ ███ ██ ██ █ ██ ███
█ █████ ███ ██ █ ███ ███ ██ ███ ██ █
█ ██ █ ██ █ █████ ██ ███ █ █████ █ █████
█ ███ ██ █████ ██ ██████ ███ ██ █████ █
█ ██ █ █████ ████ ██ ███ █ ███ ██ █ ██
████████ █ ██ █ ███ ██ █████ █ ███ ██ ███
█ █ ██ ███ ████ █ █████ █████ █ █████ █
█ ██ █████ ███ ███ ██ █ ██ █████ ███
█ █████ ███ █ ██ ████ ██ ███ ██ █ ██ █
█ ██ █ ██ ████████ █ █████ █ ███ ██ █████
█ ███ ██ █████ █ ████ █████ █ █████ █
█ ██ █ █████ █ ████ █ ██ █████ █ ██
████████ █ ██ ██ █ ██ ███ ██ █ ██ ███
█ █ ██ ███ ███ ███████ █ ███ ██ █████ █
█ ██ █████ █ ██ ███ █████ █ █████ ███
█ █████ ███ █████ █ ██ █████ █ ██ █
█ ██ █ ██ ███ ███ ███ ██ █ ██ █████