Skip to content

erwinbonsma/ga-of-life

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GA of Life

A web application that lets you run a Genetic Algorithm (GA) to solve optimization problems in Conway's Game of Life, a Cellular Automaton (CA).

I developed it purely for my own enjoyment and learning. It's the first project where I used Rust. I wanted to see how it can be used to build performant web apps.

Evolving Life screenshot

The GA tries to find an 8x8 starting position in the grid of the CA that optimizes a configurable criterion, for example, to cover as much of the grid as possible. The animation below illustrates the idea. The cells in gray are currently not alive, but were alive at least once.

The CA for a solution

You can experiment with the GA and see the resulting CA patterns here. The help page provides a bit more detail.

CA implementation

In order to maximise performance, the Game of Life rules are implemented by performing bitwise operations. This is based on Game of Life by rilden implemented in PICO-8.

Technologies

License

Evolving Life is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

You should have received a copy of the license along with this work. If not, see http://creativecommons.org/licenses/by-nc-sa/4.0/.

About

A Genetic Algorithm for Conway's Game of Life

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published