A bug with SubD symmetry I just noticed

Hello all:

As you know, I’ve been spending a lot of time fiddling with SubD commands lately.

I just downloaded the latest WIP and I just noticed a little bug when adjusting symmetrical edges:

Any ideas why this is happening and how to prevent it?



that is working as designed… you dragged that edge to withing the reflection plane tolerance set in the reflect command. Its automatic by default, and can be set with the distance option when you run the command.

the way to avoid that is to not drag an edge over the centerline. If it’s necessary to do so, simply right click the reflect icon and remove the reflection from the model.

1 Like

Hi Kyle.

That’s just it. I’m nowhere near the centre line, and it’s still merging. I’ve turned on the SnapStyle=Distance option and set it to the default of 0.01, and it still seems to merge when edges are brought as close as 0.4 - 0.5mm away (which really hampers being able to do detail work near the centre).

It’s even still snapping together the same way when I set SnapStyle=None. Surely that can’t be right.


can you post a file and steps to repro?

Sure! Please find enclosed.

All you need to do is do what I did in the video above-- grab a vertical edge on the doll’s chest, and try moving it inwards with Gumball. By the time you hit around 0.5mm or so away from the centre line, it will merge on you, even if you remake the symmetry and turn on another SnapStyle (currently it’s set to Distance with a default Tolerance of 0.01).

Doll_tutorial debug.3dm (78.7 KB)

The surface width of 1.6mm, if the edge is moved by 1.4 mm all the previous topology is maintained, if you move to a greater distance, the surface edge goes beyond the reflection boundary to keep this surface on the model, see the screen.

Since the reflection cuts the edge of the surface that would retain the function of reflection there is a new topology, what you see on the screen.

Okay. I’ve confirmed that with precision gumball movements. The 1.4mm distance seems to be correct. This still means if the edge gets closer than 0.5mm to the centre line, it merges.

I also tried turning off Reflection symmetry and scaling the edges together. I can now see the problem-- the surfaces start to fold once you cross that inner point.

Is there any way to adjust the flexibility of these SubD surface so this doesn’t happen?

I don’t think that’s a problem, since the practical meaning in a surface width of only 0.2 mm I do not see in any model.
For SubD axiom, the larger the surface and the smaller the amount of surface the better!
When the model’s identity.

I’ll see how it goes. I routinely work with 0.25mm details, and the minimum tolerance for cast jewellery is 0.1mm.

You need to know the measure, SubD is not for exact things.

this is true…BUT… you can sculpt your forms in SubD, then add precision with nurbs booleans, trims etc…

you get the best of both worlds.

I hear you, and I agree.

It would be nice if we could adjust SubD tolerance then, like we can adjust Absolute Tolerance for NURBS.

Quote - The arbitrary-looking barycenter formula was chosen by Catmull and Clark based on the aesthetic appearance of the resulting surfaces rather than on a mathematical derivation, although Catmull and Clark do go to great lengths to rigorously show that the method converges to bicubic B-spline surfaces.
Subdivision Surface Modeling - this is a modeling technique for making high-resolution models, by manipulating a lower-resolution “cage” model and using software to subdivide for a smoother surface.
Traditionally SubD objects are mesh based and lend themselves well to more approximate types of modelling such as character modelling and creating smooth organic forms that are controlled in an approximate fashion.

1 Like

I think this is not a tolerance problem.
If you change the display to box mode and drag an edge close to the center, then change to smooth mode, you compare the apparent edge locations between the modes.
If you drag the edge farther in smooth mode, the box mode cage points will cross the center and then be removed by Reflect.

1 Like