Having successfully integrated the code and generated a solid set of SuperShapes in monochrome, the next obvious step was to add color. To do this successfully, however, would require a sound strategy if this were to be achieved programmatically, given that each shape consists of 3,600 line segments.
Knowing that the shapes are created with pure Math1, and are heavily patterned, would seem to indicate that color distribution should follow suit . . . but with what equations? We first tried modulus-based operations (e.g. every Nth segment) within a limit of a defined period (like 400 elements per petal in a 9-petal Rose, in that 9*400=3600), but the results were niether predictable nor pleasant.
The next method we tried was based on the ‘physical’ length of the segment, effectively creating a set of color filters. So as we cycle through the entire collection of segments, we’d say “if a segment is greater than .1 and less than .2 in length, set its color to green”, and so on, for whatever range of lengths and colors we chose to define.
The initial results were startlingly good — so good, in fact, that before we completed the mapping, we created the series of screenshots that you see below. One amazing feature of having added color is that a new level of detail has been exposed. In the monochrome versions, due to the crossing over of so many lines, certain patterned elements appear to be a contiguous solid. Since we are now separating lines by length, it is much easier to see the finer details. In some cases, the textures remind us of bird feathers and quills, to the point that we really have to ask, “Is this how Nature does it?”
Now on to finish the rest of the series . . .