The gap this fills

Every app that tells you to go outside stops at telling you to go outside.

None of them know which green space near you is any good, and none of them check whether it worked. "Spend 20 minutes in nature" is advice with no map and no feedback. You are supposed to take it on faith and keep taking it.

Canopy does the two things that advice leaves out. It finds the real green space, and it tells you afterwards whether going there did anything for you.

It uses real places, not a list somebody typed

Canopy queries the OpenStreetMap Overpass API live, for wherever you actually are. Parks, woods, nature reserves, commons, the scruffy bit by the river that nobody signposts. These are real coordinates you can walk to today, not a curated demo set of famous parks.

That decision is why the honest limits section below exists, and it is worth more than a tidy fake dataset would have been.

Then it checks whether it worked

You log how you feel before and after. Over a few weeks Canopy compares your visits against the days you didn't go, and reports the difference.

Two rules govern that number:

It is allowed to be zero. A tool that can only confirm that nature helps you is not measuring anything, it is agreeing with itself.

Every claim carries its sample size. Three visits and thirty visits do not get to look the same on screen.

No model decides anything

There is no LLM anywhere in the decision path. Every score, comparison and finding is arithmetic you can follow by hand, and the same diary always produces the same answer. 88 tests, all offline, all deterministic, about two seconds.

That matters here more than it sounds. A recommendation about where to spend your afternoon should be traceable to a formula and a data source, not to a model's weights.

The bug that stayed in

Building this I found that OpenStreetMap tags Pioneer Courthouse in Portland as boundary=protected_area. By the letter of the tag it is a protected area. It is also a courthouse.

Heritage sites carry the same tag that nature reserves do. Telling them apart properly needs the IUCN protect_class tag, and a large share of real-world entries simply do not have it.

I could have hardcoded an exclusion list and made the demo look cleaner. I left it, and Canopy says on screen when a place's classification is uncertain instead of pretending to a confidence the data does not support.

Open data can tell you a green space exists. It cannot always tell you what kind. Saying so is the difference between a tool you can trust and a tool that looks trustworthy.

Honest limits

  • One person's diary. Correlation over a handful of weeks, not a clinical trial.
  • How you feel is self-reported, and mood moves for reasons that have nothing to do with a park.
  • Overpass is a free shared endpoint. It times out. Canopy retries and degrades rather than failing, but it can be slow.
  • Classification quality is only as good as the OSM tags in your area, and that varies enormously by country.

Built With

Share this project:

Updates