Seastead Design Review & MOB Safety System Feasibility

Technical Analysis: Containerization, Hydrodynamics, and a Smartphone-Based Man Overboard Detection System

Table of Contents

1. Seastead Design & Containerization Review

Your design is remarkably well-constrained for ISO container shipping. Here is a verification of the critical packing geometry:

Container Internal Dims (45' HC)

  • Length: 44.6 ft (13.59 m)
  • Width: 7.7 ft (2.34 m)
  • Height: 8.9 ft (2.71 m)
  • Max Payload: ~62,000 lbs (28,123 kg)

Leg/Wing Packing (Starboard Side)

  • Chord: 8.5 ft (fits height 8.9 ft with 0.4 ft clearance)
  • Span: 21.5 ft
  • Stacking: 2 legs nested (Round+Point) + 1 leg alongside.
  • Required Width: ~2.5 - 3.0 ft (Max thickness NACA 0035 @ 35% = ~2.975 ft). Fits tightly.

Wall Panels (Port Side)

  • Height: 7 ft (fits 8.9 ft height upright)
  • Length: 44 ft (fits 44.6 ft length)
  • Width: 3 panels × 10 in = 30 in (2.5 ft). Fits easily.

Center Void

  • Width: ~7.7 - 3.0 (legs) - 2.5 (walls) = 2.2 ft
  • Length: 44.6 ft
  • Volume: ~2000 cu ft. Ample for beams, flooring, thrusters, dinghy, batteries, mooring gear.
Key Engineering Notes:

2. Man Overboard (MOB) Statistics & Risk Context

Global Fatality Data

Accurate global statistics are notoriously difficult because reporting standards vary (USCG, MAIB, BEAmer, recreational vs commercial). However, consensus estimates are:

MetricEstimateSource Context
US Recreational Boating Deaths (Annual)~600–700USCG Recreational Boating Statistics
US MOB Specific Fatalities~150–200/year~25-30% of total deaths. "Falls Overboard" is consistently #1 or #2 cause of death.
US MOB Events (Total)~400–600 reported/yearMany non-fatal or unreported.
Fatality Rate (Given MOB Event)30% – 50%Your "nearly 50%" figure is accurate for unwitnessed or cold water scenarios. Witnessed, warm water, PFD worn drops to <10%.
Global Estimate (Commercial + Rec)~1,000+ deaths/yearIMO / ILO estimates suggest vast underreporting in developing nations.

Why Your Seastead Reduces Baseline Risk

3. Proposed Smartphone MOB System Architecture

System Concept: "Virtual Lifeline"

┌──────────────┐      BLE / WiFi (2.4 GHz)       ┌──────────────────┐
│  Crew Phone  │ ◄────────── Heartbeat ─────────► │  Seastead Server │
│  (Beacon)    │      RSSI + IMU (Zero-G)         │  (Raspberry Pi / │
│  App: BG     │      Submersion = Signal Loss    │   SBC / Nav PC)  │
└──────────────┘                                 └────────┬─────────┘
                                                          │
                              ┌───────────────────────────┼───────────────────────────┐
                              ▼                           ▼                           ▼
                       ┌─────────────┐             ┌─────────────┐             ┌─────────────┐
                       │   ALARM     │             │   THRUSTER  │             │   LOG/COMMS │
                       │  (Local +   │             │  COMMAND    │             │  (Starlink  │
                       │   Starlink) │             │  (DP Stop/  │             │   Alert to  │
                       └─────────────┘             │   Return)   │             │   Shore)    │
                                                   └─────────────┘             └─────────────┘

Proposed Logic Flow (State Machine)

  1. NOMINAL: Phone sends heartbeat (BLE preferred, WiFi fallback) every 1s. Server receives >95%. RSSI logged for rough proximity.
  2. DEGRADED (Missed 1-2 beats): Server pings phone explicitly (BLE L2CAP ping or WiFi UDP). Phone replies immediately. No alarm.
  3. ALARM (3s - 5s no contact): Audible/Visual alarm on Bridge/Phones. "Crew [Name] Signal Lost".
  4. CONFIRMED MOB (6s - 10s + IMU Zero-G event): Auto-Stop Engaged. Thrusters: Zero forward, hold position (DP). Log GPS/Time of last RX.
  5. RETURN MODE: Auto-navigate to "Last Known Position" (LKP) + Drift Model (current/wind). Activate MOB light/strobe on relevant leg.
  6. RECOVERY: Manual override required to resume voyage.

4. Critical Technical Challenges & Physics

A. The "Water Curtain" Physics (2.4 GHz)

You are 100% correct: 2.4 GHz (WiFi/BLE) attenuation in seawater is ~100-150 dB/m. A phone submerging 0.1m (screen down) loses >10 dB instantly. At 0.5m depth, signal is gone (-80 to -90 dBm noise floor). Submersion = Instant Link Loss. This is a fantastic physical trigger—no software timeout needed for the "wet" detection.

B. The "False Alarm" Problem (The Killer Metric)

If the system alarms falsely once per week, the crew will disable it. You need < 1 false alarm per month (ideally per season).

ScenarioCauseMitigation
Phone in cabin / Head / GalleySteel/Aluminum hull blocks 2.4 GHz (Faraday cage effect).Mandatory Mesh Nodes: 3-4 BLE/WiFi AP repeaters (one per leg, one midships). Mesh routing to server.
Phone in pocket, body shieldingBody attenuates ~10-20 dB. Turning away from AP drops RSSI.RSSI threshold must be very low (-85 to -90 dBm). Use "Link Quality" not just RSSI.
Phone OS sleeps radioiOS/Android deep sleep kills BLE/WiFi to save battery.Foreground Service (Android) / Background App Refresh + "Always" Location (iOS). See Section 5.
Interference (Microwave, other boats)2.4 GHz ISM band congestion.BLE 5.0 Coded PHY (Long Range) or 5 GHz WiFi (if hardware supports) for backbone. BLE for phone link.
Phone Battery DeadUser forgot to charge.App monitors battery %; warns <20%; Hardware fallback: $15 BLE Tag (Tile/AirTag clone) on lifejacket/harness.

C. "Zero-G" Detection via IMU

D. Positioning Accuracy (Where did they fall?)

5. Mobile OS Constraints: The "Background Execution" Wall

This is the single hardest part of the project. You cannot simply "run an app in the background forever" on modern iOS/Android.

Android (Easier, but Fragmented)

iOS (Much Harder, Strict)

Critical Architecture Decision:
DO NOT use WiFi (UDP/TCP) as the primary keep-alive on iOS. WiFi radio powers down aggressively.
USE BLE (Bluetooth Low Energy) GATT Connection.

6. Battery Life Impact Analysis

  • Conn Interval: 200ms
  • Data: 20 bytes/s
  • CPU wakeups 50x/s
  • Sensor Hub active
  • High power TX/RX
  • DTIM intervals
  • ModePhone RoleRadio UsageEst. Battery Drain (vs Idle)Verdict
    Default (Heartbeat Only) BLE Central (Connected) +5% to +15% per day ACCEPTABLE Most phones last 24h+.
    High Risk (IMU Active) BLE Central + Accel @ 50Hz +30% to +60% per day HEAVY Requires charging mid-day. Opt-in only.
    WiFi Fallback WiFi Radio On + Scan/Connect +40% to +80% per day AVOID Only for "Lost BLE" recovery.

    Mitigation Strategies

    1. Seastead Provides Power: Wireless charging pads (Qi) at helm, galley, bunks. "Place phone here when not in pocket."
    2. Low Power BLE Chips (nRF52/53): Mesh nodes run on ship power, handle the heavy RF lifting. Phone just maintains one connection.
    3. Adaptive Interval: RSSI > -60dBm (close) → Interval 1s. RSSI < -80dBm (edge) → Interval 100ms (better reliability).
    4. Hardware Beacon Fallback: $10-20 nRF52840 dongle on lifejacket/PFD. 1 year coin cell. Zero phone battery impact. Highly Recommended for Non-Swimmers/Children/Solo.

    7. Existing Solutions & Prior Art

    You are entering a crowded space. Differentiation is key.

    Product / SystemTechProsCons / Gap
    OLAS (Exposure Lights) BLE Tag + Phone App Dedicated hardware tag (CR2477, 1yr). Loud alarm. Simple. Tag only. No phone IMU. No auto-stop/return (no thruster interface). Range ~30m.
    MOB+ / Kannad / SeaTags AIS / DSC / 121.5 MHz / BLE Sends AIS MOB message to ALL nearby ships + DSC distress. Satellite (Globalstar/Iridium) options. Expensive ($300-$800). Requires external antenna. Hardware tag only. No "phone in pocket" convenience.
    Apple Watch / Garmin / Pixel Watch Fall Detection + LTE/Phone Built-in IMU fall detection. Auto-dials EMS. Works globally (LTE models). Requires watch ($300+). LTE subscription. Designed for EMS, not "Stop *this* boat". No vessel integration.
    Raymarine / B&G / Simrad MOB Proprietary RF (433/868/915 MHz) + MFD Integrated into Chartplotter. Marks waypoint. Steers autopilot to waypoint (Return). Requires specific brand ecosystem. Tags proprietary. No phone app. High power RF better range but bigger tags.
    Open Source: OpenMarine, Signal K Signal K Server + Plugins Standardized data bus. Python/Node/JS plugins. Runs on Pi. Perfect for your Server. No standard "Phone MOB Client" plugin exists yet. You would write this.

    Your Unique Value Proposition (UVP)

    8. Development Feasibility with Modern AI Tools

    Can Cursor / Claude Code / Copilot build this?

    Yes, 80-90% of the boilerplate and logic. The remaining 10-20% (OS background quirks, BLE GATT state machines, Signal K integration) requires expert debugging.

    Recommended Tech Stack (AI-Friendly)

    Mobile App (Cross-Platform)

    • Flutter (Dart) — Best single codebase for iOS/Android BLE. flutter_blue_plus / flutter_reactive_ble plugins are mature.
    • React Nativereact-native-ble-plx. Large JS ecosystem, AI writes TS well.
    • Native (Swift/Kotlin) — Only if you hit Flutter/RN background limits. AI writes Swift/Kotlin excellently now.

    Seastead Server (Edge)

    • Signal K Server (Node.js) on Raspberry Pi CM4 / Jetson / Intel NUC.
    • Custom Plugin (TypeScript/JS): Handles BLE Mesh (via noble / bleno or bluez DBus), MOB State Machine, Thruster API.
    • Python (FastAPI) alternative if heavy ML (drift prediction) needed.

    BLE Mesh Nodes (3-4 per boat)

    • Hardware: ESP32-C3 / nRF52840 (XIAO, Adafruit Feather) — $5-$15 each.
    • Firmware: Zephyr RTOS or ESP-IDF (C). AI writes C well for simple GATT servers.
    • Role: GATT Peripheral (Advertise "Seastead_Node_1"). Pipe RSSI/Connection events to Server via UART/WiFi/Thread.

    Thruster Interface

    • Signal K steering/autopilot or propulsion/thruster/* paths.
    • Your RIM drives likely take CANopen / EtherCAT / Serial. Need a small gateway (Pi Pico / ESP32) to translate Signal K → Drive Protocol.

    AI Prompting Strategy (Cursor / Claude Code)

    # Example Prompt for Cursor Composer (Ctrl+I)
    
    "Create a Flutter app 'VirtualLifeline' targeting iOS/Android.
    Target SDK: Flutter 3.22+, Dart 3.4+.
    Core Requirement: Maintain a persistent BLE GATT connection to a peripheral 
    with Service UUID 'seastead-mob-service' in the BACKGROUND indefinitely.
    
    Files to generate:
    1. `pubspec.yaml` with: flutter_reactive_ble, permission_handler, 
       android_foreground_service, background_fetch, workmanager.
    2. `ios/Runner/Info.plist` keys: UIBackgroundModes (bluetooth-central, location), 
       NSBluetoothAlwaysUsageDescription, NSLocationAlwaysAndWhenInUseUsageDescription.
    3. `android/app/src/main/AndroidManifest.xml`: 
       Foreground Service type 'connectedDevice', BLUETOOTH_CONNECT/SCAN permissions.
    4. `lib/ble/ble_manager.dart`: Singleton managing connection state machine:
       - Scan -> Connect -> Discover Services -> Enable Notifications (Heartbeat Char).
       - On Disconnect: Immediate Reconnect + Exponential Backoff.
       - Exposes Stream (Nominal, Degraded, Alarm, ConfirmedMOB).
    5. `lib/ui/main_screen.dart`: 
       - Start/Stop Service Button.
       - Shows RSSI, Battery %, Connection State.
       - 'High Risk Mode' Toggle (enables Accelerometer 50Hz stream).
    6. `lib/services/foreground_service.dart`: 
       - Android: startForeground with Notification Channel 'MOB_MONITORING'.
       - iOS: Relies on Bluetooth Central Background Mode (no notification needed).
    7. Unit tests for State Machine logic (mock BLE)."

    Where AI Will Struggle (Human Required)

    1. iOS Background Bluetooth Debugging: App works on Simulator/Dev build, dies 3 mins after TestFlight/App Store install. Entitlements/Provisioning profile issues. Requires physical device + Console.app logs.
    2. Android Vendor Battery Optimizations: Xiaomi/Samsung/OnePlus kill Foreground Services despite "Unrestricted" setting. Requires device-specific "Auto-start" / "Background popup" intent hacks.
    3. BLE Mesh Routing: Phone connects to Node A. Walks to Node B. Handover logic (disconnect A -> connect B) without triggering MOB alarm.
    4. Thruster Safety Logic: "Auto-Stop" code must be formally verified / fail-safe (watchdog). If Server crashes, thrusters must NOT ramp to 100%.

    9. Recommendations & Implementation Roadmap

    Phase 0: Safety First (Week 1-2) — Hardware Beacons

    Don't wait for software. Buy 10x nRF52840 Dongles (MakerDiary / Adafruit) or M5Stack Atom Lite + Base. Flash standard eddystone / ibeacon or custom GATT firmware. Hand out to crew TODAY. Integrate detection into existing Chartplotter (Raymarine/B&G/Garmin support generic BLE MOB tags now) or a simple Pi + Signal K script. This saves lives *now*.

    Phase 1: The "Virtual Lifeline" MVP (Month 1-2)

    1. Server: Signal K on Raspberry Pi 5. Plugin: signalk-mob-ble.
    2. Nodes: 4x ESP32-C3 (Powered by Ship 12V/24V via USB-C PD). Firmware: GATT Server advertising "Seastead_Node_[1-4]". UART/TCP to Pi.
    3. App (Flutter): Foreground Service + BLE Central. Heartbeat 1s. Alarm at 5s loss. Logs GPS/Time to Server.
    4. Integration: Signal K → Your Thruster Gateway (CAN/Serial) → "MOB Stop" Command.

    Phase 2: Hardening & UX (Month 3-4)

    Phase 3: Community & Open Source (Month 6+)

    Critical "Gotcha" Checklist for Your Seastead Build