Hello everyone,
My friend and I are working on a project and have encountered some data structure issues. Here’s a brief explanation of what we’re doing:
We’re abstracting the Bouligand pattern from nature. To do this, we create a series of lines (which we call fibers) and stack them on top of each other.
-
We have 12 planes, each containing 12 fibers.
-
Every second plane is rotated by 90 degrees (so planes 2, 4, 6, 8, 10, and 12 are rotated 90°).
From this primitive setup, we extract six “body parts”:
-
Body Part 1: Stacked planes with indices 0, 1, 6, 7
-
Body Part 2: Stacked planes with indices 2, 3, 8, 9
-
Body Part 3: Stacked planes with indices 4, 5, 10, 11
For Body Parts 4, 5, and 6, we focus on the points of the fibers (each fiber is divided into three points: start, mid, and end — before any plane rotation):
-
Body Part 4: All end points on each fiber
-
Body Part 5: All mid points on each fiber
-
Body Part 6: All start points on each fiber
Our goal is to perform six different transformations (such as move or rotate) on random body parts.
For example: Rotate Body Part 1 and Body Part 3 by 30 degrees.
This manipulation rotates some of the planes. After that, we proceed with the next transformation (there will be six in total), always taking the previous transformation state into account.
Have a look on our script. Ideally we would like having a ‘‘linked system’’ where every change (on points or planes) updates the whole system, but apparently this seems to be so hard to be done.
Any help is very welcomed ![]()
Question.gh (46.1 KB)