mat ess bff5c2fe62 | ||
---|---|---|
ants | ||
life | ||
nix | ||
wireworld | ||
.envrc | ||
.gitignore | ||
LICENSE.txt | ||
README.md | ||
ant.gif | ||
colorbrewer.lua | ||
flake.lock | ||
flake.nix | ||
life.gif | ||
util.lua | ||
wireworld.gif |
README.md
cellular automata toys in löve2d
toys
ants
langton's ant, heavily inspired by Andrew Healey's blog post and code.
supports multiple colors by passing a custom set of rules, see wikipedia.
click on the screen to spawn new ants.
life
conway's game of life. supports other life-like cellular automata rules, see wikipedia
left click or click and drag to flip cells on, and right click to spawn a glider.
wireworld
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, based on the original ColorBrewer code and the implementation in Chroma.js.
running the toys
if you have löve installed on your system, you can just run the toys by name:
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>
love wireworld
if you have nix, 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.
nix develop
love ...