Installation

System Requirements

  • Python 3.11 or later (tested up to 3.14)

  • Tcl/Tk — ships with most Python distributions; required for the GUI

  • Operating system — Linux, macOS, or Windows

Quick Install

git clone https://github.com/James-HoneyBadger/LifeGrid.git
cd LifeGrid
pip install -r requirements.txt

Core Dependencies

Package

Minimum Version

Purpose

numpy

1.24.0

Grid computation

scipy

1.11.0

Convolution for neighbor counting

Pillow

10.0.0

Image export (PNG, GIF)

imageio

2.31.0

Video export (MP4, WebM)

imageio-ffmpeg

0.4.9

FFmpeg backend for video

fastapi

REST & WebSocket API

uvicorn

ASGI server

httpx

HTTP client (used by tests)

Development Install

For contributors who need linting, formatting, type checking, and doc building:

make install-dev

This runs pip install -e ".[dev,docs,export]" which installs:

  • dev: pytest, pytest-cov, flake8, pylint, mypy, black, isort

  • docs: sphinx, sphinx-rtd-theme

  • export: all image/video dependencies

Optional: GPU Acceleration

LifeGrid supports CuPy for CUDA-accelerated simulations. This is entirely optional — the simulator falls back to NumPy when CuPy is unavailable.

# Match the package to your CUDA toolkit version
pip install cupy-cuda12x    # CUDA 12.x
pip install cupy-cuda11x    # CUDA 11.x

Verify GPU availability:

from src.performance.gpu import is_gpu_available
print(is_gpu_available())  # True if CuPy + CUDA are working

Building a Standalone Executable

make executable

This uses PyInstaller with the included lifegrid.spec to produce a single distributable binary.

Verifying the Install

# Launch the GUI
python src/main.py

# Run the test suite
make test

# Run a quick CLI simulation
python src/cli.py --mode conway --steps 100 --quiet