Mirrored Surface's unrolling different

I have two identical surfaces. One mirrored from the other. When I use ‘UnrollSrfUV’ one will unroll correctly, the other incorrectly. I can see this clearly by the isocurves on the surface.

Mirrored Surfaces.3dm (3.9 MB)

I have checked the directions and they are the same.
I have mirrored both surfaces individually but it is always the same side that is unrolling incorrectly.
I have untrimmed the surface but this did not fix it.


I connot reporduce the different results:

Interesting, we’ve had it on multiple PC’s when using ‘UnrollSrfUV’ and ‘UnrollSrf’.

I see this with UnrollSrfUV, but not with UnrollSrf. UnrollSrf seems to produce the same (mirrored) polysurface here.

Indeed UnrollSrfUV does show different output here.

As remirroring it back yielded the better result again, I did some testing with adjusting the UV directions.

Turns out if you run the Dir command and do either UReverse or VReverse It does unroll cleaner


@pascal This might be something of interest to a developer.
Apparently the result of the UnrollSrfUV differs if the surface UVW is right or left-handed.
Maybe this is expected yet it could point to an oversight in the code that possibly fixes other issues as well.

I mention this because we often encounter different results when scanning ship hull plates that typically are mirrored versions of each other. I just now realized that when mirroring a surface, the ‘handedness’ of the surface changes possible causing these discrepancies.

Yep, thanks, I’ll take a look.


Hi @pascal,

Thanks for taking a look at this. Have you been able to find anything out about this yet?

Well, I do see the discrepancy - the better unroll is the more complex one, in terms of area and curve length and UV, I assume you like that one better. But I do see they are different, and dev should probably look at that, however the command is actually an old (V4 or so) version of UnrollSrf, if memory serves, and it was replaced because of this sort of inaccuracy but brought back because preserving the UV is useful in some circumstances. So, I am not sure what attention it will get, to be honest.
@JWilmshurst - are you specifically interested in maintaining the UV on the output?


Hi Pascal,

Not overly bothered about preserving the UV however when using ‘UnrollSrf’ I’m getting an error saying ‘There was an error unrolling that surface.’

When using ‘UnrollSrfUV’ the panel will unroll but the issue of the mirrored panel unrolling different is still happening.

Plain UnrollSrf dpoes work here, that is, no error, but there is an overlap - presumably where there is a curvature disconinuity in the input - - there are several, the input object is not super clean


The file I’m using when using the ‘UnrollSrf’ tool it is returning that error.
Mirrored Surfaces.3dm (3.7 MB)


These are the tool settings used to try and unroll the surface.


Yeah, that is a somewhat messy surface… RemoveMultiKnot will help - the surface will deviate by a few thousandths from the input in this case as far as I can see…


Thank you, the RemoveMultiKnot tool has allowed the surface to unroll with minimal deviation.

Would you recommend using UnrollSrf over UnrollSrfUV? which is better to use?

UnrollSrf should be the more accurate and reliable - it replaced UnRollSrfUV (which is old UnrollSrf code) a few versions ago.