An open-science laboratory for multimodal accessibility and location–mobility optimization.
AccessLab asks whether planners, routing engines, behavioral models, and optimization algorithms are producing the same feasible access from the same declared people, opportunities, mobility supply, and time semantics. It is modeled on TAPLab's declared-instance → adapter → algorithm → normalized-result → independent-validator → evidence workflow, but accessibility requires a richer six-part contract.
Given a declared network, population, opportunities, and time semantics, AccessLab computes and independently validates comparable accessibility results, preserves auditable origin–destination paths and state transitions, and demonstrates one small accessibility-oriented facility intervention.
The executable reference core contains:
- A0 cumulative opportunities;
- A1 gravity accessibility;
- A2 basic destination-choice logsum;
- A3 deterministic network space–time prism;
- A4 reliable prism using a declared linkwise reliability surrogate;
- a small exact AO-FL maximal-covering facility-location lane;
- C0–C4-style schema, mobility, accessibility, equity, and optimization checks;
- normalized transition ledgers that let native graphs, labels, tokens, hyperpaths, and tensors be audited in a common measurement space.
A5 schedule/frequency transit, A6 multimodal pickup–delivery STS, A7 equity/resilience, and A8 network/location/service design are versioned extension specifications. They are not claimed as completed solvers in v0.1.
Requires Python 3.10+ and no runtime dependencies.
python -m accesslab run accessbench/diagnostic/D0_grid.json --algorithm A0 --output evidence/D0_A0.json
python -m accesslab validate accessbench/diagnostic/D0_grid.json evidence/D0_A0.json
python -m accesslab optimize examples/facility_cover.json --output evidence/facility_cover.json
python -m unittest discover -s tests -vaccesslab run first applies C0 instance validation; an instance that fails (for example the D1 duplicate-opportunity trap) is refused with the failing certificate and exit code 2 instead of producing a result. All validators return a failed certificate — never a traceback — when given malformed or tampered results.
Or run the entire local evidence build:
python scripts/run_all.py| Layer | Purpose |
|---|---|
accesslab/ |
dependency-free reference algorithms, CLI, validators, evidence writer |
accessbench/diagnostic/ |
D0–D8 hand-checkable traps and expected semantics |
accessbench/scale_profiles/ |
national/state/MPO declarations with honest readiness states |
accessbench/dataset-manifest.json |
per-dataset rights/provenance/schema/validation/release gates (see docs/DATASET_GATES.md) |
schemas/ |
six-part instance, algorithm, normalized-result, and certificate contracts |
docs/ |
architecture, benchmark protocol, data governance, roadmap, and literature review |
paper/ |
publication-ready outline, experiment matrix, and LaTeX skeleton |
tests/ |
positive, boundary, and adversarial tests |
evidence/ |
generated JSON evidence; do not hand-edit metrics |
AccessLab validates calculations and declared semantics. A passing certificate does not make a threshold, decay parameter, utility coefficient, equity weight, or policy choice normatively correct. v0.1 does not claim complete DTA, full ActivitySim feedback, universal equity measurement, general-purpose VRP, freight-rail optimization, or adaptive disruption control.
Only openly redistributable inputs belong in Git. Restricted agency or vendor data stay in .accesslab_private/; public evidence may contain schemas, hashes, settings, validator output, and non-sensitive summaries. See docs/DATA_GOVERNANCE.md.
Start with paper/PAPER_OUTLINE.md. The recommended first paper is:
AccessLab: An Open-Science Laboratory for Reproducible Multimodal Accessibility Algorithms
Its first claim is semantic and computational reproducibility, not a universal accessibility score.