Forbidden Grasshopper functionalities
Without being completely exhaustive, here is a list of functionalities that we don't allow on our servers. Grasshopper components that perform operations from this list are detected during the upload process and the model will get denied because of them.
Manipulating the Rhino document
Everything stays in Grasshopper. Anything that reads or writes objects, object and document properties from the Rhino workspace is a no go.
Manipulating inputs
On ShapeDiver, a Grasshopper definition must define a one-to-one relationship with a computed result. One set of parameters should always lead to the same outputs. If components or scripts are trying to update inputs (sliders, value lists, etc...) or their values, they will not be accepted on ShapeDiver simply because it wouldn't make sense with the architecture of the platform.
Non-deterministic behaviour
Complicated words for something simple: any component for which the computation time can't be predicted will be rejected. Think the components in Galapagos, Kangaroo and many third-party plugins.
Referencing a local path
The uploaded definitions must be self-contained: you cannot attach static CAD files or images and import them. In some cases, we have created components in the ShapeDiver plugin which replicate those functionalities, using a URL instead of a local path. See section Inputs on how to import CAD files (aka “external geometry”), bitmaps, or text files in various formats.
Saving to a local path
For an even more obvious reason than referencing one. Symmetrically, you can check our export components, for extracting data or download CAD files from the web browser.
Scripting
Scripting is only supported for users with a paid ShapeDiver subscription.
We fully allow all three scripting languages of Grasshopper: C#, VB and Python. However, Grasshopper is pretty flexible with what scripts can do, and for security reasons we need to check them before they can be uploaded. Mainly, we check that the scripts don't call or replicate the functionalities described above in this article. Obviously, we also check for malicious code. Manipulating Rhino or Grasshopper documents with the script is not allowed.
If you upload a model containing scripts, they will be sent for review automatically. You will be notified by email once the model has been accepted or denied. Scripts which have previously been accepted or denied will be remembered.
Plugins
There are hundreds of Grasshopper plugins and it is not realistic to install all of them on our servers. But quantity is not the only roadblock: many of them are not actively maintained or don't have a versioning system, which makes them risky to be included on our servers.
We try to add as many useful, reliable plugins as we can. You will find an updated list here. If you think we overlooked valuable plugins for ShapeDiver, let us know on the forum, and we will address your request as soon as we can.