I am working on a Geometry Node System that can turn every simple mesh into cardboard with the infamous wave curve between both flat borders. I use the sine function for that and have a complicated problem on what to put into it:

My first approach was index-based. By dividing the vertex index through the amount of vertices in each row and floor that number, I could get parallel ordered waves. However I got random flips per face which was not desired. enter image description here

My second approach was position-based. At first I used the x position of each vertex to drive the offset. No more flips per face, in general it works great. enter image description here

But now I want to flip the direction of the wave pattern and use YZ instead of X and things get very complicated.I tried to just sum up the Y and Z positions but this leads to weird distortions and lack of consistency in the frequency of the pattern on diagonals. enter image description here

I am sure I have to use the vertex normal as a factor here and plug that somehow into the equation. I can read it out per vertex with the Field at Index Node, but all tries have failed so far. Maybe the community knows the answer.

Blender file

Have a nice day Thomas


1 Answer 1


I suppose, you should use UVmap to get this right.

enter image description here

It's much easier and controllable. And of course it will work with animation.

  • $\begingroup$ I'm a retard. Thanks for reminding me of that ;). This works $\endgroup$ Commented Apr 25, 2022 at 12:59

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .