Welcome to MakerHome




We've completed our yearlong print-a-day project!
All new material is now at Hacktastic: www.mathgrrl.com


Thursday, May 22, 2014

Day 269 - Minimal stick conformation of 4_1

The figure-eight knot 4_1 is the only four-crossing knot, and it is usually drawn like the white knot on the left in the figure below. It is also the only knot whose stick number is 7, which means that the knot can be made out of 7 straight line segments, but no fewer. The tricky thing about studying stick numbers is figuring out how to prove the "but no fewer" part (see the Technical Notes below). Today's print is a 7-stick conformation of 4_1:


Thingiverse link: http://www.thingiverse.com/make:79819

Settings: Printed on a Replicator 2 with .2mm custom slicing profile.

Technical notes, math flavor: This knot was made by JMU student Greg Houchins, who put together the following nice survey of current known bounds on stick numbers:

The stick number of a knot is the minimal number of straight sticks joined together required to make a certain knot. More formally stated, it is the minimal number of edges of a polygon path that is equivalent to the given knot.  This knot invariant becomes very difficult to compute for large crossing knots and there is no given formula that works for all knots.  However, there have been some publications that have advanced the search for a universal formulation. Taek Jin published a paper in 1997 determining the stick number of torus knots, T(p,q) for relatively close p and q:

stick(T(p,q)) = 2q, if 2<= p < q <= 2p.

In 1991, Seita Negami was able to put a bound on the stick number, which he called broken line number, of knots proving that for a knot K with crossing number c(K) we have:

(1/2)(5+sqrt(25+8(c(k)-2))) <= stick(K) <= 2 c(K).

Jorge Calvo was able to raise the lower bound in his 2001 paper to

(1/2)(7+sqrt(8c(K)+1)) <= stick(K).

The upper bound was later improved further by Seungsang Oh and Youngsik Huh to

stick(K) <= (3/2)(c(K)+1). 

Technical notes, OpenSCAD flavor: To make the stick model of 4_1, Greg used kitwallace's amazing Mathematical Knots to OpenSCAD website, which generates OpenSCAD knot code based on data it pulls from The Knot Server. Here is Greg's description of the process:

To create a 3D model of a stick conformation, all we need to do is put spheres at the points where the sticks meet and then connect these spheres. Fortunately, not only are the coordinates of these sphere points available, but an OpenSCAD file is available implementing this idea at kitwalace.co.uk/3d/knot.xq. On this site, you enter the number that the knot is listed as in the Knot Atlas.  The figure-eight knot 4_1 is the third knot in the Knot Atlas so we enter 3 as the "Knot Type". Then under the dropdown menu for render type, select stick, then press download, as shown in this screenshot:

When the resulting file is opened in OpenSCAD, the knot will be very thin and not suitable for 3D printing. To thicken the knot, you can adjust the radius parameter. However, the thicker knot may overlap itself. To change this we can manipulate the end points in order to open the knot up so that the sides no longer overlap. The code used for the model is as follows.

Knot_name = "Minimal stick candidate for 4.1";
Knot_type = "3";
Paths = [
[
[1.417090,-2.384662,-3.062703],//(+,-,-)
[-1.114094,3.107347,0.801322],//(-,+,+)
[-2.493145,-3.558361,2.356218],//(-,-,+)
[-0.108153,2.428202,-2.660958],//(0,+,-)
[3.607935,-4.376481,1.075724],//(+,-,+)
[-3.552488,-0.384435,-0.962569],//(-,-,-)
[3.922855,2.868389,1.952966]//(+,+,+)
]
];

// Sides of the tube
Sides = 20;
// Radius of tube
Radius = 0.38;
//Scale of knot
Scale=20;

Colors = [[1,0,0],[0,1,0],[0,0,1],[1,1,0],[1,0,1],[0,1,1]];
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])
      color(Colors[p])
         knot_path(paths[p],r);
};

$fn=Sides;
scale(Scale)
knot(Paths, Radius);

Once you are happy with the knot conformation, press F_6 in OpenSCAD to render the model in full quality so it can be exported.