Skip to content

smooth/ continuous version of Convay's game of life

License

Notifications You must be signed in to change notification settings

Efesasa0/smooth-life

Repository files navigation

title emoji colorFrom colorTo sdk pinned license
Smooth
🪱
red
red
docker
false
mit

Smooth Life 🪱

video.mov

Quick huggingface demo link

Smooth Life is a continous version of Conway's Game of Life where cells live in a floating-point domain. This project visualizes the dynamics inside such game in real-time.

The implementation uses Flask to display the states in a streaming fashion.

Installation

Setting Up a Virtual Environment

With python venv:

  1. Navigate to project directory:
git clone https://github.com/Efesasa0/smooth-life.git
  1. Create virtual environment:
python3 -m venv smooth
  1. Activate it:
source smooth/bin/activate

With conda

  1. Create conda environment:
conda create --name smooth python=3.9
  1. Activate it:
conda activate smooth

Installing Dependencies

After activating your virtual environment, install the required dependencies by running:

pip install -r requirements.txt

Running the Application

To run the Smooth Life simulation and start the Flask server, execute:

flask run

Then run the solara based app on seperate terminal.

solara run --theme-variant dark sol.py

A window will pop up displaying the interface.

Additional Sources

  1. Generalization of Conway’s ”Game of Life” to a continuous domain - SmoothLife
  2. Lenia — Biology of Artificial Life
  3. Conway's Game of Life by NeuralNine
  4. Conway's Game of Life by Tech with Tim
  5. Smooth Life by Birdbrain
  6. Smooth Life by tsoding

Challenges

  • Get accurate representation of the SmoothLife paper.
  • Implement interface with real-time parameter adjustments.
  • Initially the scope was only getting the paper implementation. Expanding it to be interacted via user interface was not planned. Major changes for the backend would be nice.

Extras

  • Add additional kernels into calculation can change outcomes drastically.
  • Add user interaction feature for real-time parameter adjustments. ✅
    • Prettify user interface, perhaps reimplement with JS

You can address the flow_demo.ipynb to see the idea of a simpler version

About

smooth/ continuous version of Convay's game of life

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published