Introduction
Not much to say about this one. I used the momentum I had from the Voronoi Tilings and Celtic Knots to continue with another small project. This came from a paper by Craig Kaplan and Tiffany Inglis. Although the paper is about "Gothic Architecture", I don't really think it applies; but it did, as an aside, lead me to Robert Billings who has a bunch of books about real gothic tracery patterns! Given that the guy died before 1900, most of his books are available on Google Books, so check them out. Beyond the ones about the geometry of ornament, he has some pretty great illustrations from a time before photograph printing was common.
Anyway! About the project itself - it's a fairly straightforward implementation of a fractal called Apollonian Gasket. It can be easily summed up by "it's circles all the way down".
How does it work?
Apollonian Gasket
A general Apollonian Gasket starts with 3 circles (C1, C2, C3) tangent to each other (that is, touching but not intersecting). Skipping over the technical details, there are exactly two circles (C4, C5) you can add that is adjacent to the previous three. When you add this new circle, you get a bunch of new triplets of tangent circles - (C1,C2,C4) (C1,C2,C5) (C1,C3,C4), and so on. The circles generated get progressively smaller, but you can apply the same method forever.
Apollonian Flower
To go form a gasket to a flower, you need to do three things: choose a seed, duplicate the apollonian gasket at a "syncopated angle" (I'll explain) and finally, of course, give it some color (since smell is currently beyond the capability of personal computers).
The seed is given by two rings of adjacent circles, an inner ring and an outer ring. You can choose any number of circles, which will affect the thickness of the ring.
The circles have a certain "rhythm". The angle between two adjacent circle is a "full step". If you duplicate the ring and turn it only a "half step", you get a "syncopated" ring. I hope the analogy makes sense!
Coloring
To preserve the symmetries, I colored each circle by its size. Just like in the Larger-than-Life CA, it's a handy trick to get a linear gradient. In this case, it even works better, since the circles are discrete. I also put the smaller circles on top (otherwise the overlapping big circles would obscure all the detail!). I just set some rough variables like hue speed and offset which aren't very customizable (I could have used a custom palette generator like in the LtLCA, but this was just a quick experiment). If you actually want to use these patterns, it would be nice to assign colors to sizes more directly - especially since the smaller circles correspond to detail, while the larger ones are like the background (imagine a golden necklace with tiny gems).
In sum
The method, then, is simply:
- Choose the seed rings;
- Apply the Apollonian Gasket method;
- Syncopate the patterns;
- Color it.
Software
You can download this one on my itch.io page. If you want to look into the code, feel free to ask.
Gallery
Some more examples.
Some actually have a bug, missing one of the cicles... OOPS. I later fixed it, but didn't redo all the screenshots. You get the idea!
Others also fail to fit perfectly on the outer circle. I also solved this, later, by introducing a small gap in the "middle" of the radius, where you see an empty ring in some patterns.