# Gordian Knots

Gordian Knots are problems that prove impossible to untangle. This series of posters proves how easy it is to create huge complexity from a series of discrete, simple steps.

Although these chaotic lengths of string look complex, the steps required to render them are fairly straightforward. The algorithm that generates each “knot” follows the following pattern.

- The canvas is divided into an evenly dispersed grid.
- Using a naive approach, each point in the grid is joined together into a line, such that each point occurs only once in the series. These points are preferrably connected to another point nearby, although as fewer and fewer points are available for connection this becomes more unlikely.
- Using a smoothing algorithm, the line is transform into a spline through the points. This removes any sharp angles between points.
- The line is further modified, adding points at an even distance by interpolating between each consecutive pair of points along the line.
- Moving along this newly interpolated spline, rotate around the current point at a determined frequency but with a shifting radius, in a similar way that a spirograph is generated.
- These extrapolated points represent the final “string” you see in the image. But as the string is drawn, check for intersections with any existing segments. If there is, start rendering new string above or below what has already been drawn.

Because of the large amount of computation involved, this process is batched. This means the final step of weaving under and over existing segments only takes the current segment into account, rather than being strictly true for the entire string.