Reproducing the ICCD paper
Target paper: ICCD: CRDT-Based Intent Propagation over Contact-Plan DTN.
Versions pinned for the canonical results
| Component | Version | SHA256 (short) |
|---|---|---|
gossamer_threaded_intelligence wheel | TBD (paper rev) | TBD |
leviathan_engine wheel | TBD | TBD |
maneuver-map backend | TBD (git) | TBD |
| Python | 3.11.x | — |
Fill this table from the provenance block of the canonical
experiment.json; replace TBD values with the actual hashes that
shipped with the paper.
Environment setup
python3.11 -m venv .venv && source .venv/bin/activate
pip install -r maneuver-map/backend/requirements.txt
# Or, against a pinned wheel index:
pip install --extra-index-url https://us-central1-python.pkg.dev/arboria-research/python-packages/simple/ \
gossamer-threaded-intelligence==<pinned> \
leviathan==<pinned>
export ENGINE_MODE=inprocess # skip HTTP for deterministic wall-clock
export PYTHONHASHSEED=0Trial A — ICCD + contact-plan DTN
Canonical body for POST /experiments:
{
"name": "iccd_contact_plan_inner_heliosphere",
"steps": 12000,
"num_agents": 50000,
"dt": 0.5,
"generations": 1,
"output_frequency": 20,
"environment_bound": 2.25e11,
"flock_params": {
"alignment_weight": 1.0,
"cohesion_weight": 1.0,
"separation_weight": 1.6,
"neighbor_radius": 120000.0,
"separation_distance": 500.0,
"max_speed": 50.0
},
"algorithm": "flocking",
"algo_params": {
"iccd": { "initial_aoi": 14400.0, "relay_rotation": true },
"dtn": { "contact_density": 0.15, "bandwidth_kbps": 8.0,
"one_way_delay_sec": 10800.0, "custody_transfer": true },
"energy": { "soc_wh": 120.0, "radio_j_per_kb": 0.3 },
"failure": { "relay_attrition_rate_per_hour": 0.002 }
},
"seed_base": 42
}Expected wall-clock on the reference machine (32-core CPU, 256 GB): ~3.5 hours for a full 1e6-agent run; the 50k-agent trial above is ~8 minutes and produces the metrics for Table 1 in the paper.
Expected outputs
After the run completes, the experiment.json at
/data/experiments/<exp_id>/experiment.json should contain:
{
"final_swarm_metrics": {
"cohesion": "~ expected value, fill from canonical run",
"alignment": "~ expected value",
"separation": "~ expected value"
},
"paper_metrics": {
"coverage_ratio": "~ expected",
"collision_rate_per_agent_step": "~ expected"
}
}Fill in the canonical values from the archived run. The canonical
experiment.json blob is published alongside the paper’s DOI.
Cross-reference with baselines
Trials B (Periodic Broadcast) and C (Epidemic Flooding) live in the
same format; copy the appropriate config body from §4.7 of the
paper and
submit with the same seed_base=42 so the comparison is
apples-to-apples.