An invisible enemy may be hidden from sight, but the grass can still give them away. If they run through it, the stronger bend makes their movement easier to spot.
That was one of the reasons we wanted Helrift's grass to react to characters, then slowly settle back into place. Here's how we got there.
It started with one character
Our first version was simple: tell the grass where the player is, then bend nearby blades away from them. Walking gives a gentler response than running, which matters when the movement itself can reveal someone. With one character on screen, it looked promising.

But Helrift isn't a single-player world. What happens when several players and NPCs cross the same patch? We could send all their positions to the shader, but then every blade would have to check a growing list of characters. The grass also needed to remember where someone had been so it could recover naturally after they moved on. A list of current positions couldn't give us that trail on its own.
Giving the grass a memory
Because Helrift uses a fixed top-down camera, we tried treating the visible ground like a small map. Each moving character leaves a mark in a RenderTexture. The grass checks that map at its own position to see which way to bend and how strongly. Older marks fade, letting the blades ease back into the wind.

The texture's colour channels hold direction and strength. That lets multiple characters contribute to one shared field, while the grass samples the finished result. We had players and NPCs stamping into it together during development.
Getting there took some debugging. We could see marks being drawn, but at one point they weren't making it through the history step to the grass. Breaking the effect into stages and checking each texture helped us find where the information disappeared. Once the full path worked, the grass could bend, linger and recover as we'd intended.

A clue in the grass
The video at the top shows where we've landed: movement disturbs the grass, running bends it more strongly, and the effect fades after a character passes. For a visible character, that's a small touch that makes the world feel more alive. For an invisible enemy, it could be the clue that tells you someone is nearby and which way they went. Running gets them somewhere faster, but makes the grass react more strongly.
We carried that work into combat next. Part two shows how weapon swings, spells, projectiles and impacts now disturb the grass.