ai-snake-lab 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ai_snake_lab/AISim.py +274 -0
- ai_snake_lab/ai/AIAgent.py +84 -0
- ai_snake_lab/ai/AITrainer.py +90 -0
- ai_snake_lab/ai/EpsilonAlgo.py +73 -0
- ai_snake_lab/ai/ReplayMemory.py +90 -0
- ai_snake_lab/ai/models/ModelL.py +40 -0
- ai_snake_lab/ai/models/ModelRNN.py +43 -0
- ai_snake_lab/constants/DDef.py +18 -0
- ai_snake_lab/constants/DDir.py +16 -0
- ai_snake_lab/constants/DEpsilon.py +19 -0
- ai_snake_lab/constants/DFields.py +18 -0
- ai_snake_lab/constants/DFile.py +17 -0
- ai_snake_lab/constants/DLabels.py +34 -0
- ai_snake_lab/constants/DLayout.py +39 -0
- ai_snake_lab/constants/DModelL.py +17 -0
- ai_snake_lab/constants/DModelLRNN.py +20 -0
- ai_snake_lab/constants/DReplayMemory.py +25 -0
- ai_snake_lab/constants/__init__.py +0 -0
- ai_snake_lab/game/GameBoard.py +221 -0
- ai_snake_lab/game/GameElements.py +27 -0
- ai_snake_lab/game/SnakeGame.py +178 -0
- ai_snake_lab/utils/AISim.tcss +115 -0
- ai_snake_lab/utils/ConstGroup.py +49 -0
- ai_snake_lab-0.1.0.dist-info/LICENSE +674 -0
- ai_snake_lab-0.1.0.dist-info/METADATA +70 -0
- ai_snake_lab-0.1.0.dist-info/RECORD +28 -0
- ai_snake_lab-0.1.0.dist-info/WHEEL +4 -0
- ai_snake_lab-0.1.0.dist-info/entry_points.txt +3 -0
@@ -0,0 +1,70 @@
|
|
1
|
+
Metadata-Version: 2.3
|
2
|
+
Name: ai-snake-lab
|
3
|
+
Version: 0.1.0
|
4
|
+
Summary: Interactive reinforcement learning sandbox for experimenting with AI agents in a classic Snake Game environment.
|
5
|
+
License: GPL-3.0
|
6
|
+
Keywords: AI,Reinforcement Learning,Textual,Snake,Simulation,SQLite,Python
|
7
|
+
Author: Nadim-Daniel Ghaznavi
|
8
|
+
Author-email: nghaznavi@gmail.com
|
9
|
+
Requires-Python: >=3.11,<3.13
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
11
|
+
Classifier: Programming Language :: Python :: 3.11
|
12
|
+
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
13
|
+
Classifier: Operating System :: OS Independent
|
14
|
+
Classifier: Topic :: Games/Entertainment :: Simulation
|
15
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
16
|
+
Requires-Dist: aiohttp (>=3.13.0)
|
17
|
+
Requires-Dist: jinja2 (>=3.1.6)
|
18
|
+
Requires-Dist: loguru (>=0.7.3)
|
19
|
+
Requires-Dist: numpy (>=2.3.3)
|
20
|
+
Requires-Dist: pillow (>=11.0.0)
|
21
|
+
Requires-Dist: pytest (>=8.4.2)
|
22
|
+
Requires-Dist: pytest-mock (>=3.15.1)
|
23
|
+
Requires-Dist: rich (>=14.2.0)
|
24
|
+
Requires-Dist: sqlite-utils (>=3.35)
|
25
|
+
Requires-Dist: textual (>=6.2.1)
|
26
|
+
Requires-Dist: textual-dev (>=1.7.0)
|
27
|
+
Requires-Dist: textual-hires-canvas (>=0.10.1)
|
28
|
+
Requires-Dist: textual-plot (>=0.8.0)
|
29
|
+
Requires-Dist: textual-serve (>=1.1.2)
|
30
|
+
Requires-Dist: torch (>=2.8.0)
|
31
|
+
Requires-Dist: torchvision (>=0.23.0)
|
32
|
+
Project-URL: Bug Tracker, https://github.com/NadimGhaznavi/ai_snake_lab/issues
|
33
|
+
Project-URL: Documentation, https://snakelab.osoyalce.com/
|
34
|
+
Project-URL: Source, https://github.com/NadimGhaznavi/ai_snake_lab
|
35
|
+
Description-Content-Type: text/markdown
|
36
|
+
|
37
|
+
# Introduction
|
38
|
+
|
39
|
+
**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.
|
40
|
+
|
41
|
+
---
|
42
|
+
|
43
|
+
# 🚀 Features
|
44
|
+
|
45
|
+
- 🐍 **Classic Snake environment** with customizable grid and rules
|
46
|
+
- 🧠 **AI agent interface** supporting multiple architectures (Linear, RNN, CNN)
|
47
|
+
- 🎮 **Textual-based simulator** for live visualization and metrics
|
48
|
+
- 💾 **SQLite-backed replay memory** for storing frames, episodes, and runs
|
49
|
+
- 🧩 **Experiment metadata tracking** — models, hyperparameters, state-map versions
|
50
|
+
- 📊 **Built-in plotting** for hashrate, scores, and learning progress
|
51
|
+
|
52
|
+
---
|
53
|
+
|
54
|
+
# 🧰 Tech Stack
|
55
|
+
|
56
|
+
| Component | Description |
|
57
|
+
|------------|--------------|
|
58
|
+
| **Python 3.11+** | Core language |
|
59
|
+
| **Textual** | Terminal UI framework |
|
60
|
+
| **SQLite3** | Lightweight replay memory + experiment store |
|
61
|
+
| **PyTorch** *(optional)* | Deep learning backend for models |
|
62
|
+
| **Plotext / Matplotlib** | Visualization tools |
|
63
|
+
|
64
|
+
---
|
65
|
+
|
66
|
+
# Links
|
67
|
+
|
68
|
+
* [Project Layout](/pages/project_layout.html)
|
69
|
+
* [SQLite3 Schema](/pages/db_schema.html)
|
70
|
+
---
|
@@ -0,0 +1,28 @@
|
|
1
|
+
ai_snake_lab/AISim.py,sha256=9jnWX-JYNqpYxtqb7vf4pbI9tgegrt91QnFWfVU2AFI,10168
|
2
|
+
ai_snake_lab/ai/AIAgent.py,sha256=mwfDwQlm9vRCDlXj5LyIQGtwjZL3j4Fc_L9w79jm2wA,2955
|
3
|
+
ai_snake_lab/ai/AITrainer.py,sha256=VbLfSV3ndplG-KhqpTlUSkoH8lFGGT0auaPjFRzabR0,3169
|
4
|
+
ai_snake_lab/ai/EpsilonAlgo.py,sha256=iNVXOqlyjh5vlFePpksR0PTT9M5FDDwJi7P6pYegSrA,2144
|
5
|
+
ai_snake_lab/ai/ReplayMemory.py,sha256=g8Q_PXiFSL1g4zOEa8pKc9w_x5ijVlG17npYpawL_14,2864
|
6
|
+
ai_snake_lab/ai/models/ModelL.py,sha256=EiTGVag8Sxhoak1sklA4iX4FR65Nlx8m9o-JQNAqOX8,1096
|
7
|
+
ai_snake_lab/ai/models/ModelRNN.py,sha256=jIPK5ZS1olakjQ-9XA6-4EiY70d3RLcKqFqHTZD7cIQ,1104
|
8
|
+
ai_snake_lab/constants/DDef.py,sha256=zyvRkWPrtopKYclbbDGI-1pPAK1h1MyVMdbvhUZPbJY,371
|
9
|
+
ai_snake_lab/constants/DDir.py,sha256=AxmgShKHT5b5WyIlseVHcO7Mwejmyf3hxT62E3RirTg,323
|
10
|
+
ai_snake_lab/constants/DEpsilon.py,sha256=T4B_KMHrCEKsiCx2AgvnXMpQ-V4D2oSCMPkYqw2d-0U,407
|
11
|
+
ai_snake_lab/constants/DFields.py,sha256=Z_whswaGfNIRe9d_9UeXWiWZCB0d48BpM1Wg6tILEa0,357
|
12
|
+
ai_snake_lab/constants/DFile.py,sha256=i6i_K3y90-GgqesN9_zL2NmQu0Vu2VT2V5k7n6QFQR4,328
|
13
|
+
ai_snake_lab/constants/DLabels.py,sha256=5kUrAbYgdJL9zynAjSFQr3FmEvy2CbU0DKRZfwUs71I,883
|
14
|
+
ai_snake_lab/constants/DLayout.py,sha256=T5CeJBaiDST1gaX3ek6TpRJdgETvbl4uk-tlWZah-Y8,1125
|
15
|
+
ai_snake_lab/constants/DModelL.py,sha256=-bb1SMQQE-iGxZcuAGcJv-5xJqtZKsYbmMHwUak11jg,351
|
16
|
+
ai_snake_lab/constants/DModelLRNN.py,sha256=gceyvn0-I3XpRL6cUb8Ep67DoybN8bZdDpcXVKf_DCk,432
|
17
|
+
ai_snake_lab/constants/DReplayMemory.py,sha256=DNPn9dFa9piNXpuT6AMx1B96UpoMFXALrYYLjyKwPpU,576
|
18
|
+
ai_snake_lab/constants/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
|
+
ai_snake_lab/game/GameBoard.py,sha256=wl2V0cxjqBKHuS1DSx36EE_DRH54tikuhaA9eC5qPsY,7857
|
20
|
+
ai_snake_lab/game/GameElements.py,sha256=9vcNH2YWAzYyBZosvj1DzO6ZmUCUMUd8MaIhORWQ8go,470
|
21
|
+
ai_snake_lab/game/SnakeGame.py,sha256=1YS0xgyzuGQtGgKxDUcPJYM2NV56ekL4OpaOrbpnDW0,5673
|
22
|
+
ai_snake_lab/utils/AISim.tcss,sha256=c0Xq8hjA7YokioZUzJGHhAlX13t2kgelA26hOWtUSVQ,1674
|
23
|
+
ai_snake_lab/utils/ConstGroup.py,sha256=ZYyQxFd9PudBUZmc_NsNvWCp___utOe1MptqD3eyVH8,1174
|
24
|
+
ai_snake_lab-0.1.0.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
25
|
+
ai_snake_lab-0.1.0.dist-info/METADATA,sha256=X3xDSODxx3q8zlm8GTntrkCa7PL7AbGm-QsDqFgTj8A,2712
|
26
|
+
ai_snake_lab-0.1.0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
27
|
+
ai_snake_lab-0.1.0.dist-info/entry_points.txt,sha256=VXWDqigE8D35J7scdqjR0EVvOjtP1mm0uS76xMnvodo,56
|
28
|
+
ai_snake_lab-0.1.0.dist-info/RECORD,,
|