Tick-based agent-based model of maritime traffic safety on the Baltic and North Sea.
Vessels follow depth- and lane-constrained routes, resolve encounters with a CPA/COLREGs give-way rule gated by weather × crew fatigue, and — on collision — feed DTU SIMCOL damage plus an IAMSAR/MASSIM + Ashrafi SAR chain. Batches compare methods and scenarios with non-parametric hypothesis tests.
| Layer | Stack |
|---|---|
| Engine | Rust + krABMaga |
| API | Axum (batch + SSE progress) |
| UI | React 19 + Vite + deck.gl / MapLibre |
| Paper | LaTeX in report/ |
# Terminal 1 — API (from repo root; reads data/, writes outputs/)
cargo run -p api --release
# Terminal 2 — UI
cd frontend && npm install && npm run devOpen http://localhost:5173. Launch a small batch under Runs, pick a finished seed, scrub the map.
Prerequisites: Rust (stable), Node.js 20+. Optional: Python 3.11+ for tools/, LaTeX for the paper.
maritime-abm/
├── crates/simulation/ # ABM engine
├── crates/api/ # HTTP batch API + SSE
├── crates/aisprocess/ # depth/lane route generator
├── frontend/ # playback workbench
├── data/ # committed calibration inputs
├── tools/ # fetchers, sweep, plotting
├── docs/ # implementation docs
├── report/ # academic write-up
└── outputs/ # gitignored batch artifacts
data/ is the calibration baseline — do not overwrite casually. See docs/data-and-routes.md.
An earlier Python / Streamlit prototype lives in the archived repo Pawlo77/maritime-safety-simulation. This Rust + React codebase replaces it.
| Doc | Contents |
|---|---|
| docs/ | Implementation docs index |
| docs/architecture.md | System architecture (Mermaid) |
| docs/experiment.md | Scenarios, methods, hypotheses |
| docs/simulation.md | Tick pipeline, modules, KPIs |
| docs/api.md | HTTP API reference |
| docs/frontend.md | UI shell & contracts |
| docs/sweeping.md | Hyperparameter sweeps |
| docs/data-and-routes.md | Route generation & data tools |
| docs/glossary.md | Domain terms & model citations |
| CONTRIBUTING.md | Dev workflow, conventions, CI |
| report/report.pdf | Scientific narrative & results |
Course / research project at Warsaw University of Technology. See authors in report/report.pdf.