Hi there,
I’m trying to understand why I need the rhino compute appserver in a rhino compute environment.
I already know that the appserver is a node js server that is in between the client and the actual compute server, but why is important to install it and what’s the case when I would not need it?
Wouldn’t be enough to call the compute via python, js, c# or hops?
Following the video Rhino App Server - YouTube I tested locally the first two samples (spiky thing and clash detection) and realized that the appserver is not something mandatory to have in order to read a grasshopper definition, and this caused me many doubts.
So, why would I need it? To be able to reach many grasshopper definitions?
I am sure I am not understanding some of the steps and would like to look into it with your help
The appserver project is an example of how to create a server which hosts your GH definitions. Here are a few use cases:
You want to give access to your GH definitions but do not want to share the definition logic. The appserver hosts the gh definitions and only communicates them to the compute server.
You want to have a central repository of GH definitions for a group to access and use with hops or through other means.
Appserver links used in hops will solve on the compute server associated with it. This screenshot is from Rhino for Mac. Rhino.Compute is not supported locally on macos, but I can still use hops with a remote compute server or an appserver connected to a compute server.
Thank you for the detailed answer Luis.
One more question: let’s say that I want to create a website where the user can manipulate and download certain parametric geometries or data through a grasshopper definition.
Is it correct to say that without the compute.appserver infrastructure the definition would be exposed to the download from the client side? And this because the definition itself would be hosted by the server where the compute is running but open to the download hitting a specific endpoint?
Kind of. If you want to protect your gh def from download, it should be in a location that the client device cannot access. This can be using appserver OR having the definitions on the same server as Rhino.Compute in a location that isn’t accessible via the web OR on another remote location/server that is only accessible to the Rhino.Compute server (which is what AppServer is).