Inspiration
Singapore has covered linkways across its estates, yet nobody can see at a glance how much of a senior's walk is still in the sun, or how hot it is right now. Live weather maps like checkweather.sg show how much NEA's open weather feeds can reveal about the city. We wanted the same for heat and shade, built for the planners who decide where the next shelter or tree goes. With Singapore turning super-aged in 2026 and 2025 being its joint 8th warmest year on record, heat resilience planning matters now more than ever.
What it does
HeatGuard is a heat-risk planning platform for town council, HDB and NParks planners, with a live Singapore map coloured by heat risk, as well as pilot town pathways ranked by intervention priority.
- Heat Risk Score per subzone: Combines live heat-stress (WBGT), senior concentration (weighted towards older blocks and rental flats) and built-environment vulnerability.
- Heat exposure per pathway in our 2 pilot towns (AMK and Toa Payoh): Combines live/local WBGT and % of sun-exposed metres on the walk to the nearest Active Ageing Centre.
- Shade simulator: add a covered linkway or trees and see how much heat exposure drops for that particular pathway.
- Route exposure check: from any HDB postal code to an Active Ageing Centre, bus stop or any map point, compare the shortest and most shaded walks to find where missing shade forces detours.
- 24-hour timeline: replay the past day's heat, shadows, wind and rain radar.
- [Stretch goals] Genie Agent: planners ask questions in plain English.
How we built it
We will build it end to end on Databricks Free Edition. A scheduled Lakeflow job pulls NEA's real-time weather APIs on data.gov.sg every 15 minutes and merges only new readings into Delta tables. One Lakeflow pipeline joins them with HDB, SingStat, LTA, NParks and MOH data on Databricks' built-in H3 grid. Hourly building and tree shadows are precomputed once a day as 2D projections. MLflow compares spatial interpolation of the 15 WBGT stations with a microclimate correction model, plus a next-day forecast, all batch-scored into Gold tables. One Databricks App serves the 3D map, timeline, simulator and route exposure check, with an AI/BI dashboard and Genie on top. Unity Catalog governs everything.
Challenges we ran into
Only 15 WBGT stations cover the island, too few to learn street-level heat directly. We interpolate between stations and train a model only to correct that baseline, using building density, tree canopy and distance to water, validated by leaving one station out at a time. Free Edition limits outbound internet to trusted domains. We test data.gov.sg access first; if it's blocked, a scheduled GitHub Action lands the raw readings in a Unity Catalog volume and Auto Loader ingests them. Open data has no block-level count of seniors. We spread SingStat's June 2025 subzone figures across HDB blocks, weighted towards older blocks and rental flats, and test how much the rankings change when the weights change. OpenStreetMap misses many paths between HDB blocks, including void decks. We combine it with NParks tracks, snap covered linkways onto the network, and add void-deck links between neighbouring blocks, clearly flagged as assumptions. Shadows for every block and hour are heavy on Free Edition, so we precompute them once a day as 2D projections and go block-level in two pilot towns first.
Accomplishments that we're proud of
Traced every dataset to its root publisher and confirmed it is free to use. Found NEA's official radar feed on data.gov.sg instead of scraping radar images. Designed an incremental refresh that never misses late or irregular readings. Built the risk score on NEA's official heat-stress levels instead of made-up thresholds. Fitted the whole architecture inside Free Edition's limits: shade precomputed daily, only weather updated live.
What we learned
Air temperature alone understates danger. WBGT combines temperature, humidity, wind and sun, and NEA uses it for heat advisories. Fifteen stations can't be stretched into street-level predictions without a clear baseline and honest validation. Heat exposure depends on the walk, not just the area: neighbouring blocks can face very different amounts of sun. Open data has gaps, like block-level senior counts, that need clearly labelled estimates.
What's next for HeatGuard
Block-level coverage for every HDB town. Automated shade-priority reports for town council budget planning. A resident-facing companion with heat alerts and shaded routes on mobile. Airflow (CFD) simulation of wind between buildings for the highest-risk estates. A pilot with a town council to plan real shade investments.
Built With
- ai/bi
- databricks
- deltalake
- lakeflow
- mlflow
- pyspark
- python

Log in or sign up for Devpost to join the conversation.