Hi there! Below an example of an artwork by artist Amber Vittoria. As a challenge, I’d like to create a definition that can recreate this geometry with an input polyline.
So my thinking is to take a polyline curve as input, and then to define the ribbon width by offsetting the curve on both sides. I can then loft the two curve offsets and define whatever colour to the resulting surfaces. What I’m struggling with is what happens where there is a change in direction and how that folded edge detail is created.
To avoid issues with curve offsetting, I explode the polyline into segments and move each curve segment up by 1 in the Z-axis. I get unpredictable curve offset results otherwise where the polyline overlaps itself, having each segment on it’s own “layer” is my attempt at getting around this. I figure there are better ways to go about this.
From the example image, I devised the following rule for determining the angle of the fold edge: Where the polyline has a change in direction, the angle of the fold edge CD appears to be perpendicular to the line AB (with A being at the point of change in direction in the polyline, and B being the intersection between the curve offsets)
How to set this up in Grasshopper, I’m a bit stumped. I presume that one could calculate the angle of the fold edge by extracting the curve segment vectors? Bearing in mind, the definition needs to be able to accept a polyline with a variable number of segments - how to manage the data branches in this case is a bit above my skill level - I made an attempt at this by using the Heteroptera component Dispatch/Unweave, but the definition isn’t flexible if the input polyline were to suddenly have more segments.
Any ideas on how to approach this would be appreciated!
amber vittoria experiment.gh (10.0 KB)




