by -

Grasshopper designers, 

we are happy to announce a long-awaited new feature to you – support for textures. The ShapeDiver plug-in for Grasshopper has been extended with components enabling you to specify texture images to be displayed in ShapeDiver's viewer. In the following we explain how to make use of this feature. 


Texture images are specified by means of publicly accessible URLs. You are not required to embed the images into your Grasshopper model – simply make your texture image available for download at a publicly accessible URL. ShapeDiver's material component in Grasshopper will download the specified texture image for you, and use it for preview in Rhino. Give it a try, here is an example of how it works in Rhino+Grasshopper: 

When uploading this model to ShapeDiver, the texture image will be downloaded as well, and used for displaying your model in our viewer. The URL you specified will be accessed only once, and the image will be cached on our servers – until you delete your model. Please be aware that you are responsible for making sure you own the required rights to use the images you specified on ShapeDiver (cf. clause 4.2 of our terms). 

Texture image URLs can be parametric as well, meaning you can make use of images generated on-the-fly. Check out this example

Image formats

Currently ShapeDiver supports these image formats: jpeg, png, bmp, gif, svg. Please be aware that Rhino does not support the latter two (gif, svg), i.e. you can't preview them in Rhino. 

Depending on the texture image you specified, our material components in Grasshopper might display warnings to you – making sure to resolve those warnings will significantly improve performance of your model in ShapeDiver's viewer. Your images should ideally be square sized, and their resolution should be a power of 2 (..., 64, 128, 256, 512, ...). 

Texture coordinates

Part of the art of texturing your models is understanding texture coordinates. An in-depth explanation of texture coordinates is beyond the scope of this blog post. We will dive into more detail in further posts. Keeping it simple, texture coordinates are 2D coordinates defining how the texture image (and which parts of it) gets mapped to your mesh. 

When creating meshes from NURBS, texture coordinates are set based on the parametrization. This is not always what you want. Therefore we have included two components which allow you to tweak texture coordinates. 

ShapeDiverBrepOrMeshSplit (SDBrepSplit) allows you to explode a solid consisting mostly of planar faces into the surfaces facing up/down/left/right/front/back, allowing you to texturize them differently. 

ShapeDiverTextureTransform can be used to apply arbitrary transformations to texture coordinates of meshes, and to apply some randomness in order to avoid too obvious repetition of textures. 

Give it a try! Download our examples and check out the Bookshelf_texturized or the CoffeeMug models. 


In the near future we will support plug-ins, which will open up lots of possibilities for manipulating texture coordinates. In particular, we will support the Human plugin which contains useful texture mapping utilities.

Any questions? Please ask them in our forum

You must be logged in to comment.