love-cellular-automata/README.md

61 lines
1.9 KiB
Markdown
Raw Permalink Normal View History

# cellular automata toys in löve2d
## toys
### ants
2022-09-16 03:14:57 +00:00
![ants](ant.gif)
langton's ant, heavily inspired by Andrew Healey's [blog post](https://healeycodes.com/virtual-ants) and [code](https://github.com/healeycodes/virtual-ants).
supports multiple colors by passing a custom set of rules, see [wikipedia](https://en.wikipedia.org/wiki/Langton%27s_ant#Extension_to_multiple_colors).
click on the screen to spawn new ants.
### life
2022-09-16 03:14:57 +00:00
![life](life.gif)
conway's game of life. supports other life-like cellular automata rules, see [wikipedia](https://en.wikipedia.org/wiki/Life-like_cellular_automaton#A_selection_of_Life-like_rules)
left click or click and drag to flip cells on, and right click to spawn a glider.
2022-09-15 03:06:05 +00:00
### wireworld
2022-09-16 03:14:57 +00:00
![wireworld](wireworld.gif)
2022-09-15 03:06:05 +00:00
wireworld.
left click to toggle conductors (wires) on and off. right click to spawn an electron head in a conductor. spacebar to toggle play/pause.
## colorbrewer
this repo includes a lua interface to [the lovely and accessible ColorBrewer2 colorschemes based on the research of Dr. Cynthia Brewer](https://colorbrewer2.org), based on [the original ColorBrewer code](https://github.com/axismaps/colorbrewer/) and the implementation in [Chroma.js](https://github.com/gka/chroma.js/).
## running the toys
if you have [löve](https://github.com/love2d/love) installed on your system, you can just run the toys by name:
```bash
love ants
# run with a cool square pattern
love ants LRRRRRLLR
# other options
love ants <rule> <grid-unit-width-px> <simulation-steps-per-frame>
love life
# run with HighLife rules
love life B36/S23
# other options
love life <rule> <grid-unit-width-px> <simulation-steps-per-frame>
2022-09-15 03:06:05 +00:00
love wireworld
```
if you have [nix](https://nixos.org), you can use the provided flake.nix to get a working environment for running the games, as well as support for hot reloading if you want to hack on them.
```bash
nix develop
love ...
```