Why I'm not trying to compete with SkySight
SkySight is the best soaring forecast UI in the world, and I'm a paying user. So why am I building a soaring weather API? Different category. Here is the longer version.
Deep-dives on WRF/RASP optimisation, region launches, and the fields the API serves. Written for pilots, developers, and anyone curious about how a regional soaring forecast actually gets made.
Deep-dives into tuning WRF and RASP for soaring - physics, resolution, and validation.
New regions, domain design, and what a given geography means for soaring forecasts.
What every output field means - wstar, cloudbase, day rating, and more.
Case studies of apps, instruments and clubs built on the Convek API.
What shipped recently - monthly summaries of API, pipeline and site changes.
Longer-form notes on the soaring weather market and building a physics-heavy API.
SkySight is the best soaring forecast UI in the world, and I'm a paying user. So why am I building a soaring weather API? Different category. Here is the longer version.
Wasserkuppe, Hahnweide, Klippeneck, Hochries, Tegelberg - the largest soaring country in Europe at 4 km, four cycles a day, forecast fields as JSON.
Windy is the most-recognised weather brand in aviation, and yes it has a developer API. Here is what that API actually returns - and the bit of their pricing page worth knowing about.
Raná, Beskydy, Krkonoše, Kozákov, Doubrava, Javorový - Czech soaring at 4 km, four cycles a day, forecast fields as JSON.
Open-Meteo is genuinely great for pilot side projects. Here is the honest version of when you outgrow it and need a soaring-specific API.
meteoblue has a soaring API and it's good. Here is why we still run our own WRF, and when each is the right call.
Zell am See, Kössen, Greifenburg, Stubai, Bramberg, Werfenweng, Achensee, Gerlitzen - Austrian soaring at 4 km, four cycles a day, forecast fields as JSON.
Each WRF cycle leaves behind a timestamped working directory worth a few gigabytes. Multiplied by four cycles a day, the disk fills in a fortnight. Here is the small retention helper that keeps the live worker tidy without losing benchmark scratch.
Soča Valley, Tolmin, Lijak, Kobarid, Kobala, Vogel, Stol, Krvavec - the Slovenian soaring map at 4 km, four cycles a day, forecast fields as JSON.
Every previous optimisation post says 'we'll measure this when validation lands'. The first piece of that pipeline shipped this month - a head-to-head diff between two cycle runs at named pilot sites. Here is what it does, what it does not, and why it was the right first step.
High-resolution soaring forecasts across the Swiss Alps. Interlaken, Verbier, Grindelwald, Fiesch, Niederhorn, Mythen, Engelberg - all inside a 4 km domain, four cycles a day, forecast fields as JSON.
Convergence lines are the long-distance pilot's quiet superpower - thin streets of forced lift you can fly along without ever circling. Here is what the new convergence and divergence fields actually represent and how to read them.
The country in the European batch that is least obviously a soaring forecast problem and most actually one. Here is why Czechia is in the first batch.
The Tirol valleys are the country where the case for a regional model writes itself. Here is why Austria sits in the first European batch.
Tolmin and the Soča Valley pull thousands of pilot-days a summer. Here is why Slovenia is in the first European batch alongside the larger Alpine countries.
The first step of any WRF cycle is downloading the global model fields that drive it. Pulling full GFS files takes a long time. Pulling only the subset we need takes about two minutes. Here is how the live ingest works.
WRF's radiation schemes are expensive, so they run on a longer interval than the dynamics. The shipping interval is 30 minutes. Here is the trade and what we would test before changing it.
The first European country in the expansion batch. Why Switzerland made sense as the first country after the UK.
Convek now serves grid field slices through /v1/grid, so apps, club pages, and hardware teams can build real map layers without spamming point requests.
The Convek API now serves high-resolution soaring forecasts across England, Wales, and southern Scotland. WRF at 4 km, four runs a day, forecast fields available as JSON.
Global weather models stop being useful for soaring long before you reach the thermal layer. Here's why Convek runs WRF at 4 km instead of serving GFS like everyone else.
Comparing a full-UK 4 km box against a tighter trimmed domain on the same cycle, the trimmed run finished WRF in about 13 minutes instead of nearly an hour. Here is the trade and why we made it.
We do not yet have an automated verification pipeline. Here is what we currently rely on to know whether the forecast is working, what we plan to build, and how to spot a bad day in the meantime.
We do not have automated validation against radiosonde soundings or XContest flight activity yet. Here is what we plan to build, and why it is non-trivial.
`day_rating` is a composite label: poor, marginal, fair, good, or excellent. Under the hood it comes from an internal score, but the API returns a readable label. Here is how to interpret it without being misled.
WRF performance tuning is a deep rabbit hole. Here is what we know about our MPI setup, what we have measured directly, and what is still educated guessing from sensible defaults.
The first few hours of any WRF run are contaminated by the model adjusting to its initial conditions. Here is how we think about it for the UK pipeline today, and what we plan to change.
The sounding endpoint gives you the full vertical profile at any point in the domain. Here is how to read the things a sounding is good for and ignore the things it is not.
We run the original Noah land surface model in the Convek pipeline, not the more sophisticated Noah-MP. Here is why, what it costs us, and what would push the upgrade onto the roadmap.
Soil moisture in the live pipeline comes from GFS, which can lag reality after fast-moving wet fronts. Switching to ERA5 reanalysis would help. Here is the trade and where it sits in the queue.
`boundary_layer_m` and `hglider_agl_m` are two different numbers in the API. They come from the same meteorology but mean different things, and mixing them up gives you the wrong briefing.
Cloudbase in the API today comes from a surface-parcel LCL using 2 m temperature, 2 m mixing ratio, and surface pressure. Here is what that gets right, what it gets wrong, and where it is going.
Today's cloudbase comes from a surface-parcel LCL. The standard upgrade is a mixed-layer LCL averaged over the diagnosed PBL depth. Here is what that would change and what is in the way.
`hglider_agl_m` is the height a glider can actually work up to, capped by cloudbase and the top of the useable thermal layer. It is not the raw boundary layer height.
We ship the YSU planetary boundary layer scheme. We picked it the way most operational regional setups do - from the published evidence on what works at this resolution. Here is the reasoning.
We ship YSU. MYNN-2.5 is the most credible alternative for daytime convective forecasting. Here is the comparison we plan to run, and what makes it worth running rather than picking from the published evidence alone.
`thermal_trigger_temp_c` is the surface temperature that has to be reached before the first thermal of the day breaks the morning inversion. The field is in the API today as a placeholder. Here is what it will do once it lands.
WSM3 is the cheapest microphysics scheme in WRF. It is also what we ship. Here is why that was the right starting point and what would push us to change it.
We ship WSM3 today. Thompson is the obvious next-step microphysics for soaring forecasting. Here is what we would want to validate before paying the extra runtime cost.
Pilots see `wstar_ms` and read it as thermal strength in metres per second. That is not what it is. Here is what the number actually represents.
WRF gives you a vertical stack of eta levels to spend however you like. For soaring, almost all of them should live in the lowest few kilometres.
The first decision in any WRF setup is where the model sees air. Here is how the Convek UK domain is laid out and why the boundaries sit where they do.