https://github.com/jeffheaton/mergelife
Evolve complex cellular automata with a genetic algorithm.
https://github.com/jeffheaton/mergelife
cellular-automaton computer-vision genetic-algorithms
Last synced: 3 months ago
JSON representation
Evolve complex cellular automata with a genetic algorithm.
- Host: GitHub
- URL: https://github.com/jeffheaton/mergelife
- Owner: jeffheaton
- License: mit
- Created: 2017-11-05T18:17:09.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2025-03-24T00:57:26.000Z (about 1 year ago)
- Last Synced: 2025-03-30T13:09:16.483Z (about 1 year ago)
- Topics: cellular-automaton, computer-vision, genetic-algorithms
- Language: Python
- Homepage: https://www.heatonresearch.com/mergelife/
- Size: 14.3 MB
- Stars: 78
- Watchers: 4
- Forks: 17
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-java - MergeLife
README
MergeLife
=========

Evolving Continuous Cellular Automata for Aesthetic Objectives
--------------------------------------------------------------
Jeff Heaton
**Abstract:** We present *MergeLife*, a genetic algorithm (GA) capable of evolving continuous cellular automata (CA) that generate full color dynamic animations according to aesthetic user specifications. A simple 16-byte update rule is introduced that is evolved through an objective function that requires only initial human aesthetic guidelines. This update rule provides a fixed-length genome that can be successfully optimized by a GA. Also introduced are several novel fitness measures that when given human selected aesthetic guidelines encourage the evolution of complex animations that often include spaceships, oscillators, still life, and other complex emergent behavior. The results of this research are several complex and long running update rules and the objective function parameters that produced them. Several update rules produced from this paper exhibit complex emergent behavior through patterns, such as spaceships, guns, oscillators, and Universal Turing Machines. Because the true animated behavior of these CA cannot be observed from static images, we also present an on-line JavaScript viewer that is capable of animating any *MergeLife* 16-byte update rule.
Heaton, Jeff. "Evolving continuous cellular automata for aesthetic objectives." Genetic Programming and Evolvable Machines (2018): 1-33. [https://doi.org/10.1007/s10710-018-9336-1](https://doi.org/10.1007/s10710-018-9336-1)
Useful Links
------------
* [JavaScript Demo](http://www.heatonresearch.com/mergelife)
* [Binary Downloads](https://github.com/jeffheaton/mergelife/blob/master/binaries.md)
Reference MergeLife Implementations
-----------------------------------
* [MergeLife in JavaScript](https://github.com/jeffheaton/mergelife/tree/master/js/)
* [MergeLife in Java](https://github.com/jeffheaton/mergelife/tree/master/java/)
* [MergeLife in Python](https://github.com/jeffheaton/mergelife/tree/master/python/)
MergeLife in 3rd Party Software
-------------------------------
* [Visions of Chaos](https://softology.com.au/voc.htm)