Hi @jonathon , thanks for this detailed post on diffing. I have been exploring diffing with Rhino objects and I do realise an issue that I would like to get your opinion on. Currently, whenever I restart my Rhino, the Rhino connector would tell me that my Speckle model is out of sync. I would update and when i compare to the previous version, it basically shows that all objects have been modified. For my understanding, this means that the action of closing and opening Rhino causes the object id of all elements to be changed. Was wondering if you are aware of this issue and if there are any fixes for this?
I would also like to know how this applicationId and referenceId (object id) was retrieved from Rhino.
Thanks for the report - I investigated briefly, this looks like a nasty bug that is a byproduct of how we are serializing breps/extrusions/subds in Rhino now.
In short, we are creating a temp 3dm file with the geometry and encoding the value of that temp 3dm file for serialisation, which means the speckle id will change every time you start a new session of rhino
We’re looking at solutions atm, will keep you updated once we find a fix.