Knots and topology
Celtic knot, on pedestal
Complex behaviour arising from simple premises has always fascinated me. The study of topology recently has drawn my interest. Not the topology of higher maths, but the premise of fundamental complex shapes. This led me to the topic of knot theory.
Knot theory, in my words, is the study of the ways and complexities in how a loop can get tangled up on itself. This results in both surprising complexity and gratifying elegance. The study of knots, links and tangles goes much further than the knots themselves, deep into the realms of topology and higher mathematics and theoretical physics, yet I have restricted my focus on the physical representation of these various knots as, I find, they contain just enough chaos and randomness to be ascetically interesting, yet enough elegance to be manageable in the physical realm. This balance between elegance and complex behaviour, arising from simple rules, sets a very rich theoretical landscape. Indeed, even an early theory of atoms was proposed to consist of knots in the ether.
Here, I explore the physical representations of knots, display some nice images, and show how I did it.
The first 3 prime torus knots: the trefoil, cinquefoil, and septafoil
After an initial study of knot theory and braid theory I couldnt stop thinking about what they would look like in 3d. In 2d, knot’s representations are easier to come across and even generate, yet they are somewhat unimaginative. They are great diagrammatic tools, yet to me they lacked the fundamentalism and depth that seeing them in their natural dimension would bring. I wanted to see their complexity in 3d, and with the use of my 3d printer, in the real world.
The generation and enumeration of knots is (un)surprisingly difficult. Many very distinct-looking knots are in fact the same knots, though this is often quite hard to show. This is the premise of knot theory. Many methods have been developed to determine the identity of various representations of knots, with these most often coming across via the use of ‘invariants’. These invariants are just special quantities/objects that are invariant under any transformations that don’t affect the identity of the knots, such as superfluous loops; the invariants are the same if the knots are the same. But even if the distinction problem has been solved, where does one start enumerating the knots? How does one generate an arbitrary knot to then be checked?
One method, that to me seemed the most applicable to implementation on a computer, was by joining braids end-to-end. What are braids? Braids are just as they sound, an array of strings sequentially swapped, or braided. The nature of these braids and their mathematical representation are very natural to group theory, and enumeration via a computer. Even better, its been proven that by joining those braids end to end one gets a knot! Unfortunately, the determination of unique braids themselves isn’t easy, sending me down a rabbit hole of group theory trying to find their simplest representation. In addition to this, the uniqueness of braids when turned into knots is very difficult, determined by a possibly infinite sequence of transformation rules to test equivalence (Markov theorem). In total, knots are really hard to enumerate, especially for a computer.
Searching online, I found that the availability of 3d models of all of the enumerated knots was limited. Initially, I was ready to dive into my own generation of knot 3d models until I eventually came across the open source app KnotPlot. Written as part of Robert G. Scharein’s PhD thesis, it handles the visualization and relaxation of knots in 3d, as well as a host of other functionalities. This saved me a ton of time, and a PhD in topology. Despite the wonders of this app, the backend was somewhat hard to use and it took me a while to write an automated script to grab the first 384 compiled knots and loops. I now host these models at https://www.thingiverse.com/thing:7337768/files, to be used by other knot enthusiasts, or just as aesthetic pieces.
These models are somewhat coarse, so throwing them into MeshLab and running a Catmull-Clark subdivision filter seemed to work well to smooth the mesh out. This is only necessary if you want very smooth knots, say for rendering.
Renders are done via Fusion 360’s rendering pipeline, though one could just as well use blender or anything else really.
This was a very fun little project to indulge in some topology, knots, and elegant complexity. Below are some more interesting renders I made.
My knot collection
I also 3d printed a few of these knots. They are quite fun outside of the computer. One can really see their complexity.
3d printed trefoil, figure-8 knot, and cinquefoil
I hope I have left you with a greater appreciation of the beauty of mathematical knots. Maybe you’ll even print some yourself if you have a 3d printer, they make great little trinkets. Seeing these knots in all their glory, perhaps you’ll be able to see similar beauty in other parts of the world you may not have noticed such as, say, knots.
Generation, renders, and execution done by me.