Skip to main content

AEGIS

AEGIS is a survivor simulation game. This repo contains:

  • Server/engine (Python package) that runs simulations and exposes a WebSocket for the client
  • Client (Electron, React, TypeScript, Tailwind CSS) for visualizing and controlling simulations
  • Documentation found here

Repo Layout

Codebase

  • client: Electron desktop client (builds for macOS, Windows, Linux)
  • schema: Shared Protocol Buffer/TypeScript types
  • src: Python server/engine, CLI entrypoint, public API
  • tests: Tests

Additional

  • agents: Example/reference agents (e.g., agent_path, agent_mas, agent_prediction)
  • config: Example/reference configurations (e.g., pathfinding-assignment.yaml, multi-agent-assignment.yaml)
  • prediction-data: Example/reference prediction data
  • scripts: Utility scripts
  • worlds: Example/reference worlds for running simulations

Prerequisites

  • Python 3.13
  • Node.js 20+

Package name (PyPI)

  • The Python package is published as aegis-game.

Download for usage in assignments or competitions

  1. Verify Python version accessible from shell (Should be 3.13)
python --version
# OR if you have Python 2 installed (often the case on Mac/Linux)
python3 --version
## OR
py --version

If you have the Python Install Manager you may be able to access other versions with

# Listing
py list
# Use Python 3.13
python3.13

If you do not have correct Python version you should install it. Python Install Manager is recommended.

  1. Create a project folder
# Initialize project
mkdir my-new-project
cd my-new-project
  1. Create the virtual environment (python3.13 can be submitted with python, python3, py if they were correct version)
python3.13 -m venv .venv

This creates a virtual project environment under .venv/

  1. Activate the virtual environment

On macOS/Linux:

source .venv/bin/activate

On Windows (CMD):

.\.venv\Scripts\Activate

On Windows (PowerShell) [see Troubleshooting below if activation gets blocked]:

.\.venv\Scripts\Activate.ps1
  1. Install aegis-game with:
pip install aegis-game

The CLI entrypoint is aegis (e.g., aegis launch).

Download for usage in assignments or competitions

  1. Create folder scaffold
aegis init

Alternately, for multi-agent config use

aegis init --type mas

This creates all necessary files/folders in your project that an aegis simulation needs to run

Notes:

  • Agent code under agents/
  • Config code under config/
  • Client GUI code under client/
  • Worlds under worlds/
  1. Configure features (Optional)

If default aegis init is not desired edit config/config.yaml to enable/disable features (e.g., messages, dynamic spawning, abilities). If you change features, regenerate stubs so the API your agent recongizes matches the config:

aegis forge

5a. Use the client UI

The client is in the \client folder You can run it by interacting with it through your OS folder system or

On Linux

client/aegis-client.AppImage

On Windows (CMD/PowerShell):

client\aegis-client.exe

On Mac:

open client/Aegis.app

5b. Launch a game (through the console)

# One agent
aegis launch --world example --agent agent_path

# Five agents with max rounds of 500 (requires config of ALLOW_CUSTOM_AGENT_COUNT=true)
aegis launch --world example --agent agent_path --amount 5 --rounds 500

Run aegis launch -h to see all ways you can run an aegis simulation

  1. Deactivate (venv) Close your terminal/shell or run command
deactivate

&. Reactivate (venv) Open terminal shell within project folder or change directory into it and run

On macOS/Linux:

source .venv/bin/activate

On Windows (CMD):

.\.venv\Scripts\Activate

On Windows (PowerShell):

.\.venv\Scripts\Activate.ps1

Download for Development

Before you start, please read our Contributing Guidelines to understand the full contribution process, coding standards, and PR requirements.

  1. Verify Python version accessible from shell (Should be 3.13)
python --version
# OR if you have Python 2 installed (often the case on Mac/Linux)
python3 --version
## OR
py --version

If you have the Python Install Manager you may be able to access other versions with

