Ways to fix Mesh (SubD) offset self-intersections?

Hi all!

Doing offset to a mesh or subd is actually moving the vertexes, the resulting mesh/subd will have the same topology and face/vertex/edge count as the original. And I like that.
But, it will also create many self-intersections. And I don’t like that.


First is offset with self-intersection.

Mid is deleting some chain of edges in the self-intersected part, making it disappear.
Tricky, selecting the edge loops often goes where you don’t want so you must select one by one or by some gimmicks. And you partially lose the original topology.

Last is by moving/sliding vertexes away from the intersection. Lot of manual work. Much more tricky. Slow. Keeps the whole original topology. Best solution, imho, but very slow.

The example in the picture is very small. Big meshes/subds are hell.

Do you guys know some software/tool/service that handles the problem?

(I’m not talking about simply offsetting+remeshing , I’m interested into keeping the original topology as much as possible.)

Hello- there is no good way, that I know of, to resolve these cases in Rhino.


I was (almost) sure about that.

But what about other software/service/tools?
Are there any program that offset meshes without messing up completely the topology?

voxels will offset without bowties, but it’s not a subd process, it will voxelize your part, then return a polygon model.

zbrush, 3d coat, and freeform will do this.

Meshmixer will voxelize as well. Of course, any voxelization will require retopology if you want a clean subd model.

hi Riccardo, like others said: voxels can get you there, but then you have a whole of a busy bumpy mess. We use voxels with the GH plugin Dendro to shell parts for SLA, and we only use the inner voxel surfaces with the outer original meshes so we don’t mind that they are messy. Like this:

To do what you show above Rhino would need an unsubdivided command, so you can subdivide one or two levels, do your offset (without bowties), and then unsubdivide again.

Simple tool missing: Unsubdivide
A powerful SubD modeler should have an unsubvidive tool for many situations like this, also to create assets at various LODs (levels of detail).

Here’s how it works (only on quads of course) in Blender:

and in Modo:

@theoutside, I think that if the typists reverse the code of the subDivide tool then can get the unsubdivide tool for almost free. Can you please ask them to do that? thx!


agreed, with all except “getting it for free”

that’s like saying you have foam and sandpaper… you essentially get the presentation model for free! :wink:


1 Like

Voxels and stuff… that’s precisely the opposite of what I meant with “keeping the original topology”.

SubD control polygon (substantially a mesh) , when offseted, is just a copy with moved vertexes.
That is useful because you can connect the inside and outside with proper holes and stuff… all in SubD.
I’m talking about 1000-2000 vertexes total for a complex full frame of a bike.
Sometime vertexes are 100mm apart each-other…

The examples with voxels and such would result in much more vertexes…

I’m manually modelling with SubD. I’m not working with 3d scans or 3d printing etc etc.

I’m wondering if I should invest time into scripting a solution that fixes an offseted mesh/subd (like the 3rd case in the first post)… or not.