Skip to main content

Interactive reinforcement learning sandbox for experimenting with AI agents in a classic Snake Game environment.

Project description

AI Snake Lab


AI Snake Lab

Introduction

AI Snake Lab is an interactive reinforcement learning sandbox for experimenting with AI agents in a classic Snake Game environment — featuring a live Textual TUI interface, flexible replay memory database, and modular model definitions.


🚀 Features

  • 🐍 Classic Snake environment with customizable grid and rules
  • 🧠 AI agent interface supporting multiple architectures (Linear, RNN, CNN)
  • 🎮 Textual-based simulator for live visualization and metrics
  • 💾 SQLite-backed replay memory for storing frames, episodes, and runs
  • 🧩 Experiment metadata tracking — models, hyperparameters, state-map versions
  • 📊 Built-in plotting for hashrate, scores, and learning progress

🧰 Tech Stack

Component Description
Python 3.11+ Core language
Textual Terminal UI framework
SQLite3 Lightweight replay memory + experiment store
PyTorch (optional) Deep learning backend for models
Plotext / Matplotlib Visualization tools

Installation

This project is on PyPI. You can install the AI Snake Lab software using pip.

Create a Sandbox

python3 -m venv snake_venv
. snake_venv/bin/activate

Install the AI Snake Lab

After you have activated your venv environment:

pip install ai-snake-lab

Running the AI Snake Lab

From within your venv environment:

ai-snake-lab

Technical Docs


Limitations

Because the simulation runs in a Textual TUI, terminal resizing and plot redraws can subtly affect the simulation timing. As a result, highscore achievements may appear at slightly different game numbers across runs. This behavior is expected and does not indicate a bug in the AI logic.

If you have a requirement to make simulation runs repeatable, drop me a note and I can implement a headless mode where the simulation runs in a separate process outside of Textual.


Acknowledgements

The original code for this project was based on a YouTube tutorial, Python + PyTorch + Pygame Reinforcement Learning – Train an AI to Play Snake by Patrick Loeber. You can access his original code here on GitHub. Thank you Patrick!!! You are amazing!!!! This project is a port of the pygame and matplotlib solution.

Thanks also go out to Will McGugan and the Textual team. Textual is an amazing framework. Talk about Rapid Application Development. Porting this from a Pygame and MatPlotLib solution to Textual took less than a day.


Inspiration

Creating an artificial intelligence agent, letting it loose and watching how it performs is an amazing process. It's not unlike having children, except on a much, much, much smaller scale, at least today! Watching the AI driven Snake Game is mesmerizing. I'm constantly thinking of ways I could improve it. I credit Patrick Loeber for giving me a fun project to explore the AI space.

Much of my career has been as a Linux Systems administrator. My comfort zone is on the command line. I've never worked as a programmer and certainly not as a front end developer. Textual, as a framework for building rich Terminal User Interfaces is exactly my speed and when I saw Dolphie, I was blown away. Built-in, real-time plots of MySQL metrics: Amazing!

Richard S. Sutton is also an inspiration to me. His thoughts on Reinforcement Learning are a slow motion revolution. His criticisms of the existing AI landscape with it's focus on engineering a specific AI to do a specific task and then considering the job done is spot on. His vision for an AI agent that does continuous, non-linear learning remains the next frontier on the path to General Artificial Intelligence.


Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ai_snake_lab-0.9.0.tar.gz (37.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ai_snake_lab-0.9.0-py3-none-any.whl (47.5 kB view details)

Uploaded Python 3

File details

Details for the file ai_snake_lab-0.9.0.tar.gz.

File metadata

  • Download URL: ai_snake_lab-0.9.0.tar.gz
  • Upload date:
  • Size: 37.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.11.13 Linux/6.11.0-1018-azure

File hashes

Hashes for ai_snake_lab-0.9.0.tar.gz
Algorithm Hash digest
SHA256 db2db2c460c18712747542a02c88be4fda7d58081b16a428945a52e4ba6988b7
MD5 0c2f5870273fb7e26af53a7aca9128c7
BLAKE2b-256 0ead80b18ae108456e628d3c2f01fb0cd77298999800e4846671fb5fdf7849d7

See more details on using hashes here.

File details

Details for the file ai_snake_lab-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: ai_snake_lab-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 47.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.11.13 Linux/6.11.0-1018-azure

File hashes

Hashes for ai_snake_lab-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bd36af9af2cc6c6a25f2cb56f88189ab8e1756b9b57f5e35c075173924159cf8
MD5 cd4276cf102864949de0bc4e7500b1a6
BLAKE2b-256 cb026dea91e2ee03c49ae0aea0591cedf50e42bc9007a3d7650732f449f65b74

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page