Project Spotlight:
Reversing Game Of Life

Profile Image

Conway's Game of Life is a cellular automaton played on an infinite two-dimensional grid of cells, each either alive or dead. Gameplay evolves through discrete time steps governed by simple neighbor-based rules determining cell survival, death, or reproduction. Widely explored in computer science, it demonstrates emergent complexity, algorithmic efficiency, and self-organizing behaviors from minimalistic rule sets.

My goal with this project is to devise a relatively efficient method of reversing Game of Life simulation by reconstructing the previous state of the grid from a given state. This challenge is interesting because it can be proven that reversing the Game of Life is an NP-Complete problem, and subsequently there exists no known method to efficiently do this.

I will update my findings here!

Game of Life Simulation

This interactive simulation allows you to visualize the Game of Life in action. You can step through generations one at a time, or simulate multiple generations at once. The grid has a very simple glider on it, but each cell can be toggled on or off simply by clicking it.

The simulation is built using WebAssembly leveraging Rust for the core logic with an optimized SIMD-based engine. The enhanced interface includes several powerful features: Text to ASCII Art lets you convert any text into cellular patterns that emerge on the grid, Pattern Management allows you to upload custom patterns from files or download your current grid state, and Game Controls provide precise simulation control with adjustable speed and multi-step advancement.

This simulation integrates with my reverse Game of Life project, demonstrating both forward evolution and the theoretical foundations for reconstructing predecessor states. While the reversing feature isn't included in this demo due to its computational complexity (\( O(2^n) \) worst case), the optimized engine showcases the performance improvements that make such ambitious computations feasible.

You can find the full progress for both the simulation and reverse solver on the github page.

Game Controls

Frame Delay: 200ms

Text-To-ASCII

Generate from Text
2
Load from File
No file selected
Export Pattern

Optimizing The Simulation

Proving Reverse GOL Is NP-Complete

Implementation: SAT-Based Reverse Solver

Crates and Command Line Interface

Make Your Name Emerge From Chaos

Results and Analysis

Get in Touch

Interested in collaborating or learning more about this project? Feel free to reach out!

Contact Me