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)

1 Like

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

2 Likes