Inspiration

In the first minutes of a flood, earthquake, or displacement event, requests for help do not arrive as neat database rows. They arrive as fragments: a multilingual SMS, a rushed hotline transcript, or a field note with a phone number buried in the middle. A response operator must quickly determine what is needed, how urgent it is, how many people are involved, where they are, and whether another team is already responding.

Many AI tools assume reliable connectivity and send sensitive report text to a cloud model. We asked a different question: what is the smallest useful intelligence layer that can still work when the cloud does not?

What it does

GroundSignal transforms an unstructured distress message into a structured, explainable case entirely inside the browser.

It:

classifies the request as rescue, medical, food & water, shelter, safety, or information;

extracts the people count, reported location, language, and vulnerable groups;

assigns a transparent risk score and shows the exact evidence behind every point;

protects phone numbers, emails, and common identity patterns before a dispatch note is displayed;

flags a likely duplicate using similarity across need, location, and normalized language;

recommends a next operational step while keeping assignment and resolution under human control;

persists the queue locally and exports it as CSV;

continues working after the first load through cache-on-use offline support.

The included Riverbend flood exercise is demo data, but it is not a mocked dashboard: every demo case is processed by the same live engine used for any text a judge enters.

How we built it

GroundSignal is a Next.js 16 and React 19 application written in TypeScript. The intelligence layer deliberately avoids remote APIs and model keys.

The browser trains a Multinomial Naive Bayes classifier with Laplace smoothing from multilingual humanitarian field phrases. Unicode tokenization and a domain alias lexicon normalize common English, Vietnamese, Spanish, and Hindi terms. A separate evidence-weighted risk engine exposes each urgency factor instead of returning an opaque number. Weighted Jaccard similarity clusters possible duplicates, and deterministic patterns protect PII.

The Trust Center runs a 12-phrase held-out evaluation in the browser and currently classifies 12/12 correctly. We clearly label this as a compact regression benchmark rather than a real-world safety-validation claim.

The operational UI is responsive, keyboard accessible, and intentionally working-surface-first: the first screen is the situation room, not a marketing page. Queue state uses localStorage, reports export to CSV, and a service worker caches the app after first use.

Main features

Real multilingual on-device classification

Explainable, factor-by-factor urgency scoring

PII-safe dispatch notes

People, location, language, and vulnerability extraction

Duplicate-report detection

Human-in-the-loop assignment and resolution workflow

Local persistence and CSV export

Built-in benchmark and honest model card

Offline-after-first-load resilience

Who it is built for

GroundSignal is designed for local response teams, school or community emergency coordinators, humanitarian volunteers, and NGOs that need a lightweight intake layer when bandwidth, privacy, or infrastructure is constrained.

Challenges we ran into

The hardest design problem was balancing urgency with accountability. A black-box “critical” label is fast but unsafe; a long analytical report is transparent but too slow. We solved this by separating need classification from risk scoring and exposing each risk factor with its exact weight.

Multilingual crisis text is also noisy and frequently code-switched. Instead of pretending to support every language, we built a visible normalization layer for four languages, disclose the limit in the product, and mark uncertain facts for verification.

Finally, we wanted a visually polished demo without hiding behind synthetic metrics. Every number on the situation-room screen is derived from the actual queue state, and the Trust Center computes its benchmark at runtime.

Accomplishments we are proud of

The entire critical intelligence path runs without an API call.

Judges can paste their own message and inspect the result immediately.

PII is visibly protected before dispatch.

The product communicates uncertainty and limitations instead of overclaiming.

The UI, model card, offline behavior, queue state, export, and benchmark form one coherent working product.

What we learned

Small, interpretable models can be more valuable than a large cloud model when reliability, latency, and privacy are part of the problem. We also learned that trustworthy AI is not a disclaimer added at the end: evidence, uncertainty, and human control have to shape the interface from the first screen.

What is next

Next we would validate the vocabulary and risk weights with humanitarian practitioners, add operator-corrected active learning, support signed offline incident bundles between devices, expand language coverage through community-maintained lexicons, and benchmark the workflow against real anonymized dispatch datasets.

Built With

Share this project:

Updates

Submission history