This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass
Remote workers, software engineers, and creators spend an average of 9+ hours a day bathed in unnatural 6500K LED screen glare. This locks our vision at a fixed 24-inch focal length, suppresses natural melatonin timing, and triggers chronic burnout.
Most "wellness apps" make this worse by demanding more screen time: logging calories, reviewing biometric graphs, or scrolling meditation libraries.
SolSpot is built around one core philosophy: Make the screen the shortest part of the experience.
SolSpot is an anti-burnout natural light optimizer. Instead of keeping you glued to a monitor, it evaluates hyper-local atmospheric conditions (solar irradiance, blue-light ratio, UV risk, cloud cover, and wind chill) to discover your personal Peak 20-Minute "Touch Grass" Window of the day.
When your window arrives:
The complete source code is open source and hosted on GitHub:
Hacktoberfest Open-Source AI Challenge: Week 1 — "Touch Grass" Submission
Tag: #hf26challenge
Target Prize Categories: Best Use of TabPFN (Prior Labs) ($200) & Best Use of Gemma (Google) ($200)
Remote workers, engineers, and creators spend an average of 9+ hours a day bathed in unnatural 6500K LED screen glare. This suppresses natural melatonin timing, elevates chronic stress, and leads to screen burnout.
Most health apps demand more screen time: tracking food, counting reps, or reading lengthy meditation guides.
SolSpot is designed with one core philosophy: Make the screen the shortest part of the experience.
SolSpot analyzes hyper-local atmospheric and solar data (GHI irradiance, direct blue-spectrum light, UV index, cloud filtering, and thermal indices) to pinpoint your personal Peak 20-minute "Touch Grass" Window of the day.
When your window arrives, SolSpot launches Grass Mode…
(Direct repository link: https://github.com/YadneshTeli/Solspot)
flowchart TD
User([👤 User]) -->|Opens App| UI[🖥️ SolSpot Web UI\nVanilla CSS Glassmorphism]
UI -->|Local Coordinates| API[⚡ FastAPI Backend on Render]
API -->|Free Solar Metrics| OM[☀️ Open-Meteo API\nGHI, UV, Temp, Clouds]
OM -->|Hourly Atmospheric Vectors| TabPFN[🧠 Prior Labs TabPFN\nZero-Shot Tabular Transformer]
TabPFN -->|Circadian Curve| Best[🌟 Peak 20-Min Window]
Best -->|Weather Context| Gemma[💎 Google Gemma 2 2B-IT\nSensory Micro-Quest Engine]
Gemma --> UI
UI -->|Engage Grass Mode| Lock[🌿 20-Min Fullscreen Horizon Timer]
Lock -->|Local Session Log| Storage[(🔒 100% Private LocalStorage)]
SolSpot is powered by two complementary open-source AI pillars:
Atmospheric chronobiology is tabular data: solar zenith angle, Global Horizontal Irradiance ($W/m^2$), UVB index, cloud cover %, ambient temperature, and wind speed.
Instead of trying to force an LLM to predict tabular curves or manually tuning hyperparameters across classic tree models, we used Prior Labs' TabPFN (tabpfn>=9.1.0). TabPFN is a transformer pretrained on synthetic tabular datasets that performs instantaneous zero-shot in-context learning. We feed hourly atmospheric vectors directly into TabPFNRegressor to evaluate circadian daylight scores across the day in milliseconds:
from tabpfn import TabPFNRegressor
model = TabPFNRegressor(device="cpu", n_estimators=4)
model.fit(X_circadian_calibration, y_wellness_scores)
hourly_scores = model.predict(todays_hourly_matrix)
Once the window is computed, Google's Gemma 2 generates concise, grounding outdoor prompts calibrated to the temperature, cloud cover, and solar angle. It specifically prompts for non-visual senses (smell, skin thermal perception, distant horizon eye relaxation) and explicitly directs the user to close or pocket the screen.
Solar radiation and UV data are fetched from Open-Meteo's open solar API without API keys or tracking IDs. All streak progress is persisted in local storage.
In a world where big-tech wellness apps monetize your GPS tracking and charge subscription fees for generic advice, an open-source approach fundamentally changes the paradigm:
This project was planned, scaffolded, and built with AI pair programming using DevRelay. You can explore the full session transcript here:
(Direct session link: https://dev.to/agent_sessions/building-solspot-anti-burnout-natural-light-optimizer-with-tabpfn-and-gemma-2-zc42sg)