# Listing
py list
# Use Python 3.13
python3.13

If you do not have correct Python version you should install it. Python Install Manager is recommended.

  1. Clone the repository
git clone https://github.com/AEGIS-GAME/aegis.git
cd aegis
  1. Create the virtual environment (python3.13 can be submitted with python, python3, py if they were correct version)
python3.13 -m venv .venv

This creates a virtual project environment under .venv/

  1. Activate the virtual environment

On macOS/Linux:

source .venv/bin/activate

On Windows (CMD):

.\.venv\Scripts\Activate

On Windows (PowerShell) [see Troubleshooting below if activation gets blocked]:

.\.venv\Scripts\Activate.ps1
  1. Install the dependencies
  • uv (for Python env/build) — pip install uv or see https://docs.astral.sh/uv/
uv sync --group dev
  1. Run locally
aegis launch --world example --agent agent_path
  1. Ruff lint before commits
ruff check src

Client

For instructions on local development and setup of the client application, please see the client README

Documentation

The documentation can be found here.

Troubleshooting

  • Windows PowerShell execution policy may block script activation; if needed, run PowerShell as Administrator and execute:
    • Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
  • "Config Error Failed to load config.yaml. Please check your config file and ensure it's valid."
    • Use Settings 'Gear' icon to open settings and set 'Aegis Path' to the base folder of your project
      • The folder 'config' within that base folder should have the missing 'config.yaml' in it
  • Ensure Node.js 20+ and Python 3.13+ are on your PATH
  • If the client cannot connect, verify the server was started with --client and that no firewall is blocking the port
  • If you aren't using a virtual environment (.venv) and see "Defaulting to user installation because normal site-packages is not writeable" during pip
    • You will likely get ": command not found" (Linux) or "'' is not recognized as an internal or external command, operable program or batch file." (Windows) when using commands
    • This can be rectfied by adding the local location of '' to your PATH. A local installation for python package installed via pip is generally able to be added to path with
      • Linux
        • PATH=$PATH:~/.local/bin```
          
      • Windows
        • PATH=%PATH%;%appdata%\Python\Python313\Scripts```
          

Metadata

Release files for aegis-game 2.9.11

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aegis-game 2.9.11
File Size Uploaded
aegis_game-2.9.11.tar.gz 3.5 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for aegis-game 2.9.11
File Interpreter ABI Platform
aegis_game-2.9.11-py3-none-any.whl Python 3 none any Details

Total release size: 5.1 MB

Release files / aegis_game-2.9.11.tar.gz

Download URL aegis_game-2.9.11.tar.gz
Size 3.5 MB
Tags Source
SHA-256 checksum
How to use checksums
77db9fe888895d0af31e96aab570c07f720151ad2b43c293ed917138334e07f0
BLAKE2b-256 checksum
How to use checksums
082a37df4b3d2a932252d1c24b7feef7cda88fbe57a6127a335e41d71478570f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 2, 2026.

Transparency log

Release files / aegis_game-2.9.11-py3-none-any.whl

Download URL aegis_game-2.9.11-py3-none-any.whl
Size 1.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
86cb7d790bf49e353bb9e7bd96ccd43426455875322bb08eaf59f4380857b930
BLAKE2b-256 checksum
How to use checksums
47e176cb2ced83595920a5b3cde50cb3872815b150b52f173988b7eb05398141
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 2, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.9.11 This release

2 release files

2.9.10

2 release files

2.9.9

2 release files

2.9.8

2 release files

2.9.7

2 release files

2.9.6

2 release files

2.9.5

2 release files

2.9.4

2 release files

2.9.3

2 release files

2.9.2

2 release files

2.9.1

2 release files

2.9.0

2 release files

2.8.1

2 release files

2.8.0

2 release files

2.7.6

2 release files

2.7.5

2 release files

2.7.4

2 release files

2.7.3

2 release files

2.7.2

2 release files

2.6.0

2 release files

2.5.2

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page