Flow Along Surface

Is there anything like FlowAlongSrf that can be done in Dynamo? I want to unroll an curved surface, draw a spline (curve) on that unrolled surface and map that back onto the original curved surface.

Hi Eric,

That sounds a lot like the “Surface.ProjectInputOnto” node:


Thanks for the reply - I tried that as well, but it’s not really what I’m looking for - perhaps the screenshot below will help clarify. Surface.ProjectInputOnto does a straight projection onto a surface perpendicular to a vector. What I’m looking for is to take a line that is effectively drawn on an unrolled or flattened surface and map that onto the original surface. Kind of like applying a sticker.

If you can already acquire the unfolded equivalent (if not look into the DynamoUnfold package), you can try the following:

1)generate some points on the planar surface

2)map those points to the planar face to get the UV parameters

3)generate new points with those parameters on the curved face

4)use the new points to get your final curve

Try using Curve.PullOntoSurface

The difference between this and Surface.ProjectInputOnto is illustrated below

1 Like


That actually looks like what I needed. I’ll give it a shot and mark this resolved if it work out. Thanks!


I think I tried that one as well before posting here, but I just tried it again and it also relies on a spatial relationship between the lines to be pulled onto the surface and the surface itself. I’m really just trying to draw a design on a flat surface (which I know to be a ruled surface like a curved, vertical wall) off to the side somewhere and map that onto the original curved surface. I think what Dimitar proposed is what I’m looking for, but thank you for the suggestion.

Dimitar - I was able to replicate this once I figure out the correct lacing settings. I think the only thing left for me is to figure out how to align the UV coordinate system from the unrolled surface to the original surface.

Hi Eric,

I’m not sure on what’s the best way to automate the orientation. You could go for a manual approach with the following code block: