MCWIND
A public-domain GLSL header any shaderpack can vendor. Defines the wind, and the grass and canopy responses to it.
one file · CC0 · no mod required
Every shaderpack invents its own wind. So does every wind mod. They disagree, and a player running both watches grass lean one way while blown leaves go another. MCWIND is the shared definition they can both implement.
The three pieces
A public-domain GLSL header any shaderpack can vendor. Defines the wind, and the grass and canopy responses to it.
one file · CC0 · no mod required
The reference provider. Solves the wind against the real world (wakes behind walls, crest speed-ups, valley funnelling) and publishes it.
Fabric · requires PlunderEngine
The core the Link mods run on: one config, one settings screen, one command. Does nothing visible on its own.
Fabric · client-side only
What a provider adds
no provider
mcw_providerVersion = 0.0 mcw_windProvider = 0.0 mcw_windGain() = 1.0
The analytic field runs: a prevailing heading that veers over
minutes, curl-noise eddies, travelling gust fronts, a diurnal cycle. The GL spec
guarantees an unset uniform reads exactly 0.0, so absence is unambiguous.
provider present
mcw_providerVersion = 4.0 mcw_providerPhase // frame-interpolated mcw_providerForce // speed, gust floor mcw_leafAnchor // v2 · distance to wood mcw_windFlow // v3 · terrain shelter mcw_gustWake_tex // v5 · debris draft
The player's in-game presets, live weather and terrain shelter drive your foliage, without you writing a line of preset handling.
The problem
There is no shared answer to “which way is the wind blowing here, right now, and how hard”. So a player running a shaderpack and a wind mod together sees two winds that never agree. MCWIND is that answer, written once, owned by nobody.
See it moving
One header, a few lines in your terrain vertex shader, and the same again in your shadow pass. There is a worked example of exactly that in a fork of Eclipse, vendoring the header unmodified, wired into grass, canopy, debris wash and fire.
Install WindLink and PlunderEngine. Two jars, client-side only, vanilla-server safe.