| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Turing-complete gladiators in the Game of Life.
Explore a computational universe where two fields evolve together, shaping each other’s behavior in Conway’s Game of Life - a Turing-complete system capable of producing anything from logic gates to glider-based processors or even neural-like structures. This project uses a genetic algorithm to evolve the initial states of two fields, creating patterns that emerge not by design, but through co-evolutionary pressure.
Conway’s Game of Life is more than a simulation - it’s a Turing-complete substrate where any computable process can theoretically emerge, given the right initial conditions. Finding those conditions in an infinite space of possibilities is the challenge. Here, we let a genetic algorithm navigate this space, evolving two fields that influence each other to produce dynamic, computational patterns. The result is an experiment in emergent complexity, where simple rules and co-evolution can lead to surprising outcomes.
Unlike traditional competition, this system has no fixed roles. Fields A and B co-evolve, each striving to maximize the other’s computational activity (flickering). They might:
The toroidal boundaries ensure constant interaction, while the low mutation rate fosters a slow, adaptive “dance” where fields refine their influence over thousands of epochs.
This project is a follow-up to Evolving Cellular Automata, where the focus was on evolving the rules of cellular automata. In that earlier project, the 512-bit rule space defined the genotype, and fitness was tied to patterns produced after N iterations.
Here, we fix the rule (Conway’s Game of Life) and evolve the initial field state instead - flipping the genetic axis from rule evolution to field evolution.
Experiments reveal diverse behaviors:
📁 initial-state-evolution/ ├── automata.html # Single Conway's Game of Life automata for example ├── automata.js # Logic for Conway's Game of Life (used in automata.html) ├── draw_node.js # Main project file (entry point) ├── repl.js # Command-line REPL to launch cell functions ├── style.css # Styles for testpop_from_file.html ├── testpop_from_file.html # Client-side visualizer for 5 random automata ├── testpop_from_file.js # JavaScript logic for client visualizer ├── visualize.html # Heatmap viewer ├── storage/ # Directory for saved .json population/fitness data ├── README.md # Project overview and theory
node repl.jsUse this functions:
module.exports = { evil, recreate, mutate, printBestGrid, restoreBestPopulations };
cell.recreate(); // New population
cell.evil(1000); // Run 1000 epochsMIT License. See LICENSE for details.
Serhii Herasymov
📧 sergeygerasimofff@gmail.com
🌐 https://github.com/xcontcom
Built not to model life as it is, but to search for what life could be - in Conway’s strange, silent universe.
| Back | FazBrowse Home | New Git URL |