Following are the notes from a workshop I hosted for my students and colleagues in April 2024.
Usually these Friday talks are a research seminar. That's not quite what we've got today. This event is a hands-on interactive knot-making workshop. Here's our agenda: I talk about knots for a bit, you draw your own knot, you code your knot, and then we cut your knot into a sticker. For the coding we'll be using Twoville, a programming tool that I've been working on for several years now. This particular activity is one I might use at Bridges 2024 this summer. The Bridges conference brings together mathematical artists to share their artwork and ideas. I submitted a 90-minute workshop proposal that will either be accepted or rejected early next week.
Before we make our designs, let's get to know knots. You're familiar with knots. People tie them in shoes and weddings. The sense of knot that you should bring to this workshop is that a knot is a meandering path. In math and many works of art, a knot is a circuit. If you start walking on the path, you will arrive back where you started. There are no dead ends or branches. They are frequently used to decorate floors, walls, bodies, and pages of illuminated manuscripts. Consider these examples... TODO.
A common strategy for becoming famous is to define a table or matrix and then use it to classify everything. Mendeleev did this with the periodic table. Stephen Covey did it with his four quadrants of urgency and importance to help us manage our time. Mathematicians have done this with knots. They arranged them in a table according to their number of crossings.
The knot with 0 crossings is the unknot. It can be deformed into a circle. Any knot with only 1 crossing can be untwisted into the unknot. Any knot with 2 crossings can also be untwisted into the unknot. The first real knot has three crossings. It's called the trefoil knot because it can be deformed into a canonical shape that has three leaves. It's also very algorithmic:
There are many more rows in this table. But we're not interested in enumerating them all. We just want to make one. So let's talk about how.
We're going to put some constraints on our knots. First, we don't care about the z-index of crossings. The crossings will be unbroken because we want to make a sticker that holds together. Second, our knot will be constructed as a mosaic. Knot mosaics were proposed in 2008 by a couple of professors at the University of Maryland as a way to diagram quantum behavior. I don't know what that means, but here's what a square know mosaic looks like. First, there's a square grid:
Then we trace a path through this, but we have to choose from a constrained palette of moves. In each tile, we move from one edge to another. That means we can curve left, go straight, or curve right. Altogether each tile of the mosaic will be either blank or one of these four:
Here's an example square knot mosaic:
Squares are neat, but hexagons are hexy. Today you're going to make a hexagonal knot mosaic.
In a moment, I'm going to hand out a blank hexagonal grid. You will pick one edge of one tile as a starting position. You will draw a path from that edge to another edge of that same tile. Let's enumerate those possible paths. We could curve to an adjacent edge. We could curve to an edge one away. We could travel straight to the opposite edge. And then there are the curves to the other side, but those are turns in the other direction. Your task is to draw a knot using just those three moves. The path should wander around and eventually return to its start. It can cross over itself, but it shouldn't revisit any edge.
After you complete your drawing, you'll translate it into code that you write in Twoville. This is a language for making designs that you can turning into physical objects. You will trace out your design using turtle graphics. This is how you plop a turtle down on the Canvas:
We move it around with two commands: walk and curl. Each has some parameters that control the movement:
We need to figure out the parameters for the three kinds of path segments through a tile. Our hex grid will help us "figure" this out. Let's call the side length of the hexagon side.
How many degrees does the small arc travel? 120. What is the radius of this small arc? Half of side.
On to the big arc. How many degrees does it travel? 60. What is its radius?
On to the straight segment. How many degrees does it travel? It's not an arc, so none. All we need is its distance.
In closing, I'd like to thank you for attending today, designing a knot, and trying out Twoville. Artists employed knots to invoke the notion of endlessness. That's how I feel about software development. Twoville is full of bugs and unimplemented features, and I'm really looking forward to summer so I can work on this thing that will never be done. May you too be freed from the false dream of finishing something.