What's the Best workflow for applying surface patterns on a 3D mesh?

Hey everyone,
I’m exploring different perforation patterns on a 3D mesh model.
My goal is only to change the surface pattern, not to alter the geometry.

I tried converting the mesh to a surface using several methods, but due to the model’s shape and curvature, the results are inaccurate and make it difficult to use pattern tools such as LunchBox.

I’m looking for an efficient, reliable workflow for applying patterns directly on a mesh.
A few questions:

  1. Is there a recommended Grasshopper workflow for pattern generation directly on mesh topology (without converting to a bad surface)?

  2. Is there a Grasshopper equivalent to UV unwrapping workflows (like in Blender) that would allow clean 2D pattern mapping on a mesh?

  3. If not, is a hybrid workflow (e.g., Blender UV → Grasshopper patterning → back to Rhino) commonly used?

Any tips, components, or plugins would be greatly appreciated. Thanks!

Does your Mesh have uv’s?

You can use them in gh

How can I check or create a UV map for my mesh, and what do I do with it afterwards?

Hey, thanks for sharing,
I’m not interested in re-creating the shell or flexing it between models right now.
Just experimenting with different patterns as freely as possible.
I would appreciate help and sharing on this issue.

Mesh Cage Morph might still be an efficient approach.

Shape Map seems to be a good candidate for that.

https://www.food4rhino.com/en/app/shapemap

I don’t have the appropriate plugin and I can’t see the script properly. What should I download?

You’ll find the component here:

Unfortunately, I still can’t download it properly, what could be the problem?

What Rhino version are you using?

Run the command _SystemInfo and paste the result in a new post please.

Rhino 8 SR25 2025-11-10 (Rhino 8, 8.25.25314.11001, Git hash:master @ 305475a429872768e321960d34ed215b72a0da18)
License type: Commercial, build 2025-11-10
License details: Cloud Zoo

Windows 11 (10.0.26100 SR0.0) or greater (Physical RAM: 32GB)
.NET 8.0.14

Computer platform: LAPTOP - Plugged in [100% battery remaining]

Hybrid graphics configuration.
Primary display: Intel(R) UHD Graphics (Intel) Memory: 2GB, Driver date: 6-8-2024 (M-D-Y).

Integrated graphics device with 4 adapter port(s)

  • Windows Main Display is laptop’s integrated screen or built-in port
    Primary OpenGL: NVIDIA GeForce RTX 4070 Laptop GPU (NVidia) Memory: 8GB, Driver date: 7-11-2024 (M-D-Y). OpenGL Ver: 4.6.0 NVIDIA 556.19

Integrated accelerated graphics device with 4 adapter port(s)

  • Secondary monitor is laptop’s integrated screen or built-in port

OpenGL Settings
Safe mode: Off
Use accelerated hardware modes: On
GPU Tessellation is: On
Redraw scene when viewports are exposed: On
Graphics level being used: OpenGL 4.6 (primary GPU’s maximum)

Anti-alias mode: 4x
Mip Map Filtering: Linear
Anisotropic Filtering Mode: High

Vendor Name: NVIDIA Corporation
Render version: 4.6
Shading Language: 4.60 NVIDIA
Driver Date: 7-11-2024
Driver Version: 32.0.15.5619
Maximum Texture size: 32768 x 32768
Z-Buffer depth: 24 bits
Maximum Viewport size: 32768 x 32768
Total Video Memory: 8188 MB

Rhino plugins that do not ship with Rhino
C:\Program Files\SimLab\Plugins\SimLab PDF From Rhino\SimLabPDFExporter.rhp “SimLab PDF Exporter”
C:\Users\Acer\AppData\Roaming\McNeel\Rhinoceros\8.0\Plug-ins\KeyShotRhinoPlugin (78243fe3-17a0-4865-b713-88b4c224c48c)\1.5.0.0\KeyShotRhinoPlugin\KeyShotRhinoPlugin.rhp “KeyShotRhinoPlugin” 1.0.0.0

Rhino plugins that ship with Rhino
C:\Program Files\Rhino 8\Plug-ins\Commands.rhp “Commands” 8.25.25314.11001
C:\Program Files\Rhino 8\Plug-ins\rdk.rhp “Renderer Development Kit”
C:\Program Files\Rhino 8\Plug-ins\export_STL.rhp “STL Export”
C:\Program Files\Rhino 8\Plug-ins\RhinoRenderCycles.rhp “Rhino Render” 8.25.25314.11001
C:\Program Files\Rhino 8\Plug-ins\rdk_etoui.rhp “RDK_EtoUI” 8.25.25314.11001
C:\Users\Acer\AppData\Roaming\McNeel\Rhinoceros\packages\8.0\PanelingTools\2024.8.20.677\PanelingTools.rhp “PanelingTools”
C:\Program Files\Rhino 8\Plug-ins\NamedSnapshots.rhp “Snapshots”
C:\Program Files\Rhino 8\Plug-ins\ShrinkWrap.rhp “ShrinkWrap” 8.25.25314.11001
C:\Program Files\Rhino 8\Plug-ins\MeshCommands.rhp “MeshCommands” 8.25.25314.11001
C:\Program Files\Rhino 8\Plug-ins\QuadRemesh\QuadRemesh.rhp “QuadRemesh” 8.25.25314.11001
C:\Program Files\Rhino 8\Plug-ins\IronPython\RhinoDLR_Python.rhp “IronPython” 8.25.25314.11001
C:\Program Files\Rhino 8\Plug-ins\RhinoCycles.rhp “RhinoCycles” 8.25.25314.11001
C:\Program Files\Rhino 8\Plug-ins\Grasshopper\GrasshopperPlugin.rhp “Grasshopper” 8.25.25314.11001
C:\Program Files\Rhino 8\Plug-ins\Toolbars\Toolbars.rhp “Toolbars” 8.25.25314.11001
C:\Program Files\Rhino 8\Plug-ins\Displacement.rhp “Displacement”
C:\Program Files\Rhino 8\Plug-ins\SectionTools.rhp “SectionTools”

after downloading, drag the *.gha into grasshopper

Does the component appear in the transform tab?

I dragged the plugin and it is installed but I still can’t open the file properly.
Do you know why?
And before I dive into these installation problems I would like to understand in a descriptive way how this component will help me with the action I want to perform?
Thanks

It seems you installed the MeshCageMorph2 component. It works slightly different than the MeshCageMorph component.

The component allows morphing a mesh from one mesh to another. The reference and target mesh must be topologically identical. The idea is that you can have a simple / standard mesh which is easier to edit that a mesh in its properly aligned position on a patients arm.

This is the component you sent, I’ll check on another one.
Ok so from what I understand in a case like mine where I just want to explore different patterns this component is not effective. For the sake of clarification it is a hand orthosis but at a different stage in its design. I’m after the fitting stages

I am looking for a way to generate a UV map for this mesh that will allow me to work with patterns or knits to turn this mesh into an untrimmed surface so that I can use additional tools.
Are there any effective solutions for this?

You can use the Rhino command Squish to unroll the mesh but it’s unlikely that you can turn the mesh into an untrimmed surface. That would be a surface with 4 edges. I see more than 4 edges but maybe I’m ignoring something?

Ok, Squish is progress,
After this operation is it possible to return the layout to its previous state? And is it possible to link them together in Grasshopper?

Yes. The meshes should both have the same topology.