Weatherglass
A sky and weather lab: the sky gradient, rain, snow, fog, lightning and stars from Tides, tuned by eye and published as sky.json.
Reduce motion is on, so rain, snow and lightning are off and stars and fog stand still, as in the app.
How the sky works
The sky is a four-stop gradient down the screen. The top two stops carry the weather and the time of day; the bottom two stay dark in every combination, so light text reads over all of them. It comes from Tides, Gerry’s tide app, where it sits behind every station.
Time of day blends. The four skies (dawn, day, dusk and night) are keyframes, not bands. Each coloured sky holds for 30 minutes either side of sunrise or sunset and takes an hour to arrive and an hour to leave, so dawn and dusk get a full hour at strength. That’s a look, not astronomy: civil twilight is too short to show them off. Drag the time of day slowly through sunrise to watch it.
Weather picks the row and doesn’t blend. A change of weather fades the gradient over a second. Rain, snow, fog and lightning taper over three seconds instead: each drop and flake decides at the top of its fall whether it falls, so rain stopping lets the last drops land, and snow arriving falls in from the top. Stars come out with the night and go out one at a time when cloud rolls in.
Every particle is a function of its index and the clock, through the same noise as the app, so particle 12 is in the same place here as on the phone at the same instant. Nothing is stored per frame. Under reduced motion nothing moves: stars and fog are drawn still, and rain, snow and lightning are left off, because a frozen raindrop is a scratch on the screen.
Intensity is the lab’s own control. The app only ever shows an effect at full strength or on its way in or out.
The palette
| Weather | dawn | day | dusk | night |
|---|---|---|---|---|
| clear | ||||
| cloudy | ||||
| rain | ||||
| snow |
WeatherKit’s conditions
| Palette row | Effect | Lightning | WeatherKit conditions |
|---|---|---|---|
| clear | — | — | clear, frigid, hot, mostlyClear |
| cloudy | fog | — | blowingDust, foggy, haze, smoky |
| cloudy | — | — | breezy, cloudy, mostlyCloudy, partlyCloudy, windy |
| rain | heavy-rain | — | heavyRain, hurricane, tropicalStorm |
| rain | heavy-rain | yes | strongStorms, thunderstorms |
| rain | light-rain | — | drizzle, sunShowers |
| rain | rain | — | rain |
| rain | rain | yes | isolatedThunderstorms, scatteredThunderstorms |
| snow | light-rain | — | freezingDrizzle |
| snow | rain | — | freezingRain |
| snow | snow | — | blizzard, blowingSnow, flurries, hail, heavySnow, sleet, snow, sunFlurries, wintryMix |
Using it
sky.json is the master copy of every number on this page: the palette, the blend timing, the transitions, each effect’s counts, speeds and opacities, and the table above. An app copies it in with a task, the way Tides gets its tide constituents, and keeps its own renderer. A change tuned here reaches the apps as a JSON update. The TypeScript behind this page is the reference renderer.
Weatherglass • sky.json • © 2026 Gerry Shaw