The ShapeDiver plugin was initially created as a material kit for facilitating and improving online rendering. It's not strictly necessary to use the plugin for uploading models on ShapeDiver and render them in the online viewer, but it is strongly recommended because it allows more advanced control over the rendering parameters and supports textures.

Without the plugin

Default material

Every geometry with the preview turned on in the Rhino viewport will be displayed in the online ShapeDiver viewer. For all components except Custom Preview and the ShapeDiver display components, the geometry will be displayed with a default material since no material information is contained in those components. In the online viewer, the default material is a bright blue that makes it easy to spot:

In most cases, you want to disable the preview for most components and only keep the display components with preview turned on.

Custom materials

In order to play with materials, one can use the standard preview components included in Grasshopper. Define a material with the Create Material component and preview how it looks directly in Grasshopper with the Custom Preview component.

This model will display the materials as expected after it is uploaded on ShapeDiver. We do our best to render the outputs of those components in a satisfying way. However, they will not make use of the advanced shaders of the online viewer using PBR (physically based rendering), and textures cannot be applied to them. This is the reason why we developed alternative components with more advanced possibilities. We recommend using them for all applications.

With the plugin


The ShapeDiver plugin contains components that can be used to replace Create Material and Custom Preview. Construct a material definition using one of the material components (glTF 2.0 Material, Preset Material or ShapeDiver Material) and send it to one of the display components (glTF 2.0 Display, ShapeDiver Display or External Display). See below an example using the ShapeDiver Material component and the ShapeDiver Display component:

The ShapeDiver display components let you define PBR materials that are optimized for viewing online, including the various textures used for those materials. For these reasons, we recommed to use them for any application where advanced rendering is needed.

Different approaches

The two main ways to define materials using the ShapeDiver plugin are the following:

  1. Define a material using the ShapeDiver Material or the Preset Material component and display using the ShapeDiver Display component.

  2. Define a material using the glTF 2.0 Material component and display using the glTF 2.0 Display component.

Each of these workflows have their pros and cons, depending on your application. We sum up the differences in the table below:

Reasons to use

ShapeDiver Material + ShapeDiver Display workflow

  • Faster material updates (the materials are stored separately from the geometry)

  • Easier to use if the textures are stored in the following way:

    • Separate metalness / roughness textures

    • Separate color and opacity maps

glTF 2.0 Material + glTF 2.0 Display workflow

  • Creation of self-contained glTF 2.0 assets that can be used in any viewer out of the box.

  • More flexibility for assigning different materials to different pieces of geometry for complex data structures (using the attribute system)

  • Easier to use if the textures are stored in the following way:

    • Combined MetallicRoughness texture

    • Opacity map stored in the alpha channel of the color map

  • Supports more material properties: (emissive textures, alpha mode, alpha cutoff, double sided…)