Inspiration
Heat illness cases at Singapore's public hospital emergency departments rose from 280 in 2024 to 398 in 2025, and 1 in 5 citizens is now 65 or older. The national heatwave plan readies 300+ cooling centres, but the people who actually check on seniors (outreach teams and Active Ageing Centres) still have no next-day, block-by-block plan. We picked DAISI problem statement B1, Urban heat risk mapping for vulnerable communities, and asked: what decision does a coordinator need to make tonight for tomorrow's heat?
What it does
Every evening HeatGuard turns tomorrow's heat forecast into two plans:
- Outreach planner: ranks neighbourhoods by a transparent Heat Risk Score (forecast heat stress × senior counts, older and rental flats, people living alone, access to cool places), assigns teams to the top areas, and gives each team a block-by-block visit order on a 2D/3D map.
- Centre coordinator: checks an Active Ageing Centre's schedule against the hourly forecast and suggests which activities to keep, adjust or move, for staff to approve.
An AI agent drafts the evening plan from the same data; every fact it uses is checked against tool output, and nothing is sent without staff approval.
How we built it
- Data: NEA heat stress (WBGT), air temperature and humidity from data.gov.sg; Open-Meteo hourly forecasts; Census 2020 seniors; HDB block and footprint data; URA subzones; Landsat surface heat; community clubs and libraries as cool places.
- Databricks: a nightly Lakeflow job pulls live NEA readings; Auto Loader ingests files into Delta bronze → silver → gold via a Lakeflow pipeline with data-quality expectations; Unity Catalog governs the tables and tracks lineage; MLflow tracks the model against a "same as today" baseline; a Databricks App serves the planner; Foundation Model APIs (GPT-OSS 120B, Llama 4 Maverick) power the planning agent.
- Model: a physics heat-stress formula (Liljegren WBGT) from forecast weather, corrected per station, then a gradient-boosted classifier with isotonic calibration predicts tomorrow's Low / Elevated / High risk.
- Front end: a static web app with deck.gl maps (2D choropleth and 3D buildings).
Results so far
On held-out Mar–May 2026 data the model caught 26 of 37 high-heat afternoons a day ahead (70%), versus 7 (19%) for "tomorrow repeats today". It is deliberately sensitive: more alerts, lower precision (8% vs 18%), and the sample is small.
Challenges
- Few high-heat days to learn from. We added a reconstruction of 2024 from NEA met-station readings as soft labels to give the model more examples.
- Free Edition quotas. Exceeding compute locked our workspace for a day, so we develop on samples, log every run and stop idle resources.
- Station resolution. WBGT is measured at ~30 stations, so neighbourhood risk inherits its nearest station's forecast; we say so on screen.
What we learned
Combining datasets was the bulk of the work. NEA weather stations, Census age data, HDB blocks and Landsat satellite images all come in different formats and map units, so we learned to clean them, match them to the same neighbourhoods, and train a forecast model on the combined data. We also learned to run the whole pipeline on Databricks: a nightly job pulls the data, Delta tables clean it step by step, MLflow tracks every model we try, and an app shows the results.
What's next (build sprint, 12–26 Oct)
Rainfall and PM2.5 feeds, a Genie space for planners, nightly agent drafts, more training data, and a pilot with an Active Ageing Centre. The public prototype currently runs on a saved 2 Oct 2026 data snapshot; live feeds come in the sprint. Also a bunch of further development on the model.
Data: contains information from data.gov.sg accessed under the Singapore Open Data Licence; Open-Meteo (CC BY 4.0); USGS Landsat.
Built by Rohan Kulshrestha, Kieran Ho and Aresh Kumanan.
Built With
- auto-loader
- data.gov.sg
- databricks
- databricks-apps
- databricks-foundation-model-apis
- deck.gl
- delta-lake
- fastapi
- javascript
- lakeflow
- landsat
- mlflow
- open-meteo
- pandas
- playwright
- python
- scikit-learn
- sql
- unity-catalog
- vercel
Log in or sign up for Devpost to join the conversation.