Inprograss is a realtime grass generator I created as my week-long final project for Brown’s computer graphics class. All the grass are generated using a compute shader and lives entirely on the GPU, which allows for 1 million unique blades of grass to be generated and rendered without dips in frame rate.

I’ve seen others achieved this before, so to take it a step further I also added in grass interactivity. The grass blades responds to both wind and displacement caused by an arbitrary number of agents moving around in the field.


This is achieved via a packed velocity(RG)-displacement(BA) texture that stores how much the grass should displace. Moving agents draw to this texture, and it is then simulated similar to a spring-mass-damper system to gradually slow the displacement down to 0. The result is that for a few second after an agent has moved over a patch of grass, the grass still “remembers” the agent stepping over it.