Applying a weave pattern along mesh edges


Using kangaroo I’ve generated a gridshell mesh using a base mesh that looks like this:

And the shell:

What I’m trying to achieve is to apply a torchon lace pattern along the clothed edges like this:
with green.png and torchon

My question is wether the best approach would be to generate the lace pattern using the edges or rather in each mesh face. What I’m thinking is dividing the edges using warpweft and so on, but before I continue on the journey I’d like to consult all you experts in regards to what would be your recommended approach.

Script: (14.0 KB)

Thanks in advance!

Hi again!

I made some progress today, but I’m not quite there yet and could use some input as to how to proceed.

I managed to achive the “knot” along the middle of each edge:

But now I need to connect the lines in some way and I’m having some trouble sorting them in correct lists. The goal is something like this:

Perhaps a better idea would be do to join the edges and work with them instead of working on each edge individually, I tried using the warpweft component but I’m not getting the exact result needed, some naked edges are included in the results as you can see:

I would appreciate any input as how I should proceed.

Here’s the updated script:
Torchon lace (27.8 KB)

Thanks in advance!

Hi @holjman.s
One way to approach this that can be easier is to make the pattern on the full regular flat mesh (by making it in a unit cell then arraying), then use MeshMap to transfer this to the form-found shell.
Here’s an example (I didn’t model your actual lace pattern here, but hopefully it conveys the idea) (19.6 KB)

1 Like

Different ways to achieve this - I’d do a search on knots and weave patterns and stuff.

I had a quick occurrence and put it together, however I am sure you can find a more efficient method later:
Torchon lace (53.3 KB)

Make sure to disable or disconnect the pipes before playing with the script as having the pipes live can make it slower - I was also using the mesh pipe instead of the regular pipe for faster meshing.


What Daniel brings up, for example, is most likely a better approach!


Thank you both very much for your replies and your work! Amazing stuff! As I’m in the process of learning I think I’m gonna pursue the approach presented by Daniel. I only have one question regarding the MeshMap component. The curve you used in your example is a flat curve, only existing on the xy-plane. As I want to achieve a “weaving” results, the curves I intend to map from the flat mesh has to be 3D. Is it possible using the MeshMap component? I tried changing the curve by moving some control points up and down the z-axis but it wasn’t working.

Ah, good point. Yes - MeshMap is really just for points which stay on the mesh.
For transforming geometry that is also above/below the mesh, you could use MeshCageMorph (20.9 KB)

(uses the component from here Skeleton fattener + mesh cage morph, and weaverbird for the thickening)

(you need to click the button input to the MeshCageMorph component once at the start to calculate the initial mapping)

Here’s something closer to your original question (248.2 KB)

This reminded me - this cagemorph component doesn’t currently work with datatree input because of the way it precalculates the mapping. So here I flattened then unflattened the tree of points. I also scaled the pattern inwards by 0.999 to avoid some tolerance issues with points around the outer edges.


Good question.

I’ve made an attempt with a per-face approach: (32.9 KB)

Now I can tell that maybe many problems can be avoided/solved by using a per-edge logic.
I would make a stripe/ribbon for each edge (thus covering also naked edges and triangular faces), and build a logic from there…


04:00 am!
I’m sick (nothing serious) and doing this madness help me forget about the pain!

Per-edge method:
With weaverbird is sort of “easy” to get a starting structure:

… then… stuff happens.

by connecting all the rope segments we are left with only 6 weaved closed ropes:

With an even amount of half-turns twist for each segment: (still 6 total ropes)

weave (53.1 KB)

PS I spend a big % of time optimizing the curve to SubD pipe c# script. It’s pretty good and fast.


Holy… I don’t know what to say. I guess first of all get well soon Riccardo! And I’m glad that my strange topic helped to distract you from your sickness!

Thanks to all of you for replying and giving your input in this, this forum is really amazing! I’ve looked through all of the scripts and will do my best to wrap my head around the process behind all of them, as I’m on the forum to learn, not to receive free scripts (although it’s much appreciated! :smile: ).

I will report back in a few days with some results! Big thanks again to all of you!

1 Like