Back to News & Insights
Productivity October 9, 2026 Β· 5 min read

PLOT 🌿 - TabPFN on Real Frost Data Tells You to Touch Grass

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass 🌿 ...

PLOT 🌿 - TabPFN on Real Frost Data Tells You to Touch Grass

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass 🌿

You pick a place (or share your location πŸ“). Real weather loads 🌦️. TabPFN, an open tabular foundation model 🧠, reads your day like a row in a frost table and answers:

Then it hands you three concrete steps and expects you to leave. The screen's job is under a minute. ⏱️

| | | |---|---| | πŸš€ Live demo | plot-touch-grass.onrender.com | | πŸ’» Source | github.com/PranjalManhgaye/plot-touch-grass |

| Field | Value | |-------|-------| | 🌿 Product | PLOT - outdoor action signal + checklist | | 🧠 Brain | TabPFN (tabpfn-client) | | πŸ“Š Training data | 30,684 real daily rows, 12 US cities, 2018-2024 | | 🌦️ Weather | Open-Meteo ERA5 reanalysis + live forecast | | ☁️ Hosting | Render free tier | | ⚑ Stack | FastAPI, static UI, no chat layer |

πŸ‘₯ Who it's for: anyone with a yard, balcony, or park nearby who overthinks the forecast and under-leaves the house.

| City | Climate | Rows | |------|---------|------| | 🌲 Portland, OR | Cool marine | ~2,557 | | 🌧️ Seattle, WA | Marine west coast | ~2,557 | | πŸ™οΈ Chicago, IL | Continental | ~2,557 | | ❄️ Minneapolis, MN | Upper Midwest | ~2,557 | | ⛰️ Denver, CO | High plains | ~2,557 | | πŸ—½ New York, NY | Humid subtropical | ~2,557 | | 🦞 Boston, MA | Coastal temperate | ~2,557 | | 🌳 Atlanta, GA | Warm humid | ~2,557 | | 🀠 Austin, TX | Warm | ~2,557 | | β˜€οΈ Phoenix, AZ | Desert | ~2,557 | | 🌴 Miami, FL | Tropical humid | ~2,557 | | 🌊 Los Angeles, CA | Mediterranean | ~2,557 |

| Action | Meaning | Share | |--------|---------|-------| | 🚢 walk | Good to be outside, not a planting day | ~57% | | ⏸️ wait | Frost risk or bad conditions, prep indoors | ~30% | | 🌿 garden | Frost window + workable soil, hands in dirt | ~13% |

Labels come from transparent horticulture heuristics in backend/labels.py (frost-free days, precip, wind bounds). TabPFN learns patterns in the table, not chat prose. I'm upfront about that. πŸ“

Pulls daily ERA5 weather from Open-Meteo for every city above. Regeneratable. Documented in data/DATASOURCES.md.

GET /api/weather?lat=&lon= returns today's conditions + frost lag. 🌐 Primary: Open-Meteo forecast with pastdays=92 for frost history πŸ›‘οΈ Fallback: nearest city's real ERA5 row for today's calendar day (when API rate-limits on free hosting)

No chat bubble. No purple gradients. One brand (PLOT), one CTA, one result card. ✨ πŸ™οΈ City presets across 12 climates πŸ“ Use my location (browser geolocation) πŸ”„ Refresh live weather βœ… Checklist that ends at the door

render.yaml blueprint, health check at /api/healthz, TABPFNTOKEN in env (never committed). πŸ”’

Frost and planting decisions are tabular πŸ“‹. They belong in a spreadsheet, not a chat thread. πŸ’¬βŒ

| πŸ”’ Closed approach | 🌱 Open approach (PLOT) | |--------------------|-------------------------| | Garden API locks your coordinates to a vendor | Open-Meteo: free ERA5, no key | | Chat model guesses from prose | TabPFN: probabilities over features | | Can't explain why without prompt engineering | garden: 83%, wait: 9%, walk: 8% | | Per-token cost at scale | Tabular fit once, predict cheaply | | Model swap = rewrite the app | Swap TabPFN version, keep the CSV |

πŸ” Privacy: we don't store your location. Weather is fetched per request. Training table ships with the repo and is auditable.

πŸ•οΈ Offline path: the CSV + open model path means this could run on a laptop in the backcountry with cached rows. That's the Touch Grass future I want.

A closed chat API wouldn't know what to do with dayssincelastfrost: 208. TabPFN was built for exactly that column. 🎯

Want to discuss this further?

Book a free strategy call with our team to see how these insights apply to your specific business goals.

Book a consultation