docs/research/sota-2026-05-22/R11-maritime-sensing.md
Status: physics scrutiny + honest verdict + 10-20y vertical map · 2026-05-22
The romantic "through-bulkhead WiFi sensing for ships and submarines" framing is physically wrong at WiFi bands. Steel bulkheads have a skin depth of 3.25 µm at 2.4 GHz — a single millimetre of mild steel produces 2,674 dB attenuation, more than the link budget of any portable device by a factor of 10²². No amount of clever DSP recovers a signal through closed metal.
What does work is through-seam sensing — exploiting the diffraction leakage through gaskets, vent slots, hatch seals, and porthole gaskets. This thread maps which maritime scenarios are physically feasible and which aren't.
δ = 1 / √(π·f·μ·σ)
For mild steel (σ = 1·10⁷ S/m, μ_r = 1):
| Frequency | Skin depth | Per-mm attenuation |
|---|---|---|
| 2.4 GHz | 3.25 µm | 2,674 dB/mm |
| 5.0 GHz | 2.25 µm | 3,859 dB/mm |
A 1 mm steel sheet attenuates 2,674 dB at 2.4 GHz — utterly impassable.
For seawater (σ = 4.8 S/m, ε_r = 81) via the lossy-dielectric model:
| Frequency | Attenuation |
|---|---|
| 2.4 GHz | 852.8 dB/m |
| 5.0 GHz | 867.7 dB/m |
Saltwater is similarly opaque. A head 30 cm underwater = 256 dB additional loss = invisible. Submarine RF comms work at VLF (10-30 kHz) for exactly this reason; WiFi-band underwater detection is hopeless.
For a narrow slot of width w << λ in an otherwise opaque conductor, the diffraction loss approximates:
L_slot ≈ 20·log10(λ / 2w) when w < λ/2
≈ 0 when w ≥ λ/2
At 2.4 GHz λ = 12.5 cm, so any slot wider than 6.25 cm is effectively transparent. A typical cabin-door gasket gap is 2-5 mm — significant attenuation (~22-30 dB) but well within link budget.
examples/research-sota/r11_maritime_propagation.py computes the composite (FSPL + bulk + slot + saltwater) for seven scenarios. ESP32-S3 link budget = 121 dB, 10 dB SNR margin reserved for DSP.
| Scenario | Path used | Total loss | SNR margin | Verdict |
|---|---|---|---|---|
| Man-overboard, surface-floating @ 200 m | air | 86 dB | +25 dB | ✅ feasible |
| Man-overboard, head 30 cm underwater | air→water | 342 dB | -231 dB | ❌ impossible |
| Crew vitals through 10 mm closed steel door | bulk steel | 1,049 dB | -938 dB | ❌ impossible |
| Crew vitals through cabin door, 2 mm seam | seam | 80 dB | +31 dB | ✅ feasible |
| Crew vitals through cabin door, 5 mm seam | seam | 72 dB | +39 dB | ✅ feasible |
| Container intrusion (30 mm vent slot) | seam | 67 dB | +45 dB | ✅ feasible |
| Through submarine pressure hull (30 mm steel) | bulk steel | 1,040 dB | -929 dB | ❌ impossible |
cog-maritime-watch: man-overboard + through-seam vitals as a maritime-specific cog package. Same ADR-103 pattern as cog-person-count, different model + different feature set.