The three pieces

A standard, a provider, and the core they run on.

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

WindLink

The reference provider. Solves the wind against the real world (wakes behind walls, crest speed-ups, valley funnelling) and publishes it.

Fabric · requires PlunderEngine

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

The header is complete. A provider makes it local.

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

Every pack invents its own wind. So does every wind mod.

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.

Implement the standard

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.

Read the spec Quickstart docs See it done

Play with it

Install WindLink and PlunderEngine. Two jars, client-side only, vanilla-server safe.

Download both jars What WindLink does