Inspiration
I was born and raised in Houston, and every summer I found myself thinking, “Wow, this place is hot.” At the same time, I watched more and more trees and vegetation give way to new construction.
Houston is growing fast, and I understand why the city needs room for more homes and development. But I believe we can make room for that growth while being more thoughtful about where we plant trees.
That is where CoolCanopy comes in, it is a tree planting planner for Houston, and it focuses on one question: "If the city can plant a certain number of trees, where should they go to cool the most people who need it most?"
What it does
CoolCanopy is different from other urban heat tools, who show just the HeatMap itself, this shows where the heat is, but it doesn't go that next step of showing what to do about it. CoolCanopy takes that next step by combining satellite heat measurements, tree cover, open ground, and census and vulnerability data into one view of the city. It learns how much tree canopy actually cools the ground, simulates what each possible new tree would do, and builds a planting plan that gets the most cooling out of a limited budget.
What you can do in the app
- See heat, canopy, canopy change, vulnerability or population on a map, with an optional 3D view where height shows how many people live there.
- Choose a plan size from 100 to 50,000 trees and watch the map update with where they go and who gets cooled.
- Focus on one council district or Super Neighborhood and plan only for that area.
- Compare all five strategies side by side.
- Open the chat planner and describe a plan in your own words.
- Play “Beat the algorithm”: place trees yourself and see whether you can out-cool the optimizer.
How we built it
We combined about 83 million raw records: Landsat surface temperature (2019–2024), NLCD tree canopy, Overture building and road outlines, Census population, the CDC Social Vulnerability Index, and Houston's council districts and Super Neighborhoods. We put it all onto 105,488 H3 hexagons and used spatial SQL to find about 1.22 million plantable spots.
A LightGBM model, constrained so trees can only cool, predicts surface heat (R² 0.865 on parts of the city it never saw). We used it to estimate the cooling from a tree at every site. An optimizer then places trees where they help most, and a Llama 4 Maverick agent turns plain-English requests into plans.
Databricks is what made this possible during a hackathon, all on Free Edition:
- A serverless Lakeflow Job runs the full 13-task pipeline, moving data through bronze, silver and gold Delta tables
- Databricks SQL's built-in H3 and spatial functions handled the geospatial work
- Unity Catalog keeps the tables, the model and the agent's tools in one governed schema
- MLflow tracks training runs, registers the model, and evaluates and traces the agent
- Foundation Model APIs host Llama 4 Maverick, and Unity Catalog functions serve as its tools
- Databricks Apps hosts the Streamlit dashboard, Genie answers plain-English data questions, and Asset Bundles deploy everything with one command
Challenges we ran into
The hardest part was getting satellite pixels, rasters, census polygons and millions of buildings to line up on one grid. Houston doesn't publish where trees can be planted, so we had to build that map ourselves. Our first model also looked better than it was, until spatial validation showed neighboring cells were leaking into the test set.
Accomplishments that we're proud of
The whole pipeline runs end to end on Databricks Free Edition, turning 83 million records into an app a planner could actually use. Putting vulnerable residents first reaches about 4 times as many of them as planting in the hottest spots.
What we learned
The hottest places in Houston are often industrial roofs and parking lots, so who lives under the heat matters as much as how hot it gets. Spatial data needs spatial validation, or a model will look better than it is. AI worked best translating requests into settings, while people decide the priorities.
What's next for CoolCanopy
We want to add real-world constraints like power lines, sidewalks and the city's street-tree inventory. We'd also like to model afternoon air temperature and how trees grow over time. Then we hope to pilot CoolCanopy with the city and bring it to other hot cities.
Built With
- databricks
- databricks-apps
- databricks-sql
- delta-lake
- foundation-model-apis
- genie
- lakeflow-jobs
- lightgbm
- llama-4-maverick
- mlflow
- python
- scikit-learn
- sql
- statsmodels
- streamlit
- unity-catalog