Ever since getting into the mathematical field of really cool shapes (I think some call it ‘topology’), I’ve been keen to bring as many of these shapes to life as possible. When you’re holding a shape in your hands and it still doesn’t make sense in your head, that’s when you know you’ve encountered one of the best. My method of choice for making these shapes is crochet. It’s essentially a way of connecting a series of loops of yarn to gradually build up a surface. Before I start, I have to mention the book Crocheting Adventures with Hyperbolic Planes by Daina Taimina: it’s what got me into mathematical crochet, and it goes into a lot of detail about geometry as well as providing plenty of patterns to try out.
However, as much as I love them, hyperbolic surfaces aren’t going to be the topic of this article. The crocheting project I’m going to discuss instead is one which I developed myself, after my love of making cool shapes had been going on for a little while. At this point, I’d played around with various circle circumference functions, crocheted ‘integrals’ and ‘derivatives’ of the same function, and made Möbius strips, but what I really wanted to try and create was some kind of fractal.
Choosing the fractal was easy enough: I wanted something that was made using a relatively simple rule, and didn’t get too squiggly to be difficult to make a decent approximation of. The Koch curve, for instance, despite being simple, gets very squiggly and has a lot of angles and turns. Likewise, the dragon curve, beautiful as it is, has nowhere for the yarn to attach to so we cannot create a continuous surface. In the end, I settled on Sierpinski’s triangle. It’s simple, it’s modular so I could potentially make smaller pieces and sew them together, and all the points are connected to each other.
The next question, then, was how? I decided to keep it simple: I wanted to make a long chain, and by connecting it to itself at certain points using slip-stitches, I wanted to trace out all the lines of the triangle.
For non-crocheters, a ‘chain’ is exactly what you imagine: it’s just a long line of loops all linked to the next. A slip-stich is like adding an extra loop, except not only is the loop linked to the whole chain behind it, it’s also connected to the crochet at another point. I’ve drawn a few sets of diagrams below so you can picture what goes on.
From left to right. Creating a chain: The yarn is looped around the hook, then pulled through the previous loop. Repeating this forms a chain. Making a slip-stitch: The hook is inserted into a stitch in the chain, then the yarn is looped around the hook. The yarn is then pulled through both stitches to form the image on the right..
At this point, I’d figured out what I wanted to make and how. One thing I didn’t know, however, was if it was even possible. Can you create Sierpinski’s triangle by making a chain and attaching it to itself at certain points using slip-stitches? You can simplify the problem a little bit by removing the context of crochet from the equation, and just thinking about drawing a continuous line that connects to itself at certain points. In other words: is it possible to draw Sierpinski’s triangle in one continuous line? If so, then I’d be able to trace the path of the line with crochet, and create it. It might be fun to stop reading here and have a go at solving this problem yourself.
As soon as I realised this was a problem about tracing a shape with one continuous line, my mind went straight to graph theory. Graph theory is another area of maths which I adore (my interests seem to be anything that isn’t in the A-level maths syllabus), so I was very excited to be using it to solve a genuine real-world problem I’d come up with. It’s the study of nodes and the connections between them, and is often used to figure out the best route between places (by modelling locations as nodes, and roads as the connections). I decided to start by modelling the basic first iteration of the triangle as a graph, or a series of nodes and connections, as you can see on the left on the next page. Using the draw function on Excel (which has the handy property of allowing you to ‘replay’ your drawing, so you can watch the path being traced again), I had a quick go at tracing the lines, and found a solution, as you can see on the right:
Of course, a proof consisting of one example for one iteration wasn’t going to be sufficient, but at least I had some evidence that it was probably going to be possible. This was the point where I decided to properly bring out the graph theory, and apply an idea first proposed by Euler when he was solving the Seven Bridges of Königsberg problem.
The Seven Bridges of Königsberg is a fairly famous problem. A series of seven bridges all cross the river at various points, and the question is whether it is possible to walk across all seven bridges, starting anywhere, but only crossing each bridge once.
A map showing the seven bridges over the river at Königsberg.
It turns out to be impossible, but the reasoning behind it is what is key to solving our Sierpinski’s triangle problem. The first step – as with our triangle – is to remove the problem from its context. We can model the top and bottom banks as nodes, as well as the ‘islands’ in the middle and on the right. The bridges become connections between the nodes.
The map simplified into a graph.
Euler solved this problem by considering two kinds of nodes: a node with an even number of connections, and a node with an odd number of connections. Let’s start with the even node.
An ‘even’ node with four connections.
If you were to start your walk from somewhere outside the node, then ‘entering’ the node would ‘cost’ you one connection and leaving it would ‘cost’ you one more. So passing through the node will cost you two connections. Because there are an even number of connections, and passing through the node uses up an even number of connections too, you can ‘clear’ all the connections just by passing through the node as many times as you need. These kinds of even nodes are therefore redundant when your path starts outside the node. But what if you want to start your walk ‘inside’ the node? Again, because the number of connections are even, you have to leave the node as many times as you enter: starting outside the node means that if you entered the node, you have to leave it. Starting inside the node means that if you leave the node, you have to enter it again. In other words, if you start your walk on an even node, you have to finish it there.
An ‘odd’ node with three connections.
The next situation to consider is the odd node. This time, if you start your walk outside the node and pass through it as often as you can, you will always be left with one connection remaining. This also means that if you start your walk outside the node, you will have to finish your walk inside the node. The same logic can be used to show that if you start your walk inside the node, you have to finish it outside, and at a different node. This means that if you have an odd node, you either have to start your walk there or end it there.
Let’s recap the rules we’ve just worked out:
- For an even node, we can disregard it if we start our walk somewhere else. Otherwise, we have to both start and finish there.
- For an odd node, we have to either start there or finish there.
Now, clearly there’s only going to be one start point and one end point to our walk. That means we cannot have more than two odd nodes anywhere in our graph. It’s also impossible to have a graph with just one odd node. This leaves us with two situations where we know we’ll be able to trace a path that goes through all of our connections only once: either there are no odd nodes, or there are two of them.
If we go back to the Seven Bridges of Königsberg problem and count the number of connections to each node, we can see that each of the four nodes has an odd number of connections. Therefore, it is impossible to walk across each bridge in Königsberg only once. An exciting discovery for the world of graph theory, perhaps, but rather disappointing for a visiting tourist.
However, what we’re really interested in here is whether or not it’s possible to draw Sierpinski’s triangle in one continuous line.
The graph of Sierpinski’s triangle again.
If we return to my little diagram and count the number of connections at each node, every single node has an even number of connections. We’ve already proven it’s possible to draw this shape in one line using an example, but now we can also prove it using graph theory. So, we’ve proven it’s possible to crochet any Sierpinski’s triangle, right? Not quite.
To show it’s possible for any iteration of Sierpinski’s triangle, we’re going to use a trick whereby we show that if it’s possible for one iteration, it’s possible for the next one too. I’ve been throwing around the term ‘iteration’ a lot, but I haven’t actually specified what I mean by it. In the case of this triangle, let’s say that each time you make an iteration, you take three of your current triangles and glue them together to make a bigger one. In the above example, you can see that we took a regular triangle and attached three together at each corner. For the next iteration, we’ll take three copies of our triangle from the current iteration, and stick them together to make a bigger triangle again.
The second iteration of Sierpinski’s triangle.
You’ll notice that I’ve coloured in three pairs of nodes in the diagram on the right. These pairs of nodes are the only nodes whose number of connections will change after an iteration. You’ll also notice that I haven’t drawn any extra connections to connect the nodes of each pair. That’s because these nodes actually overlap when you make an iteration. They both ‘merge’ to create one of the corners of the new empty centre triangle.
Regardless of what the rest of the triangle looks like, we know that the corners at the very edge of Sierpinski’s triangle will have two connections, because they’ll be corners of a triangle. So, when we combine these corners into one node like on the diagram, we’ll end up with four connections. This means that each time we iterate our triangle, we will continue to have only even nodes, and we will therefore continue to have a shape which we can crochet. Since we’ve also shown that it’s possible to crochet the first iteration, we now know that it is possible to create any iteration after the first one.
Satisfied, I sat down with some yarn and a ridiculous number of stitch markers, and a few hours later I had managed to create a fourth-iteration Sierpinski’s triangle. Of course, this is just the fourth iteration, and it only comes out to about 25cm in length. One of the many joys of combining maths with crochet is the number of different directions and adaptions you can easily make, allowing us to ask many different questions about crocheting fractals. How many iterations would you need to make a triangle that was as large as a person? Or a house? Or how about the whole of Russia? It might also be fun to think about whether it would be possible to create other shapes and patterns like this. For example, would it be possible to crochet a cube? If not, how might you adapt the design to make it possible?
The finished product!
If you want to crochet your own fractal, click here for full instructions.