Assorted Artificial Intelligence Labs umbrella app.
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.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.
- Lab apps load lazily on first request to their mount path.
- 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_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 diagnostics endpoints:
/healthzfor mount status + runtime warnings./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 persistence note:
- On App Engine, configure
RPS_DATABASE_URL(orRPS_DATABASE_URL_SECRET) andC4_DATABASE_URL(orC4_DATABASE_URL_SECRET) to avoid ephemeral SQLite data loss on instance recycle.
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
}
}