Saturday, January 28, 2012

Patterns, Part 3

In Patterns, Part 1, we looked at planar tilings, and the graph-theoretic ways of looking at them, and in Patterns, Part 2, we also looked at space-filling curves generated by patterns.

Also, these mix-and-match patterns can be quite interesting when we introduce global rules that control which elements can join up with which other elements. We can use rules of continuity, logic, topology, and aesthetics. Still, there are more interesting mix-and-match groups to examine from the pattern elements we discussed last time before we move on to rule-based patterns.

An example of a logic- and aesthetics-based pattern is shown at right. These forms of intertwining descend from the runic intertwinings popular in the time of Harald Blåtand (Harold Bluetooth, for whom the Bluetooth NFC standard is named), as seen on the Jelling stone.

Bases and Their Patterns

I also introduced the notion of a random basis set for a pattern. This is a small set of shapes that each live within a square area (the definition area). The interesting thing is setting it up so the patterns meet up. This takes a little thought, but really it is only this: the centers of the four sides of the square all have something connected to it.

I modified my pattern application to allow me to select a set of elements to use as a basis. Last time, I was relying on fixed predetermined sets.

This pattern looks like a broken lattice. Upon closer examination, it shows a branching from the top right towards the left and bottom.

This behavior is, of course, heavily influenced by the basis for the pattern. Elements are chosen at random from the basis set, and placed on a grid so the squares fit together without gaps.

The basis set for this pattern is shown above. Because it only contains branches moving off to the bottom and to the left, this has controlled the branching of the random pattern itself. The addition of a vertical cross-over element adds a little dimensionality to it.

But the branches are not rooted anywhere. That got me thinking. I could change up the basis set to control that.

Here is a modified basis set that eliminates the crossover, and adds a root to each tree. In this case, I chose a rounded element to serve as root. By removing the crossover, I hoped to make the tree structure more obvious.

The roots are now at the top right of each tree and none of the branches cross at all.

This means that each tree's complexity is limited to what can be embedded in the plane. Unfortunately, this also meant that a significant number of those trees would be just the root. Here they look like little stand-alone frowns. And when they occur, the texture becomes lighter, less dense.

But this got me thinking again. Would it be possible to create a denser kind of branching that was embedded in the plane without crossovers?

To do that, I would have to give up the root, it appeared. And having fewer elements that had dot-ends on a side would also increase the density.

With this basis, I sought to minimize both the number of elements in the basis and also the number of dot-ends. With only a top dot-end, this meant that single dots could never occur. A branch element insured that only downward branches could ever occur. This was a reasonable start.
I realized that I could make the same pattern at any angle, because of the symmetry of the elements themselves.

This is the resulting pattern, and it is kind of like squids and tentacles, or seaweed.

Because of the law of averages (and for the same reason that sometimes you toss a coin and it comes up heads several times in a row) you can see unbroken horizontal runs and also unbroken diagonal tentacles.

Sadly, this also tends to generate stubs that come off the horizontal runs. So often, when you flip a coin, it will come up heads and the very next time it will come up tails.

I figured I was going to need some kind of global strategy to eliminate the influence of random chance, or at least to control it so I could eliminate what I considered to be undesirable random elements.
For a minute I looked at producing a grammar for intertwined threads. So, once again, I limited my basis set to as few elements as possible to generate the result I was looking for. I reasoned that I needed at least one crossover element, and at least one unconnected element. The two I chose provided a little curvature, and a little straight line, balancing the design.

When you randomly choose from this basis set, you definitely get intertwinings. In fact, you seem to get almost a braid pattern.

When I saw this, I immediately wondered how you could get a specific braid pattern, or a generalized braid pattern.

I came to the conclusion that to get that kind of pattern required a higher-level grammar controlling how the elements interconnect.

But I still like the result I got. Like confluence with under- and over-crossings. It is interesting how braid patterns can all be made out of these elements.

Knots and Braids

For an example, I include a few interesting forms I made by hand. I mentioned in a previous post that knots were possible to depict once you included over-crossings because of the multi-dimensionality they impart.

In fact, here is a pretzel, also known as an overhand knot.

The dots are included as a background, and also because I would have had to add a lot more pattern elements to make them go away. But some knots are actually a bit more aesthetically interesting, especially when they contain some form of symmetry.

Here is another knot, made from a single strand. I see this one every time I look at the keyboard, because a simplified form of the knot is found on my Mac's command key.

It also appears to be used as a symbol to indicate castles and national monuments in various parts of Europe. I have certainly seen it in Denmark, near Kronborg Slot. I think it is called the clover symbol in some places.

I like its symmetry, which strictly speaking is rotational, not reflective, because of the parity of the over-crossings.

You can play at making these patterns all day, as I did. This pattern is made out of a single strand, and so it is a true knot. I think this is the basic pattern for weaving a potholder.

In a weaving, this is what happens when you lay out the warp, and then turn the thread at the end and make the same thread also service as the weft.

It sure is easier to do this on the computer than it would be to do this using real threads. Also, notice that there is a checkerboard parity to whether or not I needed to use horizontal-over or a vertical-over element at any particular spot. The computer can certainly enforce that as well.

To right, a waffle pattern is made from two threads that are intertwined.
An actual braid, an intertwining of three strands, is shown to left.

Back to Randomly-Generated Patterns

To left we can see a basis for another pattern I have constructed that consists of only horizontal and vertical lines. But when they cross, they either pass over or under.

The end result is a wicker-like pattern that resembles those I have seen as a boy, perhaps on Eichler homes in Silicon valley.

Randomly generated patterns are quite often interesting visually and are one of the easiest ways to generate apparent complexity from the simplest of rules and bases.

No comments:

Post a Comment