TH Design Playground


Scale Space from to width height coloring
(×2) (×1)
See below



How to Use This Page

Above is a piece of tilted graph-paper, suitable for designing a Turks-Head Knot on. Select (click) the points where there is a "pivot" in the knot (i.e. where it turns around, from up to down or from down to up. These are the places you would stick a pin into your mandrell if you were making it by hand). When two pivot-points are in-line with each other, they will automatically be joined by a line, but there is nothing to stop you from placing more than two points along the same line (just that the result won't make sense in a physical knot-tying way).

Bottom line: You place the "pivots" on the page and the program will draw all the lines between pairs of pivots that share the same grid-line. What's useful is watching the colors: when all the lines turn the same color, the knot is one strand.

You can change the size of the paper by typing into the height and width text-boxes below it. This will wipe out your current knot, but clicking "Input" will restore it again. The numbers aren't always perfectly meaningful, but the width and height boxes should do about what you expect (The "×2" after the width refers to the internal coordinate grid, which is twice as fine as the one you see. The height needs no such multiplying to specify the space left for leads, but will always be rounded up to an even number.) The red and blue lines on the edges represent the wraparound: those lines are the same place on the mandrell. Points should only be set on one and not the other (or neither, if it works out that way). The red and blue lines can move on their own, independently of the size of the window, but don't do that: it's probably not what you want.

The "Scale" value relates to the size of the grid. Smaller numbers make a smaller grid, so you can fit more on-screen at once. Bigger numbers are a bigger (coarser) grid: easier to see and click on.

As you click, the current pivots will show up in the Input box; you can copy/paste those out to record your knot and paste it in and click "Input" to get back to it. Use the little black and white triangles on the extreme left to flip whole rows of circles on or off (respectively).

When you click on a point to "turn it on", all the lines connected to it, and connected to points connected to it, and so on, will be colored the same color. So if you activate a point and all the lines are the same color, you have a single-stranded knot. When you turn a point off, however, the lines from neighboring points are re-colored, but not everything else. So stuff can get badly out of whack. Moreover, for reasons not always clear, you can wind up with "extra" lines that lead to nowhere. Clicking "Recalc" will usually clear these things up, at the cost of totally randomizing the line-colors; you need to re-click on some points (turn them off and on again) to get your proper strand-coloring. There's a "coloring" menu item, but don't expect much of it, it's for my experimentation.

Here are some knots to look at. I recognize that the interface here is a huge pain in the butt, but then this is all experimental anyway.

Generate SVG

This page was developed alongside a completely different program for manipulating Turks Heads, one written in Python. It isn't interactive like this one, but it has other abilities, and one thing it can do is generate some nice graphic (SVG) pictures of diagrams, complete with showing which goes over what at crossings, something this page cannot do. There is a simple server for the other program that can take knots from here and generate SVG diagrams for you: click the "Make SVG" button.

Do be aware of some limitations, though. For one thing, make sure your knot has a lower-left corner. That is to say, there should be a pivot that has no other pivots anywhere lower or to the left of it.

The SVG rendering can have trouble when the "bottom" of the knot isn't a straight row of pivots. Working on it. Also, multi-strand knots frequently don't have over-and-under crossings shown correctly.

There will eventually be some control over the color-scheme, but not yet. Right now, for single-strand knots, the color changes every few segments (so that there wind up being about six colors total), and multi-strand knots have each strand in its own color.

Search for Knots by Layers

One thing the python program can do is search for TH knots of a certain form. The basic format being a row of n pivots on the bottom, and then instead of just another row of n pivots forming the top, there might be a row of n/2 pivots some distance up, and then another row of n/2 pivots a little higher. Or three rows of n/3, or one of n/2 and two of n/4 (Like Patrick Ducey's mat, for example), and so on.

Here's a minor interface into the program. It has little or no error-checking, so if you feed it something that doesn't work it'll just plain fail. Also, there may be more than one solution to your arrangement, and they aren't necessarily all equivalent (especially if you aren't diminishing by halves), and you just get whichever one is first. The number of pivots on the bottom (which you do not enter) is determined by the sum of the higher levels (which you do), and each of the higher levels must at least share a common factor with that sum. Rather than allow maximum flexibility, I'm limiting things to 4 levels (plus the "bottom"). If you need fewer, leave the higher ones zero.

Number of Pivots Height