Trimmed surfaces become invalid Breps upon grasshopper send / recieve

I have a number of trimmed surfaces which seem to send and display okay to the web viewer but upon receiving them back to gh they become invalid breps. Is there something I’m doing wrong here? The strange thing is thing I’m sure this worked for me recently. Current installed sender is 2.1.27 (gh) and 2.1.23 (Rhino) - I’ve been trying to update to 2.2.2 to see if it fixes but the installer is getting stuck on installing surface (335.6 KB)

1 Like

Just a quick update - the new version of Speckle manager fixed the install issue but I’ve still got the problem with the surfaces. On closer inspection of the invalid brep geometry it looks like it might be something to do with circular internal corner fillets on the original surface which are all missing from what can be seen from the display of the invalid brep. Any help or advice would be much appreciated! Many thanks

Hi @mattm!!

First, let me welcome you to our Community! Feel free to Introduce yourself 🙆 if you feel like it :wink:

Thanks for reporting this! I suspect you just found a bug, but I’m going to do some checks to see what is going on here, as Rhino->Rhino (and GH->GH) Breps were, to the best of my knowledge, working fine… :sweat_smile:

I’ll do some digging on my side to see if I can offer you a quick solution, although I suspect we may need to fix this on our side.

Just as a quick note: The reason they are being displayed properly in the viewer is because the web viewer always uses the displayMesh property of any Brep/Surface, which is generated by Rhino when sending :wink:

Hey @mattm,

I tried to reproduce the error on my machine and I can’t seem to be able to.

Given that you also had some update issues, it may be your installation got corrupted somehow. In general, it’s always best if you try to keep the connector versions in sync, as this could create problems (we’re thinking of packaging Rhino and Gh in one installer to prevent this)

To try and pinpoint the issue, could you try and re-install the connectors you have on your machine? I think Rhino and Gh would do, but let’s be on the safe side :slight_smile:

Hi Alan, many thanks for your help with this. It’s great to be finally getting to grips with Speckle it’s been on my to do list for a while and I have high hopes it will bring some great improvements to our workflow!

So I tried installing / re-installing the connectors (I only had Rhino & gh connectors installed) with the speckle manager and still the same problem. I also tried it in Rhino 7 (I’m still using 6 most of the time for now) but it’s still not working either. I’m wondering if a complete Rhino re-install might help?

By the way this is what I’m getting - slightly different viewport results depending on local data or stream, if that’s any clue! CWS3GjOVTX|690x382


Could you try with just the Grasshopper connector installed? To rule out possible conflicts with the Rhino connector.

That result you are getting is super weird… not sure what to make of it. Lets see if only having the GH connector makes any difference :crossed_fingers:

Okay, just uninstalled Rhino connector and again in both 6 & 7 but still the same consistently weird results! Also tried a trimmed surface without the circular cut-outs and it was fine, as soon as I make a circular cut-out it breaks…

1 Like

Could you share with me the stream you are sending to? Making it public would do too.

It would be helpful to see if it’s the sent data that is wrong, or the problem is when receiving it.

Here’s the stream - I just made it public too

1 Like

Just tried it on another machine here and I have exactly the same problem… :thinking:

Thanks for that! I can confirm I’m getting some really weird results on my end too! I’ll look into it further and keep you posted!

Hi Alan, I was messing around trying different variations of this problem this morning and found that the problem only seems to occur when absolute circles form part of the trimmed surface - it works fine for elliptical curves. I also tried a region union with a circle (instead of circle cut-out of surface) and had invalid result but again with ellipse it was fine. I feel like I’ve had similar issues before like this which I think were to do with curve direction?


Hi @mattm! Thanks for the update.

I did notice that myself, I’ll have a better look today but it definitely seems like the circles are to blame here, although haven’t found anything that is clearly wrong in the data.

I’ll keep you posted througout the day :smiley:

Hi @AlanRynne did you manage to get any further with this issue? Many thanks

1 Like

Hi @mattm!

Yes we have! It seems to be a scaling issue with the Arc conversions coming into Rhino.

Arcs won’t get scaled properly when sent from any other unit than meters to meters. Could you try changing the units of your rhino file to meters and confirming if that is the case in your computer too?

1 Like

Back again with even better news!

We recently changed the way the Arc class was being created, which introduced a small bug that had been lurking for a while unnoticed, as it was not being used until this change.

I already opened a PR for the fix, it was rather small :slight_smile: fix(objects): Fixed arc conversion by passing units to Points.FromList by AlanRynne · Pull Request #767 · specklesystems/speckle-sharp · GitHub

You should get the fix in the latest release :slight_smile: I’ll keep you posted once we do a beta release so you can get it as soon as possible

1 Like

That is great news, I can confirm that changing the Rhino units vastly improved things on my computer. They are all coming through okay as Trimmed Surfaces, however I have some strange display issues with items 0,8,12,13,14, & 15 of the original surfaces. Extracting the edges and re-creating a trimmed surface with them fixes the problem though - see second screen shot.


Hey @mattm!

It seems you are bumping into all the issues regarding Breps :sweat_smile:

The good news is that with the latest fix, most of the problems you reported have been fixed sending and receiving from and to any unit, except for plate 15, which still looks weird.

Screenshot 2021-10-07 at 09.14.05

Although sending it alone seems to work fine… I’ll have to look into this further :man_facepalming:

1 Like

Well the help with all this is really appreciated ! I’m looking forward to the next update, do you know roughly what sort of timescale to expect? - let me know if there’s a beta available. Many thanks :smiley:

1 Like