SkillAgentSearch skills...

Pygta5

Explorations of Using Python to play Grand Theft Auto 5.

Install / Use

/learn @Sentdex/Pygta5
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Python Plays Grand Theft Auto 5 - Reboot

<p align="center"><img src="_media/charles.webp"></p>

This is a reboot of the project from 2017, but with a whole new approach. This time, instead of collecting data by hand and training a classification model, we opted to create a whole new system for the data collecting, training and playing, and to do all of that live. Our models are now using regression (with other output types being still possible), training data is collected automatically and we stream models during their training phase so anyone can join and watch the progress.

Our AI, besides having multiple alter-egos (models), is still called Charles, like in 2017.

For a full explanation, refer to the System page, but for a quick summary - we’re using a central server that all other parts connect to. The Data Collectors run in separate GTA5 instances and our NPCs are collecting and Balancing the data, which is sent through the Server to the Trainer. The Trainer buffers these data, trains the model and updates the Player. The Player is using the Dual-Camera system to play so we can watch the 3rd person camera (also called cinematic camera) while the model is fed the Hood Camera.

For more information, refer to these other pages:

<br/> <br/>

Stream and current stream layout:

The progress is being streamed on Twitch: https://www.twitch.tv/sentdex. Below we keep a list of dates and streamed models.

Stream's layout consists of: layout.jpg

  • top-left tile is the 3rd person camera of the car driving, the main camera to observe Charles
  • this main tile, in its lower-right corner, shows the current model and when it's been created
  • top-right tile called Hood Camera is exactly what the models "see" - the input to the convolutional backbone of the model
  • middle-right tile called Convcam shows the reshaped output of the CNN backbone and lets us observe how the CNN part trains
  • bottom-right tile called Player Console shows current driving predictions along with additional information
  • bottom-middle tile called Server/Trainer Console shows training progress along with some basic training information
  • bottom-left tile called Tensorboard shows the loss of the training process
<br/> <br/>

Driving examples:

<a href="https://clips.twitch.tv/GiftedRespectfulParrotGOWSkull-17xBRPKKdDvr_3Wf"><img src="_media/AT-cm_qfUNoNe8QUTyinQ76_91nw.jpg" width="49.4%"></a>  <a href="https://clips.twitch.tv/HealthyRichWeaselPlanking-6oB5PoNygm5ikonY"><img src="_media/AT-cm_F6V9NuqAeT6DcoJuYpKJ2A.jpg" width="49.4%"></a>

<br/> <br/>

Model list:

<br/> <br/>

Streaming timeline

May 1st:

May 2nd:

May 7th:

May 8th:

May 14th:

May 16th:

  • Stopped streaming model_0006_inceptionresnetv2_v1 at batch 60500
  • The stream has been offline for several days since we had to send back the Comino machine and setting up another one took longer than we expected

May 28th:

  • After new machine was set and new models developed, we restarted streaming
  • Started streaming model_0009_irv2_cr_tl_v1 from scratch

May 29th:

July 5th:

  • Stopped streaming model_0004_inceptionresnetv2_v3 at batch 752000
  • The stream has been stopped as there have been no further improvements in the model and to catch up with documentation and do some off-stream development
<br/> <br/>

Project timeline

This is not a full project log and contains only the key changes that are visible on the stream (and a few from before

View on GitHub
GitHub Stars3.9k
CategoryDevelopment
Updated18h ago
Forks808

Languages

Python

Security Score

95/100

Audited on Mar 27, 2026

No findings