SubD Sweep One - Inconsistent Face Normals/Direction

When using sweep one for SubD the resulting geometry has normals changing direction for random faces. I can’t seem to find any consistency or predictability with this to decern a cause.

SubD Sweep One - inconsistent normals - circular sweep around Y axis at origin.3dm (327.2 KB)

Hi David. I see that - I’ll get it onto the pile, thanks.

Wait @Me_Dave - I guess I am confused - how was the SubD object in the file created ?


Sweep 1 SubD command. I think the curves used were included in the file. The circle was the rail. Let me know if you need more information/details.

I have used other plug-ins for Rhino in the past where sweeping around the Y axis and going past the CPlane created weird anomalies and was always something chased with bug reports. That’s why I included that info.

Another detail I forgot to mention (where the confusion is coming from). The upper portion (above the profile curve) was an existing SubD I joined to, it was not created using Sweep 1. Sorry for the confusion.

Hi David - I see a circle and a profile curve in the file - Sweep1 of these, here, makes a consistently oriented object. I am clearly missing a step - I do see that the SubD in your file has inconsistent normals


I just don’t see how you got there.


No, you’re not missing anything. This was just a bad bug report on my part. The “leaf” SubD already existed, I used dupcrv on the open edge of existing “leaf” to create profile for sweep. Used Sweep 1 SubD to create the rest of the geometry. Then stitched both SubD parts together at the open edge of the “leaf”. Somewhere during that process, the face normals became inconsistent.

I was able to work around this using ExtractControlPolygon, UnifyMeshNormals, and _ToSubD.

Hi David, ok, thanks for the details - I could not reproduce it on my try here. I used SubCrv to sweep part of the circle, I don’t know if that matters - after stitching, it all seemed correct.

SubD Sweep One - inconsistent normals - circular sweep around Y axis at origin_PG.3dm (328.1 KB)


Thanks for looking into it, Pascal. I’ll try to recreate and report with better details.

Hi, Pascal. I created another file using SubD Sweep 1. It looks like the SubD Sweep 1 had inverted normals, not sure why. I created the SubD Sweep 1 by duping the edges from the “Freeform” SubD; rebuilding to make SubD friendly; moving control points to get closer match with vertices on SubD edge; rotate copy the curve to have second profile at 6o’clock. These curves were used as profiles for SubD Sweep 1. I then stitched the edge loops of each SubD together and that when I noticed two faces that have different normals from the rest of the SubD object. This is as far as I was able to distill the scenario. Still not sure what caused the normals of the SubD Sweep 1 to point “inwards”. Hope this is better information than before. Please see attached file.

SubD Stitch inconsistent normals.3dm (351.1 KB)

Hi David - the initial SubD sweep is open, so Rhino does not know/care about inside/outside. (I would agree though with the implication in your commets that it might be expected to default to outside the input curves when these are closed. I don’t know how easy that is but it seems reasonable)

In any case, I’ll see if I can reproduce inconsistent normals problem - that comes with Stitch, I imagine, thanks

@Me_Dave - to really test this properly, I need the objects in the state before they are stitched and go ‘bad’. I tried to go backwards from the object you posted and do it over but I was not able to get the weird normals.