Skip to main content

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

Project description

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


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

  • Patrick Loeber's YouTube Tutorial
  • Will McGugan's Textual Rapid Application Development framework
  • Dolphie: A single pane of glass for real-time analytics into MySQL/MariaDB & ProxySQL
  • Richard Sutton's Homepage
  • Richard Sutton quotes and other materials.

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.6.0.tar.gz (35.2 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.6.0-py3-none-any.whl (44.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ai_snake_lab-0.6.0.tar.gz
  • Upload date:
  • Size: 35.2 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.6.0.tar.gz
Algorithm Hash digest
SHA256 15c5065ef84e118cfd5817f9340af3fc48dea2048653015bcb7af69d9463d75a
MD5 5fce4f29b9a9b84cf066730ccd0f2628
BLAKE2b-256 b26f53ba3c5a057877e6de49516bc91f9b5f8877dc2a26a4a9448330d3ee683f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ai_snake_lab-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 44.3 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.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 846245f91ef654f852d0bb434612a7475ec03fe197fdd55eafaa7400fdc708ef
MD5 3eaac1823caab0ff18ef32437360aa85
BLAKE2b-256 ef4f34eebca5bfa1735644157e72ab50d94aa7d9a34d3fa585191e52969f05f1

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