Unroll Error

We keep getting occasional errors with Grasshopper ruled surfaces that in with certain situations do not unroll correctly.
The definition will be uploaded to Shapediver and I have tried all of the unrollers I am aware of and they all occasionally error.
We have tried rebuilding the surface, the curves the surface is generated from, different ways to build the surface,unroll error.gh (2.4 KB) and different unrollers, all throw up errors as shown below in certain situations.
If I bake the surface, it will unroll correctly in Rhino.
We have spent months trying to fix this and make the definition relaible at all parameter settings.

Any advice or help would be greatly appreciated.


Any help with this would be greatly appreciated, has anyone knowledge of what is happening and how to resolve?

when the surface is on the integrated component, gladly

A lot of grasshopper plugins rely on Rhino’s default tolerance, or maybe they even have some hard coded tolerance values. This can sometimes causes issues.

Try the following component, and increase the unroll tolerance (from 0.001 to 0.01 for example) if unrolling fails again.
unroll error2.gh (5.6 KB)

but in both components the surface performs the same

Apologies, I have now internalised the surface

unroll error.gh (5.6 KB)

1 Like


Thank you, the Python script works.
In house we use an unroller which has a tolerance setting that can be adjusted and it works when the tolerance is lowered.
However, the component is a cluster and is locked and as we want to use the definition with Shapediver, they don’t support locked clusters and as such, we couldnt use the unroller and tried the others I was aware of, all with problems.

Can the document tolerance be set in Grasshopper, or does it always come from Rhino?

It works with the .001 tolerance, but if this is reduced to .01, the same error occurs as I have shown in the original image.
I need something that will work consistently as it will be part of a shapediver model with many different parameters that can be changed.
Any advice?

I meant that it should be used for the surface from the upper screenshot.

In general, Grasshopper default components should (as far as I know) always use Rhino’s tolerances.
Like you noticed, there are situations where you would like to have different tolerances for different components.

As for the tolerance for this particular case - try different values. If it always works with 0.001, then use that one as default tolerance. Or maybe try increasing it to 0.0001.

1 Like

Thank you for your help.
I had been unable to find an unroll component with a tolerance setting which is either not a cluster or works with Shapediver. Shapediver does not allow password protected clusters.
I will check it allows your python component next week.
It’s weird that it works with a higher tolerance, I had been going the other way and reducing the tolerance.
What I need to achieve with Shapediver is consistent results.

Shapediver supports ghpython components. So it should work.

If you play around with tolerance values, you will probably find one that will most likely get consistent results. Indeed, it was strange that higher tolerance values failed.

Update, I am still having the same issues, even with the Python component. There is not a tolerance setting that ensures a proper unroll in all parameter settings, even thou the surface can be baked into rhino and unrolled correctly within Rhino.
This is stopping us from being able to complete a Shapediver definition which must work consistently.
Does anyone have any ideas on how to Unroll with an allowed component for Shapediver that works consistently without the errors shown in my previously attached file?