Illusions of 3D Interweavings

Sooo....

For our next project dealing with 3D surface design, I thought it would be interesting to create a basket-weave pattern of sorts....
...Which seemed simple in concept... but got a bit complicated when I decided to explore the more mathy functions of Grasshopper....

....Yay math....

I approached creating this basket-weave pattern through the use of sine waves... though creating these sine waves proved to be a bit of a challenge since I apparently haven't done math in far too long...

(Fair warning, this blog post is a bit long... apologies in advance)

(Sine wave in points)
After a bit of time googling advice and reaping it from assorted forums and websites, I finally came up with a sine wave formula that provided a result that I was hoping for. (Probably could have just created a curve from manually set interpolated points or some other method involving less... math... but.. oh well.)

From there, it was pretty simple to rotate the curve 90°, rectangular array it, and tah-dah, an array of wavy curves....

...And from there, it got a bit complicated....

To create the basket-weave pattern, each second curve had to be reversed (..is reversed the word I'm looking for here?) from the previous one. That involved some list management.
There is probably some mathematical formula that would have allowed me to do this just as easy, but oh well.

(Curves separated by odd/even, with the even curves rotate 180°)


After some further research (and desperate googling for something that I knew existed, but whose name was forgotten...), my first attempt at selecting all the even curves from the total list of curves was through using the component called 'Dispatch'.

Dispatch worked well, as connecting the curvy curve geometry to it immediately separated it into two lists by even and odd numbers (the outputs being simple: A=even, B=odd)

From there, I went on to connecting end points to the curves, drawing lines down and across the array to create sections, like we did in class last week. Each slice was extrapolated so they connected, then the whole thing was capped and baked. I couldn't quite get it to rotate easily in Grasshopper, so I took it into Rhino and created a copy of the array, rotated it 90° so it intersected the other array and the curvy top parts created and interwoven affect....

...Though that did not provide results quite as I was expecting it to (which I later realized had resulted from the waves in the curves not quite lining up when rotated and intersected, but at the time I had thought it to be a problem with the list management (namely the dispatch component) as it was not allowing me to manipulate the length and height of each wave), and from there I went to trying another method of list management.

(The results after culling the... herd...)


The component "Cull" allowed me to select the curves I wanted, though it also called for the creation of two separate arrays, one with the regular curves, the other with the curves rotated 180°. All the even curves were culled (or removed) from the first list/array, and all the odd curves were removed from the second list/array. This resulted in a single array of curves, in which each second curve was a reflection of the last.

From there the curves were once again attached with end points and lines, and joined to create sections.

(Section curves with boundary lines to show sections)

This array was then copied and rotated around an axis central to the entire array, creating the interwoven pattern.

(Rotated arrays and (hopeful) intersections that created the interwoven affect)

These curves were then extruded and capped. They were then boolean unioned in Rhino.

(Rough render of the basket-weave texture)

There seems to be some issues with the connections between the different curves, and through the examination of the curves in another view in Rhino, I found that there was a problem with where the curves of the rotated array were intersecting with the curves of the un-rotated array.

(Issues with the intersecting curves)

I haven't resolved this issue as of yet (as it was nearing 4am when I was originally working on this...) but I believe that this issue may be resolved through playing around with the spaces between the section curves.

For now, good enough. I'll play around with the curves on Friday.... or over the weekend... we shall see...

Comments

Popular Posts