Offset surface with opposite normals

I am trying to create organic structures with subd tools. To do so, I’ve flipped the surface and reconnected again to the surface’s opposite side - think of the Mobius strip principle - resulting in normals with opposite directions.

And so when I try “offsetsubd” on the surface to give the structure thickness, naturally, it doesn’t work. Around the areas where normals face opposite directions encounter, the offset creates intersections between the “inside” and “outside” surfaces.

So my question is: would anyone know a way to give this surface thickness without having these intersections? Is it possible to do it from the surface that I have already modelled or should I approach this kind of shape differently from the very beginning?

1.3dm (1.3 MB)


OffsetSrf on both sides (BothSides=Yes) with the original surfaces as the mid-surface.
Join the offset surfaces into a single surface with two edges.
Note I worked with NURBS surfaces, not SubD but the same approach should work with SubD.
Thick Mobius.3dm (1.9 MB)

Thanks for your reply.

I’ve tried that, however the surfaces still intersect. Probably because the surface I’m working with is a bit more complex?

in this image i hid the original surface in between

And if I convert the subd to nurbs and offset it on both sides, the results is a broken surface

You’re dealing with extreme curvature and you are very far from the origin

1 Like

When the offset is to the inside of the curvature and the offset distance is greater than the radius of curvature of the offset surface will will crease and self-intersect. How to fix it depends on the design intent. This is distinct from the Mobius issues.

Try splitting your surface into smaller, simpler parts and offseting each part separately. Then you can figure out what to do with the individual parts.

1 Like

After trying to edit a SubD Moebius strip, I think the safe way to do this is to offset the SubD geometry partially, room after room. And then weld or bridge so you get the Moebius situations.

1 Like

Thank you. I think I underestimated Rhino. Didn’t think it was capable of accounting for the opposite normal vectors. I did some trials with a simple mobius strip and understood that this is not the case and indeed the problem is the relationship between radius of the curvature and offset distance.

I’ll follow your suggestion next!

Hi @marina.brucker ,

Just to give you something else to think about :slight_smile: , I’d suggest going to a voxel model inbetween and then back to SubD like this. I used Grasshopper (GH) and a free plugin called Dendro

Extract the render mesh from the SubD > reference that in GH (I did this already and internalized it in the GH file) > use the verts from the mesh as input for a voxel volume using Dendro > the relationship of voxel size to point radius is fragile so I just experimented until I got a valid mesh at the end > bake that out > use ExtractMeshPart to make sure you only use the outer mesh next (there may be a couple nuggets inside still depending on your settings) > use QuadRemesh to get back to a SubD (11.6 MB)

Dendro is not available for Mac but since you are on Windows, it’s an option.