Accurate pattern on polysurface

Hi friends, I have a problem in having an accurate pattern on a shoe sole. The sole is not a surface and due to rised edges,we have a brep. I can not have discrete pattern on each face,it should be continous. I can not have a surface with tools like network, it should be qite accurate. I can not use twisted box mesh because my pattern should be continous again. I tried paneling tools both in rhino and grasshopper but i couldn’t reach desired result. maybe I was’nt good enough at it. I even doubt on mapping panels or creating them in algorithm. It will be great help if you guide me. Thanks a lot.

This red sole is my target brep.

And white patterns are desired patterns to be created on sole with rised edges.


Pattern on Polysurface.3dm (3.2 MB)

similar question here:

The only practicable method in Rhino is render mesh modifier called displacement. Brian James made two videos about shoe sole patterns made of displacement. ExtractRenderMesh command can extract the render mesh modifier and transform it into ordinary mesh.

1 Like

Thanks a lot. They’re really good but my employer is professional at rhino, he just want it to be designed in grasshopper.Do you think that grasshopper can not do it?

I am not Grasshopper expert. In my opinion, it is doable except edges of the sole. Displacement method is as versatile as the Grasshopper method, but much easier.


There’s been an awful lot of this question lately. I would make an intermediate nice smooth single surface to use as a “proxy” to flow the pattern.

Noe that the result in the photo you want to obtain was clearly NOT made by “flowing” a pattern along anything like the sole shape you modeled, FlowAlongSrf is not magic, it just maps objects from one reference surface to another.


Hi @Akram.EL, you might ask your employer to show you an example using GH and send him your 2d pattern and 3d polysurface only.

Since i’ve been doing this kind of pattern application over the past years, i can tell you, it is not as easy as it looks to obtain the desired results. For doing it with the Displacement modifier (which is mesh based) or using FlowAlongSrf to get Nurbs surfaces many pre-conditions must be met. Your midsole geometry must be ‘unrollable’ in order to “apply” the 2d pattern as outsole. It doesn’t have to be a single surface unless you’re really trying to work with FlowAlongSrf.

Imagine having the physical version of the midsole and the outsole pattern. If you would try to seamlessy glue the pattern onto the midsole what will happen to it ? It will likely have to be stretched and compressed to follow the 3d geometry of the midsole. This causes some often unwanted deformation which is visible in the end result making the 3d outsole pattern become irregular.

To get rid of this unwanted effect, you might ensure some preconditions are met, which are, unfortunately not present in your midsole. So before you start, you might ask yourself the following:

  1. Is my midsole geometry fully continous without sharp edges ?
  2. Can it be unrolled without causing unwanted deformations ?
  3. Can the pattern be deformed from 2d to 3d without adding extra points ?

Once you are sure you meet these conditions you need to develop a workflow which you can then repeat, eg. using Rhino commands or equivalent custom GH components.

Attached example was made using custom scripted tools by creating a very dense 3d mesh from your midsole and unrolling it to a 2D mesh. Then the 2d pattern was placed on the unrolled midsole mesh and trimmed to match the outer boundary of the midsole. Then the flat pattern surfaces where rebuild to have enough control points so the Nurbs faces can be “flowed” from 2d to 3d.

BlackMagic.3dm (2.5 MB)

Once you inspect the surfaces you’ll spot that in some areas, the pattern looks slightly deformed. This is because your midsole is not fully continous and therefore causes heavy stretch and compression once unwrapped…


1 Like

@clement I’m deeply thankfull of your worthy information and your time to answer. I should completely examine what you said and ask my questions. Thank you again🌹

Here is the grasshopper plugin may help you.

1 Like

you can just using a image file to make relief surface. no need to make 3d pattern first.

And faces are joined to one polysurface.

you can try on your own.
Pattern on (369.6 KB)
Image used in this gh example file, you can try and load other image.

1 Like

@zhuangjia777 I deeply thank you for your good plugin and also your explanations. I downloaded surfacerelief and your .gh file. I Expected the output of joinsurfsce component would be a surface but its brep again.its great that we can have pattern based on bitmap,but for my problem unfortunately i think it’s not the solution

Thanks @clement . I read your comment several times and understood your tips somehow. Shoe sole is not my expert but what you said is quite true. So what’s your opinon about file you sent to me?is it acceptable or has problems again?and would you tell me please how you patterned it?with which command?

In the file you provide, which is a brep. And brep is made of joined surface. Not sure you what you ask for.

1 Like

It all depends on the desired outcome you would like to get. Do you want to have the final pattern as surface, polysurface or mesh ?

If you import my file into the file you posted, you’ll spot some areas of distorsion where your polysurface has small features. The pattern you’ve provided cannot flow smoothly over these features since it also contains features which are larger then the ones of your midsole.

Are you familiar with the FlowAlongSrf command yet ? I think you should first try to build your pattern with build in Rhino commands. If you find out that you cannot get past the usual limits eg. it’s very hard to represent your midsole with a single surface, then you should try out possible alternatives like the PlugIn @zhuangjia777 posted. It all depends on the outcome. Is it for rendering, 3d printing or construction … do you want to create a mold from the sole once you’re happy with the look ?

It was made with custom scripts i wrote.

1 Like

hi @Akram.EL
i morph pattern in UnSplitSurface and create your parametric pattern in grasshopper (53.3 KB) (53.3 KB)
(Rebuild your Brep to UnSplitSurfce)
Maybe I could help


two my solution :point_down:
SHOES-by (43.0 KB) (55.1 KB)

1 Like

Thank you @arcarc60 . I think this is what I need, I couldn’t install the plugin yet. As soon as possible I will check it and tell you the result. Thanks again🌹

1 Like

Link for plugin

1 Like

Dear @arcarc60 ,I downloaded your plugin and saw algorithm and really enjoyed. I deeply appreciate the time you spent on it. Just i had a problem in file, the Move component above the pink gene pool is the last component with output result, then in loft there’s no output.