Technical Reasons for Lack of Wind Resistance Simulation?

I’m curious to hear from any Zwift engineers on this question:

Zwift sends resistance due to gradient to the smart trainer, but does not send resistance due to to wind (i.e. if you are on a 5% slope in Zwift you will feel the same resistance to your wheels at 10 kph as you would at 40 kph). This is especially noticeable when drafting, since in IRL you really strongly feel when you are in draft vs. aren’t as actual resistance your legs are pushing against. In Zwift, since wind resistance is only modeled to calculate in-game speed, but not trainer resistance, you feel nothing when you go into draft.

I fully understand that watts are watts, and that in terms of leg output mapped to speed in Zwift, it doesn’t matter. That said, I’m curious why it isn’t implemented (especially because the other platform I’m familiar with, RGT, also does not implement it, which leads me to think there’s a technical reason not to do it). My question, then, is: Is there a technical reason why modeling wind resistance in the trainer isn’t feasible? Is it simply because the trainer APIs only take gradient information? Or is it something like the update lag between Zwift sending new resistance to a unit and that resistance actually being set by the trainer and felt in the legs is too long for it to feel real? Or is it just that it’s added complication and the current situation already works well enough?

At some level, this is no different than the ‘issue’ of when the road surface changes, but not the gradient (e.g. in the Watopia Marina area). When changing from the tarmac to the dirt a rider’s in-game speed decreases, due to the increased rolling resistance of the dirt surface, even though the user is still in the same gear at the same cadence (and, therefore, should be going the same speed).

1 Like

Trainers already have a maximum gradient that they can simulate, which varies depending on model. Cheaper trainers typically have a much smaller maximum gradient that they can simulate compared to high-end models.

Actually this maximum gradient also depends on the rider’s weight, so a heavier rider at lower speeds will hit the gradient limit before the theoretical trainer maximum.

If you add further factors such as wind and/or surface type (I don’t know if the trainer can handle this directly, or it just has to be fudged via the gradient value) then this will further lower the maximum gradient that can be simulated. E.g. at low speed with a headwind, sticky surface and heavier rider then a lower-end trainer would likely top out with its gradient simulation at well under 10%.

So it’s not simple.