I have seen a few posts about the compute pipeline and possible implementation of speckle components via Rhino Compute, I’ve been running a compute server to house an early phase planning tool for our company and so far have used ghx scripts to modify and colorise ghx scripts. Speckle is really handy because most of our architects work with Revit and its easy to send geometry I generate in Rhino to Revit. I’ve tried using the speckle send component in a ghx script but it doesnt seem to work, is there a way around this or is it just not possible to use these components in a headless environment because the send component has a ‘ui’ button.
I also want to know whether it is possible to use compute to just convert my rhino geometry into speckle base using the ‘To Speckle’ component and then just getting the geometry in python and sending via a transport?
Most of our grasshopper components have been upgraded to work on Rhino.Compute, but the 2 main ones (Send and Receive) behave in an asynchronous way by design and won’t work on Rhino.Compute environments at all.
This is the same issue other components such as Kangaroo2 have (where you’ll need to use the Zombie solver instead).
You’ll find a Send Sync and Receive Sync component that will work as expected in a Rhino.Compute environment. they behave the same way as the ones you’re used to, but they don’t have a button. Instead, they’ll receive/send as soon as all required inputs are connected, and will lock the Grasshopper UI while doing so
Most of our nodes should work now, with the above exceptions, but not all possible workflows have been tested! So if you find yourself having more questions about Speckle+Rhino.Compute don’t hesitate to let us know, we’re very interested in finding out what possible use-cases are out there
In order for Speckle to work on Compute, you’d still need to provide an account by either:
Having an account setup in the same machine you’re running compute in. If you’re running compute in your local machine this should work just fine. Just ensure you have the account properly set in Manager. This account should have access to the streams you’re trying to receive/send to/from
For remote machine deployments, you may want to have each user use their own account for compute runs. For that, set up your definition with an inputAuth Token and use either Account From Server/Token or Stream Get with Token to retrieve the Account/Stream and use the specified authentication token to perform any operations.