Survivor Simulation Game
Project description
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 typessrc: Python server/engine, CLI entrypoint, public APItests: 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 datascripts: Utility scriptsworlds: 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
- 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
- Create a folder and install the
aegis-gamepackage
# Initialize project
mkdir my-new-project
cd my-new-project
- Activate the virtual environment
python -m venv .venv
On macOS/Linux:
source .venv/bin/activate
On Windows (CMD):
.\.venv\Scripts\Activate
On Windows (PowerShell):
.\.venv\Scripts\Activate.ps1
This creates a virtual project environment under .venv/
- Install
aegis-gamewith:
pip install aegis-game
The CLI entrypoint is aegis (e.g., aegis launch).
Download for usage in assignments or competitions
- 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/
- 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
- 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.
- Clone the repository and set up the Python environment
uv(for Python env/build) —pip install uvor seehttps://docs.astral.sh/uv/
git clone https://github.com/AEGIS-GAME/aegis.git
cd aegis
uv sync --group dev
- Activate the virtual environment
On macOS/Linux:
source .venv/bin/activate
On Windows (CMD):
.\.venv\Scripts\Activate
On Windows (PowerShell):
.\.venv\Scripts\Activate.ps1
- Run locally
aegis launch --world ExampleWorld --agent agent_path
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
- "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
- Use Settings 'Gear' icon to open settings and set 'Aegis Path' to the base folder of your project
- Windows PowerShell execution policy may block script activation; if needed, run PowerShell as Administrator and execute:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
- Ensure Node.js 20+ and Python 3.13+ are on your PATH
- If the client cannot connect, verify the server was started with
--clientand 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```
-
- Linux
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aegis_game-2.9.9.tar.gz.
File metadata
- Download URL: aegis_game-2.9.9.tar.gz
- Upload date:
- Size: 3.5 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc25ccad734c4900079322309cb43cfdd28a320a30e9e6168bb54f555720e4bd
|
|
| MD5 |
564980fbc167833dd503aae01234eeac
|
|
| BLAKE2b-256 |
7749082d17c7205492ccfb659a7cc2a13b26183eaea38f5a3f5fabe7eb856efb
|
Provenance
The following attestation bundles were made for aegis_game-2.9.9.tar.gz:
Publisher:
release.yml on AEGIS-GAME/aegis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aegis_game-2.9.9.tar.gz -
Subject digest:
fc25ccad734c4900079322309cb43cfdd28a320a30e9e6168bb54f555720e4bd - Sigstore transparency entry: 1009945813
- Sigstore integration time:
-
Permalink:
AEGIS-GAME/aegis@0f3bdbdf8005075d68ffea718d38c251bc60875a -
Branch / Tag:
refs/heads/main - Owner: https://github.com/AEGIS-GAME
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0f3bdbdf8005075d68ffea718d38c251bc60875a -
Trigger Event:
push
-
Statement type:
File details
Details for the file aegis_game-2.9.9-py3-none-any.whl.
File metadata
- Download URL: aegis_game-2.9.9-py3-none-any.whl
- Upload date:
- Size: 1.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ed9b5a791ab3d9c0b789dafb7772f47d116754b1e8e292de4f155fd6808da9e
|
|
| MD5 |
80c6b4c74775dce226ef45a179a024c0
|
|
| BLAKE2b-256 |
0e7c8188cddecf20633a0dac23a090a92bae5f614de9e5d0cbc83c8e0cbff485
|
Provenance
The following attestation bundles were made for aegis_game-2.9.9-py3-none-any.whl:
Publisher:
release.yml on AEGIS-GAME/aegis
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aegis_game-2.9.9-py3-none-any.whl -
Subject digest:
0ed9b5a791ab3d9c0b789dafb7772f47d116754b1e8e292de4f155fd6808da9e - Sigstore transparency entry: 1009945877
- Sigstore integration time:
-
Permalink:
AEGIS-GAME/aegis@0f3bdbdf8005075d68ffea718d38c251bc60875a -
Branch / Tag:
refs/heads/main - Owner: https://github.com/AEGIS-GAME
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0f3bdbdf8005075d68ffea718d38c251bc60875a -
Trigger Event:
push
-
Statement type: