pyCA
Stanislaw Ulam was growing crystal patterns on a lattice at Los Alamos in the 1940s, while John von Neumann hunted for a machine that could build a copy of itself[1]; Ulam suggested the lattice, and the cellular automaton was born. John Conway made the subject a household game in 1970 when Martin Gardner’s column[2] unveiled the Game of Life, and Stephen Wolfram made it a science in the 1980s by numbering the 256 elementary rules[3] and sorting their behaviors into classes[4] — frozen, periodic, chaotic, and the strange fourth class that computes. The lesson of that lineage is the lesson of this library: a rule you can write on one line can produce a history you cannot compress at all.
pyCA builds those histories and measures them. The automata span the deterministic elementary rules, an Ising variant where a rule competes with a heat bath, noisy and asynchronous corruptions of the synchronous clock, and outer-totalistic two-dimensional rules with Life as the standard-bearer. The measures — block entropy, entropy rate, mutual information — quantify how much information a spacetime diagram carries, and where it lives.
If you’re new here, start with Getting Started, then work through
whichever guide matches your problem. The original 2016 MATLAB classes are
preserved in the repository’s matlab/ directory.
Guide
Reference
Citing
Sowinski DR. pyCA [computer software]. Version 0.1.0. 2016. Accessed July 21, 2026. https://github.com/EternalTime/CellularAutomata
@software{sowinski_pyca,
author = {Sowinski, Damian R.},
title = {pyCA: Cellular automata simulations and information measures},
year = {2016},
version = {0.1.0},
url = {https://github.com/EternalTime/CellularAutomata}
}