# Grass wind bending with simulation nodes and maintaining length

I would like to create a grass simulation with geometry nodes.

I have a system that can almost work. But when I try to apply it to my use case I get stretching of the grass. Currently I have a system where a force is applied to a curve line. That force is stronger at the tip than the bottom.

• Each frame the points are displaced by that force proportionally to their spline factor
• After moving, the distance between each point on the one lower down is calculated. If that distance is greater than the original distance, the point is moved directly towards the other point until the distance is equal to the original distance.

And that's it. It works well on my single blade of grass.

But when I try to implement it on a larger scale, the grass slowly continues to grow. I don't know if this is because of the changes I have made due to using instances of curves instead of a single curve.

Is there some way of maintaining the curve length?

Perhaps you notice the typical pattern of treating a 3D texture as $$xyt$$ instead of $$xyz$$, using the current time/frame as $$z$$ coordinate. Here, however, I decided to also use the time in $$xy$$ translation, because I wanted to create an impression of air pockets moving through the landscape.
Another common pattern is multiplying the $$[0,1)$$ output by $$2 =[0,2)$$ and then $$-1 = [-1, +1]$$, however I only do this for $$xy$$ axes in this case, so I displace the tips horizontally only; it would have a very artificial look, except for the last note-worthy step…
• @TheJeran "left" handle means the handle controlling the connection to the previous point (current point being the index 1 a.k.a. "end", and previous point being the index 0 a.k.a. "start"). I'm positioning this handle where the point was before. You could scale this vector to control the curvature (scale above 1 will "overshoot", meaning the grass blade will bend backward before bending in the direction of the "end"). Currently, the setup could be replaced with this for exactly same effect: i.imgur.com/3xnVFO0.png Aug 31 at 17:17