Automatic recreating wave relief from existing splines

i started last week with rhino and grasshopper and i wanna make this work faster, so i wanna try to automatic some steps.
I have to create a wave relief on a wood plate for cnc routing. The base are splines from AutoCAD.
I created manually one testplate and this is the result: (now I wanna make some work automatic for same and faster result, because i needed for this plate 2h and i have to do 50m² individual plates )

How I created the wave-relief:

  1. Manually closed splines divided into two curves each (manually in rhino)
  2. Rebuilt the curves (done in grasshopper)
  3. Created a Middlecurve (done in grasshopper)
    4. The points of this Middlecurve I manually moved 0-10mm down (i dont know how to automatic this one)
  4. Then the curves were merged with Loft (done in grasshopper)
  5. Trimmed from solid (manually in rhino - maybe later in grasshopper)
  6. And created a closed solid from the faces (manually in rhino - maybe later in grasshopper)

The tricky problem is also to get the optimal depth of the Middlecurve. The maximal depth is 10mm(in the best way it is variable with a slider) and the other depth should be variable of the distance of the points(0-10mm). Is the point distance 0, the depth of the middlecurve should be 0, too.

Can anyone help me to change the Z Coordinate of the Points from the MiddleCurve?
Or does anybody know a answer for the variable depth of the MiddleCurve?

Musterplatte-Rhino-Manuell-grasshopper.3dm (1.3 MB)
Screenshot 2022-03-22 180449

Wellenrelief aus 2 Kurven (12.9 KB)


If your goal is to achieve something like the reference image. Did you check this thread:


Here one way to do

I divide each curve, put a line between the 2 borders, it gives me a middle point and a length (useful to move down the point)
Then evaluate each length of line, use Graph Mapper to scale the movement in Z depending on the normalized length of lines, the move the middle point then make a curve
Wellenrelief aus 2 Kurven (17.1 KB)

And if useful see this link


Thats exactly what I needed.
Thank you so much!!
Do you also have any idea how I can add a stop by a max depth of 10mm for the Z?

There are many solutions it is just classical Math.

  1. after Deconstruct Domain you can use an equation
  2. You can use that at the output of multiplication

You guys are awesome!
I would have racked my brain for days now.

I have another question about the minimum value.
So that the curve runs out nicely and homogeneously, I divided the curve and simply deleted the part that I is drawn by the designer.
deleted curve

But now, if the ends of both curves never meet, I don’t have a 0 value and the graph. It always calculates everything from the lowest value.

Thus the narrowest area is equal to 0 and generates a straight spot in the wave.

I can leave the curves closed, so that the ends touch, (first screenshot) but it would be a clean solution if I had an absolute 0 value in the program.
Wellenrelief aus 2 bestehenden Kurven (24.4 KB)
Obere Platte runder Spiegel.3dm (65.8 KB)