Inspiration

On the night of 30 June 2025, cloudbursts hit Mandi district in Himachal Pradesh. In Syathi village, no report says any warning arrived. A family's dog woke them around midnight, and more than 60 people got out before the slope came down (The Tribune).

More than 500 people died in Himachal's 2023 monsoon (HP Govt PDNA), yet the state had just 1 of India's 338 CWC flood-forecasting stations (CWC 2023). And sending is not the same as being heard: in Nepal's September 2024 floods, over 4 million alert SMS went out and 250 people still died. We wanted AI that serves the last mile, from a forecast to a family that heard the warning and knows where to go.

What it does

Pukaar (पुकार, "the call") turns a flood forecast into a spoken Hindi warning on every phone in a village, and shows who actually heard it.

  1. Watch: every 15 minutes it reads rain and river forecasts for five villages in Mandi district. Transparent rules set the level, never a model.
  2. Approve: a district officer approves in one tap. If they don't answer, the next officer is asked.
  3. Call: Amazon Polly speaks the alert in Hindi to every registered phone on Telegram.
  4. Confirm: each person taps "मिल गया" (got it). Silent phones get the alert again.
  5. Act: the alert names the nearest open safe place and a walking route. Villagers report back by voice, photo or text, even offline, and are asked "Are you safe?" afterwards.

Five AI agents, each with a hard "never" list

Agent What it does Never
Drafting agent (Bedrock Nova, Strands) Writes the Hindi alert into a fixed template; a checker rejects any number or place not in the decision trace Set a level, pick recipients, send
Ask Pukaar analyst Answers officers with a chart and a map from read-only tools Set a level, pick recipients, send
Report agent Turns villagers' Hindi voice or text into a type, a severity and a place Mark a report verified
Guardrail screen (Bedrock Guardrails) Blocks prompt injection and masks phone numbers; caught a live attack on 11 Oct 2026 Delete a report
Watch agent Finds faulty gauges: stale, flat-lined, impossible jumps, drift Send anything

Every tool call passes a Cedar policy and is logged. If a model fails, a fixed Hindi template goes out, so the warning never depends on AI.

Try it

How we built it

Python and FastAPI on AWS, one SAM stack: EventBridge Scheduler (sweep), Lambda, Step Functions (one approval workflow per alert), DynamoDB, Bedrock Nova with Strands Agents, Bedrock Guardrails, Polly and Transcribe (hi-IN), AWS IoT Core (ESP32 river gauges), AppSync Events and Cognito. The frontend is a React and TypeScript offline PWA with a MapLibre/three.js 3D map on real Himalayan terrain.

The level, in two lines. Rain is checked against IMD's bands, and the river against each village's own 1984-2024 discharge percentiles:

$$ L = \max\left(L^{\text{rain}},\ L^{\text{river}},\ L^{\text{gauge}},\ L^{\text{reports}}\right) $$

If two sources agree, the level goes up by one. It rises at once, and drops only after 45 calm minutes. 561 automated tests, 77/77 live smoke checks, and zero accessibility violations.

Challenges we ran into

  • Testing a flood system without a flood: we replay real archived forecasts from 2023 and 2025 through the same live code, labelled REPLAY and never sent to real phones.
  • Global models miss cloudbursts: they missed the 2025 Mandi event. Instead of faking a hit, we let verified villager reports and gauges raise a level on their own.
  • Cheap phones and weak networks: offline queueing, small pages, and voice instead of text.

Accomplishments that we're proud of

  • Live on AWS, not a mockup: a drill alert went from approval to a real phone.
  • Up to 72 hours of warning before the July 2023 Beas flood peak in our back-test (Gohar), and at least 48 hours at Pandoh.
  • An honest comparison: none of the public sources for SACHET, IMD, CWC or Google Flood Hub mention spoken alerts, per-person confirmation, officer approval of each alert, or villager reports. Pukaar does all four, and plugs in beside them through CAP 1.2.

What we learned

The hard part of early warning isn't prediction. It's the last mile: a warning has to be heard, understood and confirmed. Voice beats text in low-literacy communities, and AI is most useful when code decides and AI only helps people act.

What's next for Pukaar (पुकार)

Our 24-hour finale plan:

  • Hours 0–8: a voice call with "press 1 to confirm" (Amazon Connect) for basic phones and people who can't read
  • Hours 8–16: AI vision that reads villagers' photos of a marked rock by the stream and turns them into a water level
  • Hours 16–24: SMS fallback, then a live drill on stage: forecast → approval → a judge's phone rings in Hindi

Built With

Share this project:

Updates

Submission history