The QQL Ring
BY HEEEY
Rings are the core visual elements of QQL. All QQLs are made of a series of (often) different colored rings which are positioned one next to the other following invisible paths, also known as flow fields, in order to create the composition.
Depending of which traits are selected, rings may render in different sizes, thicknesses and structure, but what they all have in common is that they are made of a series of slightly displaced concentric circles.


Structure
Ring is the term that both the “parametric artists community” and the QQL website’s trait selector use when referring to the individual visual elements of QQL, but the underlying complexity of “rings” hides layers of sub-components that are not so obvious.
In order for a ring to be rendered, multiple pieces of data must come together in the form of a point. This data includes the position, size, color, and structure, as well as other information that helps preserve the spacing in between rings and (typically) prevents collisions.
A bullseye is what determines the composition of a ring, namely the number of bands in a ring and the ring’s density. Bands are the concentric circles that have a bit of space in between them. A ring may contain anywhere from one to seven bands.


Depending on the size and thickness, a band itself is actually made up of a variable number of circles of variable thicknesses. When these circles are drawn together, they give the appearance of a single, slightly irregular band.
Finally, the circles are not exactly circles, but actually a linked sequence of concatenated strokes. These strokes make up the sides of an n-sided regular polygon, where sides always have the same length, and where the number of sides depends on the diameter of the circle. The smallest possible rings are rendered using octagons, while the largest have thousands of segments.
Thickness & Texture


The ring thickness and spacing between bands may vary a lot from ring to ring, making it possible for very different types of rings to emerge. This variety is particularly visible with mixed-thickness settings, where a single seed may contain a diversity of ring styles all within a single composition.
Rings with three or seven bands are always rendered to fill all of their point’s space, leaving only a minimal empty bullseye at the center (which may be slightly larger when the rings are thin). However, single-band rings only follow this max-thickness rule up to a certain size. Any single-band ring that’s larger than 4% of the canvas width has a larger hole at the center, and the thickness ratio diminishes as the ring grows larger.
Although there is always at least some spacing between bands, seeds that use thick rings and the "Stacked" color mode may generate rings that appear solid at first glance. Upon closer inspection, we can see that those rings with similar stacked colors still appear monolithic with very small spacing, while those with different colors exhibit more distinct boundaries and can more clearly display the separation between rings, with the ring’s appearance softening, darkening or mixing depending on the colors used.


Thin rings generate lighter seeds. In large rings, the extra emptiness between bands makes this white space very visible. In tiny-thin-ring seeds a very interesting effect happens: rings become an evolving-color texture that’s light and airy, where the actual color of the ring mixes with the background, tinting it ever so slightly. This occurs because, despite being solid, the space the rings occupy is actually a very small percentage of the surrounding canvas, which allows the background color to prevail.
Under “normal” circumstances rings don’t intersect with each other. Even in some seeds where different paths cross and seem to clash, there is still some minimal separation between rings. There is one exception, though. In “stacked” color mode, two layers of rings are painted on top of each other. Each ring has a counterpart that is drawn beneath it. There is also some deviation that can make the bottom rings be slightly shifted down or to the side. This deviation is variable and can oscillate from minimal to slightly noticeable, but is fixed throughout a seed.


In small-ring seeds, this deviation happens in the maximum way (in relation to the ring size), and ring overlap may happen. This overlap may manifest in two different ways. The first kind happens when same-size (and sector) rings are drawn closer together than their stacked deviation. This results in a continuous grid of chained rings. The other kind of overlap happens when rings of different sizes are drawn close by. Because of how the algorithm works, a group of rings of the same size are drawn first, and then another group of rings of a different size is drawn immediately after. When this happens in combination with stacked rings and a large deviation, the bottom rings that are drawn in the later phase may fall on top of the top rings from a previous phase, and vice-versa.
Size & Position
One of the key compositional elements in QQL that gives the artwork a vast possible visual output range is ring size. Several traits, namely “ring size”, “size variety” and “margin” all affect how small or large rings can be in any given seed.
Rings have a slight possibility of being assigned a tiny radius. As long as the radius is larger than 0.08% of the canvas width, it will be rendered. Really small rings no longer look like rings to the naked eye, but tend to be perceived like dense lines of color. However, the rings are still there, and rendering a seed with super high resolution makes the rings visible. When rings have a radius below the 0.08% threshold, they don’t even get rendered, which gives the chance for large white space areas to arise, creating novel and interesting shapes. It is even possible for an empty seed to appear, where all rings in the seed are below the size threshold for being rendered.


On the opposite side of the spectrum we find large rings. Rings that are a bit larger than the canvas width can render as long as they are centered horizontally on and the margin was set to “None”.
Rings may have a center that is off of the canvas, sometimes resulting in only a sliver of the ring being shown. However, the algorithm only draws rings where no side of the ring is more than 5% beyond the edge of the canvas. This prevents large rings from being centered off-canvas.