Here are some of the results of a Processing program I put together to generate Celtic-style knot designs.
My wife wanted St Patrik's day decorations for her classroom last month. I wanted to play around with some non-photoreal rendering. Two birds, and all that.
There are a couple of different variables to control how the knot is rendered. The color of the borders and interior can be changed, as well as the thickness of the ribbons, the size of the grid, the degree of curvature, the gap left between "over" and "under" ribbons, and others. You can also control whether 90° & 135° corners are rounded or angled. Making the former angled and the latter rounded produces a more traditional look, in my opinion.
Some of them remind me more of Roman or Arab mosaics than knot work.
Here are where the breaks are placed for this design, which should give you a better idea of the rules used.
The breaks in traditional knotwork patterns rely heavily on symmetry, but I'm fascinated by the results of placing breaks randomly.
Varying the number of random breaks in the pattern changes the character. The two examples above both have 150 breaks. Here's a 42x22 grid with 75 breaks...
... and one with 250.
Rendering with smaller cell size creates an output that looks more textural.
It reminds me of a crystal growing when the lattice structure of the seeds isn't aligned. Or perhaps a combination of carbon fiber and the face of an old circuit board.
I also like what random knots look like incomplete. They remind me of roadways, mass transit maps, motorcross cricuits or bobsled tracks. Traditional patterns are very rigid, very controlled (which I like) but these are more organic.
The distribution of density in this one reminds me of the growth of an urban area:
This looks more like the map of a rally car course or bobsled track:
Others look like mass transit maps if you squint at them right.
Here's an animation of one random knot growing
This shows the second example on the page (the one I think looks like a mosaic) being grown.
The following is my favorite animation. It shows completed random knots, with six of the breaks moved between each frame.
Some other examples, including using break patterns to encode messages, as well as the code will be posted soon.