This repository is organized around self-contained scenario folders. Each scenario includes its own compose file and campaign payload.
Run any scenario directly:
docker compose -f scenarios/xray_ambench_smb_json/docker-compose.yml up -d --force-recreateFor neutron scenarios, choose one of the dataset files with NEUTRON_DATASET_JSON:
A2_2p1_30layers_VDriveSPF_LD.jsonD1_1p8_30layers_VDriveSPF_LD.jsonD2_2p3_30layers_VDriveSPF_LD.jsonD4_4p4_30layers_VDriveSPF_LD.json
Example:
NEUTRON_DATASET_JSON=D2_2p3_30layers_VDriveSPF_LD.json \
docker compose -f scenarios/neutron_ammdf_vulcan_json/docker-compose.yml up -d --force-recreate-
Start the scenario stack for the scenario you want to run.
-
Open Campaign UI:
- Run the scenario campaign:
- Use the scenario's
campaign.jsonlisted in the table below. - The UI preloads the scenario configured by
CAMPAIGN_UI_DEFAULT_PRELOADED_CAMPAIGN. - In the UI, select the preloaded campaign (or upload the scenario
campaign.json) and run/execute it.
- Optional checks:
- Orchestrator API docs: http://localhost:8000/docs
- RabbitMQ management UI: http://localhost:15672 (user:
intersect_username, password:intersect_password) - MinIO Console (storage variants): http://localhost:9001 (user:
minioadmin, password:minioadmin) - Dashboard (storage-dashboard variants): http://localhost:8059
| Scenario | Dataset | Services | Compose | Campaign | Notes |
|---|---|---|---|---|---|
| xray_ambench_smb_hdf5 | Xray HDF5 reduced fixture (strain_map.small.nxs) |
Core stack (broker, mongodb, informer, data service, dial, instrument-control, orchestrator, campaign-ui) | scenarios/xray_ambench_smb_hdf5/docker-compose.yml | scenarios/xray_ambench_smb_hdf5/campaign.json | Default HDF5 flow |
| xray_ambench_smb_hdf5-full | Xray full HDF5 (.local-data/strain_map.nxs) |
Core stack | scenarios/xray_ambench_smb_hdf5-full/docker-compose.yml | scenarios/xray_ambench_smb_hdf5-full/campaign.json | Uses local full file |
| xray_ambench_smb_json | Xray JSON reduced fixture (strain_map.reduced.json) |
Core stack (informer disabled) | scenarios/xray_ambench_smb_json/docker-compose.yml | scenarios/xray_ambench_smb_json/campaign.json | JSON monitor mode |
| xray_ambench_smb_json-storage | Xray JSON reduced fixture | Core stack + minio + nsdf-storage-service | scenarios/xray_ambench_smb_json-storage/docker-compose.yml | scenarios/xray_ambench_smb_json-storage/campaign.json | Persists DIAL outputs |
| xray_ambench_smb_json-storage-dashboard | Xray JSON reduced fixture | JSON-storage stack + dashboard-seed + nsdf-strain-transform + dashboard | scenarios/xray_ambench_smb_json-storage-dashboard/docker-compose.yml | scenarios/xray_ambench_smb_json-storage-dashboard/campaign.json | Dashboard on :8059 |
| neutron_ammdf_vulcan_json | Neutron JSON via NEUTRON_DATASET_JSON |
Core stack (informer disabled) | scenarios/neutron_ammdf_vulcan_json/docker-compose.yml | scenarios/neutron_ammdf_vulcan_json/campaign.json | value_key set for neutron strains |
| neutron_ammdf_vulcan_json-storage | Neutron JSON via NEUTRON_DATASET_JSON |
Core stack + minio + nsdf-storage-service | scenarios/neutron_ammdf_vulcan_json-storage/docker-compose.yml | scenarios/neutron_ammdf_vulcan_json-storage/campaign.json | Storage-enabled neutron flow |
| neutron_ammdf_vulcan_json-storage-dashboard | Neutron JSON via NEUTRON_DATASET_JSON |
JSON-storage stack + dashboard-seed + nsdf-strain-transform + dashboard | scenarios/neutron_ammdf_vulcan_json-storage-dashboard/docker-compose.yml | scenarios/neutron_ammdf_vulcan_json-storage-dashboard/campaign.json | Dashboard on :8059 |
Run the validation helper:
./scripts/check_scenarios.shWhat it checks:
- Every scenario has a valid compose config
- Every scenario has a valid
campaign.json - Every neutron scenario resolves compose config for all 4 neutron dataset filenames
- Reduced HDF5 fixture generator: scripts/reduce_strain_map_hdf5.py
- Reduced JSON export tool: scripts/export_strain_map_to_json.py