The Rhino BETA now contains texture mapping components. This makes it possible to create, assign and edit the texture mapping properties of objects with Grasshopper.
This feature adds to the collection of tools available to Create and Manage Rhino Objects in Grasshopper. For those that would like to automate Rhino objects from Grasshopper.
These new components are now feature complete in the Rhino BETA, though they’re still getting polish — please report anything that looks off. The Rhino BETA is available to anyone that owns Rhino 8.
Why Texture Mapping in Grasshopper?
Vary the mapping of many objects from a single definition. Assign a mapping method to every object in a stream and then let the definition adjust each one — rotate each widget by a different amount, drive the size from a parameter — and repetitive forms come out visually distinct with no manual editing. For instance, in the Try It example linked below, a UVW mapping is assigned to each piece of a column and rotated around its own centroid, so the base and shaft read as if carved from separate blocks of marble. The same definition holds whether you push two objects or two hundred.
Texture Mapping Components
The Rhino tab > Objects section, contains the texture mapping methods that can be used for either referenced geometry or for objects created within Grasshopper.
In this same section, the Model Object and Render Attributes components are used to define and change the object properties in the Rhino document as content is pushed to it from Grasshopper.
The Rhino tab > Materials section, contains components for procedural or bitmap textures that can be used within a material assigned in Grasshopper. Both the texture and the material are pushed to the Rhino document along with the associated objects.
The Params tab > Utility section, provides a Content Viewer component for viewing a preview of the material or texture created in Grasshopper.
In the Rhino tab > Content section, the Content Cache component is used to Push or Bake objects, materials and textures to the Rhino document. This can be set as an automatic action or manually triggered. The Query Directory component is also found here to help in the location and import of texture map files by name.
Note that pushing content is currently the only way to see the mapping result in a viewport. Custom Preview takes geometry rather than the model object that carries the mapping information, so it won’t show the mapping. This is a known issue and may be handled in the future.
Download and extract the attached zip folder to find these components combined in the simple Grasshopper example seen below. Note that any of these new components can be set to hide or show unused parameters via the right click menu over the center of each component.
GH_Texture_Mapping_sample_Rhino_9_WIP.zip (1.4 MB)
For the full walkthrough of the column example described above, see the Try It section of the Texture Mapping feature page. It opens up the cluster doing the work and shows how the mapping stays unique per object as you change the column count, swap the target curve and push again.
Also New for Texture Mapping in Rhino 9
- Model objects that carry a texture mapping now pass that mapping into block instance definitions when baked.
- Mapping pushed from Grasshopper now displays consistently with Rhino — no need to type into the
Nameinput to force the correct orientation. - Cylindrical Texture Mapping now matches the cylinder you define instead of coming out offset.
- In Rhino’s Properties > Texture Mapping panel, the Rotation and Size XYZ sections are hidden when the mapping type is Surface, since those values had no effect there.






