# SolSpot: An Open Model Scores the Sky, So You Can Close the Screen 🌿

> Source: <https://dev.to/yadneshteli/solspot-an-open-model-scores-the-sky-so-you-can-close-the-screen-33ip>
> Published: 2026-10-11 06:20:10+00:00

*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass](https://dev.to/challenges/hacktoberfest-week1-2026-10-05)*

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](https://github.com/YadneshTeli/Solspot))*

``` php
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:

``` python
from tabpfn import TabPFNRegressor

# Zero-shot tabular evaluation across hourly atmospheric vectors
model = TabPFNRegressor(device="cpu", n_estimators=4)
model.fit(X_circadian_calibration, y_wellness_scores)

# Predict circadian daylight score curve for the entire day
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](https://dev.to/agent_sessions/building-solspot-anti-burnout-natural-light-optimizer-with-tabpfn-and-gemma-2-zc42sg))*
