Rhino 7 & 8: bug in Contour

Hi fellas,

As per title. Wasn´t the last generated curve (Index 9) supposed to be a circular curve as well?

SRC 8.3.23360.13001


Contour_v1.gh (12.6 KB)

The topmost contour curve is flipped.

To make this definition work all the time, you can use the flip curve component with a circle as guide curve.

Contour_v1.gh (16.3 KB)


Fails the same way in R7, for the same reason @martinsiegrist said.

1 Like

Interestingly all curves go into the same direction when the topmost contour does not coincide with the surface edge.

101 mm pipe axis:

90 mm pipe axis:


Thanks for the fast reply and solution provided @martinsiegrist ,much appreciated! Thanks to @Joseph_Oster as well for checking it out! Cheers.

1 Like

The bug is in the contour component. Do you mind if we change the topic title?

Done! Thanks once again for digging deeper into it.

1 Like

But it’s not just R8, it happens in R7 too.

1 Like

Changed the topic title :+1:

Interesting observation! Should be a good clue for a fix.

The Pipe Variable produces a very ripply surface:

But get the same contour problem using a loft between two circles when the height is evenly divisible by the contour distance. Oddly though, the contour curves all need to be flipped.

Contour_2024Jan2a.gh (11.1 KB)

In contrast to Pipe Variable and Sweep 2, the normal of the lofted surface is pointing outwards.

Aha. Since the loft was created from two circles, I expected the contours to match their direction, but for this model, it doesn’t matter which direction they go as long as they are all the same. So yeah, bug in contour - good call.

Your problem is solved with curve flipping but the bug is not. Therefore the topic should not be marked as Solved yet.

I think I’m having similar thing happen. My expectation is the contour plane is intersecting with edge of the surface and as the top and bottom edge are different directions (edge directions), the curve is flipped. It does seem like the contour shouldn’t be affected by the edge direction if its based on the surface.

Wombat for curve display (always thought this should be native but that’s separate)


Seem to me like an issue with the Loft component. If you bake the results of Loft and run the Dir command, you’ll see the surface normals are pointed inwards. Switching the order of the input curves seems to provide a more correct solution.

– Dale

But they are not all the same direction when contour curve coincides with edge curve.

it’s weird because this is the output of Contour, where the last curve is flipped:

and this is the output of a “manual contour” as a list of planes along Z, identical location as Contour, the Brep|Plane intersection, same last curve flipped:

Contour_v1_Re.gh (20.7 KB)

I’m starting to think the problem might not come from Contour :slight_smile:

So the rule of thumb for both contour curves and Brep|Plane intersections is to flip them all using a circle as a guide. One more part of the secret sauce / DNA for using GH. :rofl:

@inno, @Joseph_Oster - I’ll dig into this when I find some free time.

– Dale


Much appreciated, @dale