An open-source AI playground: play games against agents that learn, peek inside neural nets as they read handwritten digits, and tinker with the math underneath. Live at https://aix-labs.uw.r.appspot.com/. Or hit Surprise me and let the dice pick.
| Lab | What you can do | Path |
|---|---|---|
| RPS Agent Lab | Throw rock, paper, or scissors against agents that learn your habits. | /rps/ |
| Deep RL Lab | Land lunar modules and train robot arms with deep reinforcement learning. | /drl/ |
| Connect4 | Drop discs against agents and watch them forecast your next move. | /c4/ |
| Clue | Crack the case with human sleuths and probabilistic AI detectives. | /clue/ |
| Double-digits | Watch a neural net read handwritten digits, then do arithmetic with them. | /doubledigits/ |
| Euclidyne | Play Euclid's algorithm like an instrument: ratios, gears, and rhythm. | /euclidyne/ |
| Polyfolds | Unfold polyhedra into flat nets and learn which ones truly fold back up. | /polyfolds/ |
python -m venv venv; venv\Scripts\activate
pip install -r requirements-dev.txt
python run.pyThen open http://127.0.0.1:5000/. On startup run.py prints which labs it
found locally and how to fix any that are missing. Options: --port 8080 (or
PORT), --host 0.0.0.0 (or AIX_HOST), and --no-reload.
Each lab lives in its own sibling repo (../rps, ../c4, ../clue, ../dd,
../geometry/euclidyne). Missing ones show up on the hub as
"Not installed here" with a one-line fix instead of failing silently.
This repository hosts the AIX hub and bridge adapters. Lab implementations stay in their own repositories and are mounted by interface.
rpsremains independent and is mounted under/rps.drlremains independent as a sister app; AIX links to it through/drl/.c4remains independent and is mounted under/c4.clueremains independent and is reached under/clue.doubledigitsremains independent and is mounted under/doubledigits.euclidyneremains independent and is mounted under/euclidyne.polyfoldslives in the siblingpfrepo and is routed under/polyfolds.- Large generated datasets are not tracked in this repo by default.
- Local development lazy-loads lab apps on first request to their mount path.
- Cloud AIX treats separately deployed lab services as App Engine-dispatched services, so the hub links to the same path prefixes without importing those sibling repos into the default service process.
- Create/activate one shared venv for AIX + labs.
- Install union dependencies:
pip install -r requirements.txtFor tests/dev tooling:
pip install -r requirements-dev.txtIf polyhedra fails with ModuleNotFoundError: No module named 'numpy',
install with build isolation disabled after preinstalling core build deps:
python -m pip install -U pip setuptools wheel
python -m pip install numpy
python -m pip install polyhedra --no-build-isolation- Optional explicit bridge paths (only needed if sibling defaults are not used):
$env:AIX_RPS_REPO = "C:\\path\\to\\rps"
$env:AIX_C4_REPO = "C:\\path\\to\\c4"
$env:AIX_CLUE_REPO = "C:\\path\\to\\clue"
$env:AIX_DOUBLEDIGITS_REPO = "C:\\path\\to\\dd"
$env:AIX_EUCLIDYNE_REPO = "C:\\path\\to\\geometry\\euclidyne"
$env:AIX_POLYFOLDS_REPO = "C:\\path\\to\\pf\\polyfolds"
$env:AIX_POLYFOLDS_JOBS_ROOT = "C:\\path\\to\\aix\\data\\polyfolds_jobs"- Run AIX:
python run.pyThen open http://127.0.0.1:5000/.
Useful endpoints:
/surprisejumps to a random lab that is open right now./toclists every public page with a short description./diagnostics/healthzfor mount/dispatch status + runtime warnings./healthzremains as a local/dev compatibility alias, but public App Engine checks should use/diagnostics/healthz./diagnostics/bridgesfor non-secret bridge/config hints.
Legacy RPS absolute API calls are bridged at /api/v1/* for compatibility.
Legacy /euclidorithm/* links are redirected to /euclidyne/* during the transition.
Cloud service note:
- On App Engine, the default AIX service owns the hub, diagnostics, DRL portal,
and compatibility redirects. Separately deployed lab services such as Clue
own their own persistence settings and are routed through
dispatch.yaml. AIX_DISPATCH_SERVICE_LABScan override the default cloud-dispatched lab list for a rollback or diagnostic run.- Direct database URLs and Cloud Storage snapshots remain supported by sibling lab repos, but AIX no longer carries Clue persistence configuration.
Run the shared deploy helper from the AIX repo root after your usual gc.bat
setup:
scripts\deployThis wraps scripts\aix_cloud_deploy.bat, previews which AIX-managed services
are in scope, and then deploys the AIX default service plus dispatch rules.
App Engine uploads the current local filesystem contents, so uncommitted edits
inside an included repo are part of what goes live.
Clue is intentionally excluded from the AIX deploy scripts. Deploy Clue from the sibling Clue repo with:
..\clue\deploy_clue.batThat Clue deploy helper owns its App Engine manifest selection and upload hygiene checks.
Mounted under /polyfolds:
GET /polyfolds/api/v1/presetsPOST /polyfolds/api/v1/jobsGET /polyfolds/api/v1/jobsGET /polyfolds/api/v1/jobs/{job_id}
Example submit payload:
{
"kind": "dataset",
"solid": "tetra",
"params": {
"quick": true,
"n_valid": 200,
"n_incomplete": 200,
"n_invalid": 200,
"seed": 2025
}
}