- Divide a canvas into an evenly dispersed grid.
- Using a naive search algorithm, join the dots in the grid so that each dot occurs only once in the line, and that each dot is preferrably connected with one in it’s neighbourhood.
- Using a smoothing algorithm, transform this line into a spline so that each sharp angle becomes curved.
- Interpolate between each pair of points to ensure they are equally spaced.
- For each point moving along this spline, rotate around the current point at a determined frequency but with a shifting radius.
- At these extrapolated points, draw a the final “string” you see in the image.
- 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.