Formalisms for Celtic Knot
Tile Decomposition
My first programming attempt made use of the fact that celtic knots of this style can be decomposed into a set of 35 base tiles, or just twelve tile types with rotations:![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Diamond Decomposition
The tile decomposition divides the knot into independent pieces that are easy to draw, but rules must be followed in adjoining the tiles together. The diamond decomposition is an alternate way of decomposing Celtic knots which more naturally encodes information about the structure of the knot. Each diamond is a quadrilateral.There are two strands in each diamond, which either cross or deflect. In the case of crossing, the strands connect opposite sides of the diamond. In the case of deflection, the two strands run roughly parallel, connecting pairs of adjacent sides. I refer to diamonds where the strands cross as "open" and those without crossings as "closed" (note there are two ways for a diamond to be closed), and say that the closed diamonds have a “gate” that runs between opposite corners of the diamond, separating the diamond into two compartments that contain the two strand segments.
Diamonds can be adjoined to create Celtic knots, but it is difficult to produce a set of tiles that produce smooth-looking knots because the closure of adjacent diamonds affects the curvature of the strands.
Extensions and Generalizations
Free-form Knots
My recent efforts have been in extending the framework for Celtic knots to non-rectangular grids.While computer drawing of Celtic knots is more easily accomplished in terms of the "tile" decomposition, the essential structure of the knots is more easily generalized in terms of the "diamond" decomposition. This can be seen in my knot editing program, in which the user interface for manipulating the strands is based on the diamonds -- a diamond may be clicked to add or remove gates -- but the drawing routine is as described above, and is based on tiles.
The general outline of the process is:- Begin with a "premesh" graph, which defines the boundary of the knot and its interior structure.
- Use the premesh graph to induce a "Celtic mesh" graph. The faces of this graph are the diamonds within which the knot is drawn.
- Follow the same rules for drawing a Celtic knot by filling in the diamonds.
- Construction of the Celtic mesh graph is non-trivial; most graphs would not satisfy the requirements.
- The premesh graph determines the outer border of the knot and some of its key features.
- Every valid Celtic mesh graph can be induced from a premesh graph, and so requiring that we start from the premesh graph does not diminish the possible configurations we may end up with.
- Add a node for each node of the premesh graph.
- Add a node for each face of the premesh graph.
- For each interior edge in the premesh graph, add a four-sided face that connects its two incident nodes and the two nodes corresponding to its incident faces.
- For exterior edges, follow the same procedure but append a new node for the 'exterior face' (a new node for each exterior edge).
The basis for free-form Celtic knots is the natural extension of the diamond decomposition.





