Creating a spline that follows the same plane as an existing curve/path?

Hello, I am new to Dynamo and am trying to recreate this veil of cylinders. I have the cylinders created along a path and they all have the same length, but the trouble I am running into is figuring out how to adjust the length of the cylinders so they follow a spline. My thought process is to Geometry.Translate the curve/path I created earlier so it is on the same planes, then Geometry.DistanceTo between the cylinders and the spline to change the length of the cylinders according to that. Not sure if this would be the best/viable way, any help is appreciated. Thank you

This is the building with the veil of cylinders falling down that I am trying to recreate


Hello, here is a solution


This is great, I learned a lot of new nodes from this, thank you! I am wondering if it’s possible to create undulations instead of a uniform circle/ellipse?

1 Like

good evening,
you should your happiness by following this link


1 Like

Hello, here is a possible variant (improvable, I am still a novice).
I thought your curve was defined geometrically.

For further information, the other groups remain unchanged



Try this if a mathematical sine wave would work for your use case.
Sine Wave.dyn (25.9 KB)


Thank you for both of your help! This code allowed me to make what I intended to replicate. After searching and looking at each node, I understand what they are doing except for this particular node. Sorry if this is an obvious answer, but could you explain what this formula accomplishes? Thank you again

Screenshot 2022-06-28 142211

1 Like

Hello, you’re welcome.
Please mark the solution that solved your problem if it is indeed solved.

This is just a formula for a sine wave. The figures in the brackets produce a range of numbers from 0 to 360 multiplied by the cycles. The cycles here are the number of sine waves created. The #num dictates how many numbers are created within the 0…360*cycles range. In this case, the numbers must equal the number of points for the wave to work as intended. All is then multiplied with Math.Sin.
Try reading up on ranges and sequences if you don’t understand these concepts yet.
I hope this helps.


Just ask if you want to know more codeblock stuff.

an example: