Sign inDemoInstall


Package Overview
File Explorer

Install Socket

Detect and block malicious and high-risk dependencies



Asteroids game simulation environment for ML and AI applications




Getting started

Kessler is a simulation environment loosely modeled after our internal project PsiBee and the external project Fuzzy Asteroids. The game has ships that shoot bullets at asteroids to gain score. Ships can collide with asteroids and lose lives. If the ship runs out of lives, the game terminates. In multi-ship scenarios, ships can collide with each other as well, but cannot shoot each other.

Kessler can be built as python extension for install using pip, or used as a local package by copying the src/kessler_game directory to your project. Wheels are provided in releases for install using:

pip install <path to kessler_game-#.#.#-py3-none-any.whl>

Kessler has two primary graphics modules. The first uses Python's Tkinter UI library to display the game. The second utilizes a separate executable process called kessler_graphics made in Unreal Engine 5. Data is sent to the kessler_graphics instance using UDP protocol on a local machine.

Using the UE5 graphics engine

Under kessler_graphics is an Unreal Engine 5 project for receiving simulation data from the Kessler Python process and displaying it in a 3d environment. To contribute to the UE5 project, you will need to do the following.

  • Install Visual Studio 2019 v16.11.5 or later with "Game Development with C++" selected on install
  • Install the .NET Core 3.1 Runtime from here
  • Install Unreal Engine 5.0.x from the Epic Games Launcher
  • Grab the latest release of the UDP-Unreal plugin from here
  • Follow installation instructions for UDP-Unreal from its included README
  • Right click kessler_graphics.uproject under the kessler_graphics directory and select "Generate Visual Studio Project Files" from the context menu
  • Launch the project by double-clicking on kessler_graphics.uproject, and select "Yes" if prompted to rebuild engine modules


Documentation is not yet available for Kessler. If you would like to contribute to documentation, check out for info on how to get started


If you are interested in contributing to the Kessler project, start by reading the Contributing guide.


Kessler is licensed under the Apache 2.0 license. Please read LICENSE for more information.



Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.


Related posts

SocketSocket SOC 2 Logo


  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc