Inspiration

In 2023, the Maui wildfire killed more than 100 people, the deadliest U.S. wildfire in a century. Every cell site in West Maui was out of service, and police and fire radios were on separate channels. That communication breakdown contributed to blocked evacuation roads.

This is not an isolated incident. After Hurricane Maria in 2017, 95.2% of Puerto Rico's cell sites were knocked out of service. Across the world, especially in developing countries, network outages cripple first response when it matters most.

Today's alternatives each fall short:

  • Carrier responder networks use the same towers that fail.
  • Portable towers take days to arrive.
  • Satellite SOS needs a newer phone and a clear view of the sky.
  • Mesh apps need special hardware or an app, and none connect to dispatch.

To solve this, we built net0: an off-grid emergency system that lets anyone send an SOS without cell service or an app, and uses AI agents to process reports, communicate with civilians, and dispatch first responders instantly.

What it does

net0 is an off-grid emergency system: low-cost ESP32 nodes relay SOS messages with no cell service, no internet, and no app, into an AI dispatch dashboard powered by Gemini.

  1. Connect: a civilian joins any nearby net0 node, and the SOS page opens automatically.
  2. Report: they tap the emergency type and how many people need help. GPS is attached.
  3. Relay: the SOS hops node to node until it reaches the command post, and the phone shows SOS DELIVERED.
  4. Triage: Gemini summarizes the report, assigns priority, and identifies the services needed.
  5. Respond: responders dispatch and message the civilian back through the mesh.

Features

For civilians

  • No app, no signal: any phone's browser works.
  • One-tap SOS with automatic GPS.
  • Delivery confirmation: SOS SENT changes to SOS DELIVERED.
  • Two-way messaging: updates like "Team is 5 min out, stay put."

For first responders

  • AI priority queue: Gemini summary, priority from 1 to 5, and required services (Fire, EMS, and so on).
  • Live map: every report appears as a GPS pin.
  • AI clusters and heat map: related reports are grouped to show area-wide problems.
  • Manual dispatch: select incidents, assign resources, draw routes, and generate a dispatch report.
  • Agent Mode: a Gemini dispatch agent handles hundreds of reports at once, assigning resources, planning routes, and drafting civilian check-ins. Responders approve every action.
  • Works offline: reports are saved and shown even if the AI is unreachable.

How we built it

Pipeline: Phone → access node → relay nodes (ESP-NOW) → gateway node → USB serial → FastAPI + SQLite → Gemini → React dashboard

Hardware

  • ESP32 DevKit boards (x6): access, relay, and gateway nodes.
  • Wall power (for now): each node plugs into a standard USB adapter.
  • Command-post laptop: runs the backend and dashboard.

Mesh firmware (C++, Arduino, PlatformIO)

  • Access nodes host a local hotspot and a captive portal (the auto-opening sign-in page) served from flash memory.
  • ESP-NOW v2 sends messages directly board-to-board with no router.
  • Flooding works like passing a note across a crowded room: every node hands the message to every neighbor until it reaches the command post, so one dead node doesn't stop it.
  • Reliability comes from message IDs, a hop limit (TTL), duplicate suppression, and acknowledgments that trigger DELIVERED.

Backend: Python and FastAPI read the gateway's serial stream and save each raw report to SQLite before AI touches it. Server-Sent Events push live updates to the dashboard.

AI (Gemini API): structured output turns messy SOS text into clean JSON the dashboard can sort and map:

{ "priority": 1, "category": "Trapped", "people_count": 2,
  "services": ["Fire", "EMS"],
  "summary": "2 trapped on 3rd floor, 1 injured" }

Gemini also powers clustering and the Agent Mode dispatch workflow.

Frontend: React, TypeScript, Vite, and Tailwind, with Leaflet for the map, clusters, heat map, and routes.

Challenges we ran into

  • One radio, two jobs: The hotspot and ESP-NOW share the ESP32's single radio, so they must use the same channel. A node on the wrong channel drops messages without any error. We locked every board to channel 6 and had each one print its channel at boot, so mismatches were easy to spot.
  • GPS through a captive portal: Browsers only share location on https:// pages, and the Wi-Fi sign-in popup never asks for location. So each node also runs a small HTTPS server with a self-signed certificate. The popup tells users to open that secure page in their browser, where we read their phone's GPS, which works without internet. If GPS fails, they can still send the report without a location.
  • Flooding floods: rebroadcasting created duplicates and loops until we added message IDs, TTL, and deduplication.
  • AI as a dependency: we designed the pipeline so the dashboard stays useful with no internet.

Accomplishments that we're proud of

  • A phone in Airplane Mode sends an SOS across 7 hops and it appears on the dashboard in ~5 seconds.
  • Two-way messaging with zero cell service.
  • An AI dispatch agent that scales to hundreds of reports while keeping humans in control.
  • A Georgia Tech Police Officer Bidgood told us: "Communication issues can lead to mistakes with dispatch. I can see this being very useful in these situations."

What's next for net0

  • Pilot with first responders such as GTPD and local emergency management.
  • LoRa radios so each node covers kilometers instead of meters. By our estimate, just 15 LoRa nodes could cover all of Maui.
  • Independent battery packs so nodes keep running when the power grid goes down.
  • AI-planned node placement before disasters hit.
  • Fully offline AI using small local models at the command post.
  • Multilingual and accessibility support.

FAQ

Do civilians need an app or cell service? No. Any phone with a browser works. Civilians join a nearby net0 node, and the SOS page opens automatically, even in Airplane Mode.

Why not just use satellite SOS on iPhones? Satellite SOS needs a newer phone and a clear view of the sky, and it sends messages one at a time. net0 works with any phone's browser and gives responders a shared live map.

What happens if a node goes down? The message takes another path. Every node rebroadcasts to its neighbors, so one dead node doesn't stop an SOS from reaching the command post.

What powers the nodes? Right now, standard wall power through USB. Each ESP32 uses very little power, so our next step is small USB battery packs that keep nodes running when the power grid goes down.

What if the command post loses internet? Reports still arrive, get saved, and show on the dashboard. Only the Gemini features (triage, clustering, Agent Mode) need internet, and they catch up once the connection returns. In the future, smaller LLM models can be stored locally with the dashboard.

How far does each node reach? About 30 meters today. With LoRa radios, each node could reach several kilometers, about 200 times farther. Maui is about 1,880 km², so roughly 15 nodes (each covering about a 6 km radius) could blanket the island.

How much does it cost? Each node is just an ESP32 board, roughly $10 per node. That's cheap enough to pre-place across a campus or city before disaster hits.

Sponsor Tracks

A Marina's Mission (Social Good), presented by Aramco Climate change is making wildfires and hurricanes more frequent and more destructive. When they knock out power and cell networks, net0 keeps communities connected to help, using low-cost, low-power hardware that can be pre-placed before disaster hits.

Meta: Bringing People Closer Together with AI

  • Who it's for: civilians cut off during disasters, and the first responders trying to reach them.
  • How it strengthens connection: when every tower is down, net0 is the only line between a trapped family and the team coming to help. Two-way messaging means civilians aren't just sending an SOS into the void; they hear back.
  • Why AI is essential: in a major disaster, hundreds of reports arrive at once. No dispatcher can read, sort, and prioritize them fast enough. Gemini turns that flood into a prioritized, mapped, actionable plan in seconds.

Best Use of Gemini API Gemini runs through all of net0: structured triage of every SOS, clustering reports into area-wide incidents, and Agent Mode, a dispatch agent that plans routes, assigns resources, and drafts civilian check-ins for human approval.

Built With

Share this project:

Updates

Submission history