Work / WeatherComfort

WeatherComfort

Partial 2026

A weather app that shows what the weather will feel like to you, starring a cartoon commuter who reacts to it in 3D.

Recorded from the running app on a throwaway profile with the live forecast for its default city; the scene lab loading and scene-change waits are shortened.

What it does

The home screen is a real-time 3D street where Gus, a stylised London commuter, walks on and reacts to how you will feel in today's outfit: sweating, freezing into an ice statue, losing an umbrella to the wind. Behind him are the full forecast, a ten-second comfort log, and a personal model that learns whether you run hot or cold and turns that into practical advice on what to wear.

How it runs

  1. Open the app: Gus walks on into today's forecast for your place
  2. Read today's outfit card and the hour-by-hour feel for your commute
  3. Log how you actually feel, with what you are wearing and where you are
  4. The personal model updates and explains what it has learned
  5. Preview any weather, time of day and reaction in the scene lab

Rendering performance on a visible display and on phones is not yet measured.

How it works

A thermal comfort model scores each part of your day (the walk, the bus or tube, lunch outside) from temperature, humidity, wind, sun, activity and clothing. Every log you make is stored with the weather it happened in, and a small regularised learner adjusts your personal profile from them; insights are only shown once enough evidence supports them. The recommender searches only the garments you own. The 3D scene is procedural: a director picks a reaction for the conditions, plays it and walks Gus off before the set changes, and a scene lab lets you preview any environment, time of day and reaction.

Skills shown

Data engineering
Live Open-Meteo forecasts joined with personal comfort logs.
Databases & SQL
Logs are stored locally in node:sqlite.
AI, agents & ML
A regularised personal learner, tested by planting a known bias in fixture data and checking it is recovered.
Testing & QA
Vitest, with the outfit optimiser checked by brute force against its objective.
Frontend, 3D & graphics
A React Three Fiber 3D scene directed by the weather.

Worth knowing

  • The forecast is turned into how it will feel to you, hour by hour, for the parts of your day you actually spend outside or on transport.
  • The learner was tested by planting a known bias in fixture logs and checking it is recovered, with a negative control.
  • The outfit search is checked by brute force against the objective it optimises.
  • Weather comes from Open-Meteo with no key; your logs stay in a local SQLite database.