Parametric 3D Weaving Pattern with Over-Under Effect

Hi everyone!
I’m trying to create a 3D bas-relief effect in Grasshopper, inspired by a woven pattern (see image).

The idea is to use a self-intersecting curve and turn it into a parametric 3D version, where:

  • the weaving follows two height levels (like ropes moving over and under),
  • the result is a shallow raised pattern (bas-relief),
  • and all geometry is parametric (curve shape, amplitude, etc.).

Main question:
How can I manage the intersections to alternate “over” and “under” effects?

Image and base file attached.
Thanks in advance!
woven pattern.3dm (256.5 KB)

My intuition here is that you will be constrained to topologically simple weaving patterns. In your example there is ambiguity about which “ropes” are connected or seperate. The ropes which cross at the top are shown as merged, passing through the eye.

But an automated interpretation of the basic lines could be more like:

Also, if I remember correctly there is no guarantee that an aribitrary curve can be woven if the ends are loose; you could end up with unavoidable over-over-under cases which would be impossible to localise. Any correction algorothm would just chase the anomaly around forever. This is getting into the realms of Knot Theory and I am not a mathmetician!

Sorry that doesn’t solve your problem but I feel like it might be generally unsolvable.

For more constrained topologies, “celtic knot algorithm” is an interesting google. This page in particular has some methods that could be described by a GH definition. Your challenge then would be transforming a grid-based layout into something more artful, where not every crossing or loop is fixed to a grid.

I would personally consider a less automated method. I’d make a block with a simple weave in two polylines, lay them out and connect them with curves, and then do a Kangaroo physics exercise to make the ropes and pull them tight against each other and a formwork.

This may be too much brute force.

It’s an interesting problem for sure!

I have made a start on an actual solution. At least the weaving part is automated. You must use one curve for each design. Multiple curves do not interact. It can be a bit fragile if the curvature gets too tight. I don’t think I used any plugins.

I leave further refinement and conversion to bas-relief up to you or the next contributer!

Woven Rope.gh (16.3 KB)

2 Likes

There’s a big topic about celtic knotwork which might have some useful definitions:

3 Likes

Hey, do you recommend some Kangaroo tutorial for this? Interesting topic and trying it myself now.

This is very cool Tom. Learning grasshopper and reading your script is helpful!

Weave patterns and strip morpholigies on this page may help: Rhino - Learn to use Rhino

And Parametric house always has many examples. Here are the Weave examples: https://parametrichouse.com/?swp_form[form_id]=3&swps=weave

Hi Scott,

I’m now going though the weave tutorial by Zubin Khabazi 2010 but the receiver component is not listed in gh, any chance you know where I can locate it or what the new name is?

Using Hidden wires works well for data transmitter and receivers in the newer version. Although, as you can see from this thread, they are not David favorite: Looking for wireless receiver