{honest question} *faulty (?) helicoid x barrel intersection


Hope all goes well.

Apologies in advance for such a silly question.

I have a simple-but-serious question regarding two surfaces that are clearly intersecting:

It doesn’t matter if I intersect them in rhino or grasshopper, the intersection (which should be a single curve) ‘fails’:

I feel like this has happened enough times and I usually shy away from asking.

If I cap the barrel-like surface (made of lofted circles) in the center, the result changes but it’s still faulty. If I rebuild the surfaces sometimes this fixes it. However I don’t necessarily want to rebuild them.

If I use a variable pipe instead (in place of the lofted barrel-like surface), using the same radii I used for the lofted circles, the intersection works…but the variable pipe produces an undulation I don’t want either:

What are your thoughts?
Here’s a file if you need it?
intersectionBUG.gh (570.5 KB)



Hi @corellaman,

I’ve logged the issue.


Thanks for reporting.

– Dale

1 Like

Thank you @dale - in case it helps: when using a surface generated through sweeping, revolution, and/or rail-revolving (instead of lofting) the result is still faulty.

any chance the problem lies in that particular loft?

intersectionBUG_Re.gh (573.3 KB)


Thanks for checking it out! I wish I could just say yes; however the answer is also no? haha - I truly don’t know - in reality there’s nothing wrong with the surfaces, and the intersection should still yield the right result, if there’s such a thing. Furthermore why would the intersection work with one surface and not the other? The real oddity (not really) is that the problem went away after I did some (random) things: disconnected/reconnected the wires, deleted the component then used a new (same) one - hit the ‘recompute’ button, problem persisted until it simply didn’t anymore ha! So the question remains or it’s a different can of worms. Your work-around is definitely a go-to for this, though. Thanks again, man! Cheers!

It’s likely the center of the helix surface causing problems. Try to create the loft with two helixes instead of just one.

1 Like

I like to test things :slight_smile:

so it looks like you have hit some sort of “black-magic ratio” there?
If I scale just one of them by a very tiny amount, then the result is correct
buf I scale them both then it produces exactly the very same problem :slight_smile:

Just out of curiosity, was that loft build by circles that were created on the very center of the lines used to create the helicoid? were there 74 lines to generate the helicoid?

1 Like

So interesting/intriguing - yes each of the rotating lines (sections) that make the helicoid surface starts at the same plane serving as base/center for each circle - the helicoid was generated first, though.

Possibly, it’s just that the way the helicoid is made requires rotating lines that come out of a central vertical axis, then these lines are lofted - if I lofted the ‘spiral’ curve to a center (vertical) line (serving as 2nd curve), then the ‘helicoid’ surface looks similar but it’s not clean. It’s a silly situation, I know, prompts us to try surface work-arounds, however the helicoid needs to be like it is, no matter how long section lines extend from the center axis as it spirals.

I have not understood yet whether you need the intersection curve or the trimmed surface?

For the intersection curve you could trim the curves so the ends aren’t in one vertical axis…

1 Like

I need the intersection curve and l will need the surface again as well - I am with you on the suggested solution, thanks!

1 Like

Thanks for reporting this bug. Sorry for getting the wrong result. I’ve attached a .3dm with a remodeled helix that works better. You should verify this is same helix surface.

Where I get wrong answers is intersecting the nearly tangent helix isocurve with the barrel. I’m guessing the curve darts in and out of the barrel and is often within tolerance of the barrel making the intersection a complex set of points and overlaps. Getting the wrong answer here results in gaps in the resulting intersection curve.

The way Surface_x_Surface intersection works is it intersects Bezier curves with Bezier surfaces, where the curves and surfaces are from Bezier decompositions of each surface. This decomposition starts by splitting at knot lines of spline surfaces and can be refined from there. So the extra knots in the helicoid results in extra intersections. These just so happen to be in an unfortunate location making the result erroneous.

Of course the real problem here is that Curve_x_Surface intersection needs to get the right answer even if it is complex. I’m just providing some context so advanced users can work around these issues.
RH76199.IntersectIssue (workaround).3dm (238.0 KB)

1 Like