Skip to content

Latest commit

 

History

History
42 lines (29 loc) · 1.58 KB

README.md

File metadata and controls

42 lines (29 loc) · 1.58 KB

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/.