Skip to main content
Skip table of contents

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.

We maintain a list of forbidden native Grasshopper components here. For each supported third-party plugin you can find a list of forbidden components in your backend settings.

Manipulating the Rhino document

Everything stays in Grasshopper. Anything that reads directly from or writes directly to the Rhino document (like Rhino document objects, layers, etc) 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 platform's architecture.

Non-deterministic behavior

Complicated words for something simple: any component that recurringly schedules further solutions in Grasshopper will be rejected. Think of the solver components in Galapagos and Kangaroo.

Reading from a local file

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 that replicate those functionalities using a URL instead of a local path. See section Inputs on importing CAD files (aka “external geometry”), bitmaps, or text files in various formats.

Saving to a local file

For an even more apparent reason than referencing one. You can check our export components for extracting data or downloading 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 scripts before they can be executed. 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 that have previously been accepted or denied will be remembered.

Plugins

There are hundreds of Grasshopper plugins, and installing all of them on our servers is not realistic. 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 possible.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.