Skip to Main Content

flood-triage

Built at Meta Global AI Developer Hackathon · Oct 26, 2026 · Remote

flood-triage — Demo video

Tagline: Ranks citizen flood photos worst-first with Meta's open-weight Muse Spark Open, and says "can't tell" instead of guessing. Problem: Every monsoon, Indian civic flood portals (for example Gurugram's) ask citizens to send photos and guess the water depth themselves. Ward staff get hundreds of photos and guesses with no fast way to decide which street to look at first. What it does: flood-triage reads each photo with Muse Spark Open (Meta, open weights) and gives a flood level relative to vehicle parts (L0 below tyre to L4 above windows) or "can't tell", with evidence: where the vehicle is, where the waterline touches it, and three independent readings. A triage agent sorts reports worst-first on a map, checks each citizen's own estimate against the photo, flags likely duplicates, and drafts a short note for the ward officer. It is decision support for a human, not a warning system and not a depth measurement. Results (STURM-FloodDepth test split, 340 crops, all tuning on validation, test scored once): CLIP baseline macro-F1 0.619, 29 photos off by 2+ levels; Hybrid with Spark 0.647, 17 off by 2+ levels; Spark few-shot alone 0.603, only 5 off by 2+ levels but reads about one level low. Leak check: 232/340 official test crops share a source photo with train/val; on a leak-free grouped baseline (0.580, 35 gross errors) the same hybrid rule scores 0.633 with 17 gross errors. Built with: Python, Muse Spark Open on Baseten, OpenCLIP, scikit-learn, Gradio, Plotly, matplotlib. Limitations: levels relative to vehicles, not centimetres; vehicle sizes vary; tested mostly on car photos; demo locations and citizen estimates synthetic; ~15 s per few-shot call. What I built during the hackathon: everything in the repo (31 Oct to 4 Nov 2026). Note: video narration is an AI-generated voice (ElevenLabs) reading my script; every screen is the real app, code and results. f

Team