Day 272 – Lattice conformation of 5_1

Day 272 – Lattice conformation of 5_1

Day 272 – Lattice conformation of 5_1 640 480 mathgrrl

The cinquefoil knot 5_1 is one of two 5-crossing knots. The shape we chose for this knot is a  lattice conformation, which means that it follows only perpendicular directions in 3-space, with vertices at integer coordinates. In other words, this conformation is obtained by connecting integer-valued coordinates in space with straight lines.

Thingiverse link:

Settings: Replicator 2 with our usual custom support settings for knots.

Technical notes, math flavor: This knot was made by JMU student Kirill Korsak, who has this to say about lattice knots: The lattice stick number for a knot is the minimal number of line segments required to construct that knot on a cubic lattice. While a stick configuration of a knot can consist of sticks of differing lengths, a lattice configuration is thought of as a collection of sticks of unit length. This means that if a knot on the cubic lattice has an edge that extends from, say, (0,0,0) to (0,0,3), then that length-three edge is considered to be three unit-length sticks lined up from end to end. It generally takes many more line segments to create a minimal lattice knot than to create a minimal stick knot. In fact it was shown in 1992 by Diao that the minimal number of sticks required to build a non-trivial knot on a cubic lattice is 24 (and that all such knots are trefoils), where we saw on Day 269 that the knot 4_1 can be made from just 7 variable-length non-lattice sticks. Today’s 5_1 lattice knot is realized with 34 lattice points and therefore the lattice stick number of 5_1 is at most 34. However, it has not yet been proven that this is the minimal lattice knot configuration for 5_1.

Technical notes, OpenSCAD flavor: Kirill made this lattice knot with a modification of kitwallace’s Mathematical Knots to OpenSCAD code that Greg used on Day 269, using data for the 5_1 lattice configuration obtained from the Minimal knots on cubic lattices page hosted by Andrew Rechnitzer of the University of British Columbia. Here is Kirill’s resulting code:

Paths = [[[2,2,1],[1,2,1],[0,2,1],[0,3,1],[0,4,1],[1,4,1],[1,4,2],[1,4,3],

// Sides of the tube
Sides = 20;

// Radius of tube
Radius = 0.39;

//Scale of knot

module knot_path(path,r) {
 for (i = [0 : 1 : len(path) - 1 ]) {
   hull() {
     translate(path[i]) sphere(r);
     translate(path[(i + 1) % len(path)]) sphere(r);

module knot(paths,r) {
 for (p = [0 : 1 : len(paths) - 1])

knot(Paths, Radius);

Leave a Reply

Back to top