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.

So glad you and your students find the knot index useful. The correct url is

ReplyDeletehttp://kitwallace.co.uk/3d/knot.xq

The site has been improved recently. You now enter A-B notation directly.

The full form uses interpolation to generate smooth knots. Known knots are selectable by name. I've added functional forms of those knots for which I have found such forms, such as the rolling trefoil and indeed this figure-of-eight knot. I'll add more as I find them.

The smooth and function forms currently still need the development snapshot.