Procedurally Generated Squares
Introduction
I enjoy experimenting with procedurally generated designs and geometric patterns. Using simple instructions to generate complex designs is a fun way to explore new ways of thinking about art and design.

A few years ago, I created a design by rotating squares with different angles while increasing their size. It was surprising to see how small changes in the angle would result in significantly different patterns.
While brainstorming embroidery design ideas, I thought of projects I’ve created that could be made with a single line and would translate well to embroidery. I remembered this pattern and was excited to see if I could embroider it.
Design
I used a turtle graphics process to generate the designs. You can experiment with different options in the app below to see the design possibilities.
Try setting the Steps to 1 to see how the pattern is generated.
I built this app using Preact because I wanted to keep the app size small, and I translated the Python spiral code from my Embroidery Workspace into JavaScript to generate the pattern.
When I created the grid of patterns for the embroidery files, I used these options:
- Steps:
15 - Angle Increment: based on the location of the square in the grid
- Initial Size:
10 - Step Offset:
0 - Size Increment:
5
I also configured the points to snap to a 25x25 grid, because otherwise, with patterns this small, the stitches would be too close and would destroy the paper.
Process
3x3 Grid of Spiral Patterns
I already created a pattern to generate spirals in Embroidery Workspace. I added some additional options to update the design and created a separate script to combine multiple patterns with different configurations into a single pattern. This also included adding lock stitches before and after each individual pattern so they can be created in bulk and the connecting thread between squares can be removed.
Stitching Process
click to restart animation
Once I had a collection of pattern files, I started stitching them with the machine. It’s mesmerizing to watch it create the design from a single continuous line of thread.
The machine I have doesn’t support thread cut commands in the pattern file. So, I manually cut the connecting threads between each separate pattern using a seam ripper to carefully separate the thread and cutting it with a small pair of scissors.
Before
Cutting the Thread
After
After I finished embroidering a 3x3 grid, the next step was to carefully reposition the paper and embroider the next grid of squares. I did this multiple times with two 3x3 patterns and two 2x3 patterns that resulted in a final piece with 5x6 squares because that’s how many would fit on the paper.
Gallery
An interesting effect of this medium is the way it looks when the paper is backlit. You can see all the stitches from embroidering, which is a fascinating design of its own.
Conclusion
I am really pleased with the results. The design is both geometric and precise, while also organic, reminiscent of a universe, seashell, or the golden spiral. This will definitely inspire future designs. I’m also happy with how much my Embroidery Workspace simplified the development process and how well a design I created for the web translated to embroidery.
In the future, I want to update Embroidery Workspace to support creating patterns that are composed of other patterns to make it easier to create designs like this.
There are a lot more designs to create and embroider using this style, and I’m looking forward to exploring and sharing more creations like this.

















