Release v0.7.0 - Lightning
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog
and this project adheres to Semantic Versioning.
[0.7.0] - 2025-10-13
Added
- Added a Time column to the Highscores
- A screenshot of the TUI to the website.
Changed
- Plotting Widget:
- Renamed the plotting widget from
Db4EPlottoLabPlot - Removed the code that averaged results since I'm using a sliding method instead.
- Renamed the plotting widget from
- Added a target model that keeps a frozen copy of the main network. This prevents chasing moving targets instability issues.
- Added a soft update (τ=0.01) to blend weights in slowly. This smooths the learning curve.
- Replaced MSE with Huber loss. It's less sensitive to large TD errors (outliers).
- Added gradient clipping to prevents exploding gradients.
- Added an update frequency (target_update_freq=100) to sync target every ~100 frames
- Vectorize the data coming out of the ReplayMemory leading to a HUGE improvement in speed.
- Adjust gradients on the batch, not single frames for better learning and smoother gradients
- Return the loss for future plotting.
Fixed
- Cleared the Plot Widget when the Restart button is pressed
- Reset the neural network model's learned weights when the Restart button is pressed.
[0.6.0] - 2025-10-12
Added
- Added a
DColorsconstants file. - Updated website content.
- Added Schema, Constants, Project Layout, Git Branching and Git Commit technical documents.
- Added a Richard Sutton page.
- ReplayMemory exposes the current training game ID:
- Modified the
ReplayMemoryto return the stored game and frame IDs. - Modified the
AIAgentto first load the training data, get the training game ID, then train. - Modified
AISimto get the training game ID from tehAIAgentand display it in the TUI.
- Modified the
Changed
- Set the learning rate in the
AITrainer, based on the selected model.
Refactor
- Made handling and definition of constants consistent.
- Renamed the
DDb4ePlotconstants file toDPlot
[0.5.0] - 2025-10-11
Added
- Added a highscores widget showing the game number and the high score.
- Reworked the state map in
GameBoard:get_state() - Moved the
ModelRNNmodel parameters into theDModelRNNconstants file. - Updated the SQLite schema used by the
ReplayMemoryclass. - Added drop down menu to select the
ReplayMemorytype i.e. Random Game, Random Frames or None.- Added a runtime widget to display the current memory type
- Added sections to the website / README file.
- Added a Richard Sutton page.
[0.4.8] - 2025-10-11
Fixed
- Fix path to
AISim.tcss.
[0.4.7] - 2025-10-11
Changed
- Use
tempfilemodule to get a temporary file location for SQLite3 database. - Use safer cleanup for SQLite3 database.
[0.4.6] - 2025-10-11
Fixed
- Fix path issue with
ReplayMemory's use of SQLite.
[0.4.6] - 2025-10-11
Fixed
- Add main() function to
AISim.pyso the CLI entry pointai-snake-labworks after apip install ai-snake-lab.
[0.4.5] - 2025-10-11
Fixed
- Fix import statements in
ai/* andgame/* files.
[0.4.4] - 2025-10-11
Fixed
- Fix import statements in
Constantsfiles.
[0.4.3] - 2025-10-11
Added
- Initial PyPI release.