preface
Tia and I are very much into fabric arts and wanted to create something really cool by learning a new skill through weaving and utilizing the Digital Jacquard Loom from the Makerspace.
We initially learned very basic mathematics behind loom-weaving, such as the binary nature of the strings. The way the strings are structured on a loom are in a cross-hatch fashion, with the vertical strings called the warp and the horizontal strings called the weft. What the person is actually weaving are the individual weft strings. It was interesting to learn that the loom determines which strings of the warp are raised or lowered for the weft to pass through, creating a single weave.
The loom’s coding nature directed us down a general computing exploration for possible textile patterns, and Professor Kagey introduced us to some really cool concepts to integrate into our project, such as cellular automation. We had also looked into this neat video on matrix multiplication and weaving. Though, we ultimately decided to explore binomial expressions knowing that the digital loom can only handle simple weaving patterns.
Translating Binomials into Weaving Patterns for the Digital Jacquard Loom
The book Algebraic Expressions: Handwoven Textiles by Ada K. Dietz introduces a new concept of translating mathematical concepts into weaving patterns. That is done so by writing a polynomial and assigning a variable to each color in the textile, then expanding the polynomial and proceeding to write the expanded form in a table that will generate a pattern. This technique can be done with as many color combinations as you want since handwoven textiles can use several different threads and colors to weave. However, given that we are using a Digital Jacquard Loom, our pattern can only be woven using two colors. This restricts us to only using Binomials to form patterns.
Dietz breaks down on how to generate the pattern using (x+y^)2, where x is one color, or the warp, and y is another color, the weft. Additionally, Dietz goes into detail on how to form Binomial patterns, such as (x+y)^3 but does so in different types of weaves, specifically the summer and winter weave. A summer and winter weave is a more complex double weave technique that creates different patterns on the front and back of the fabric. However, at the makerspace, we are restricted to only using the basic Tabby Weave, or Plain Weave, when weaving our pattern, so Dietz’s demonstration of the pattern (x+y)^3 would have ended up different if we weaved it with a more complex technique. Thus, we decided to study Dietz’s instructions on how to construct a (x + y)^2 tabby pattern and use that to draw our own tabby pattern of (x+y)^3.
In her instructions, she starts off by simply expanding (x+y)^2 into x^2+2xy +y^2, which can be expressed as: xx xy xy yy
This can then be grouped into xxx y x yyy. Where x is the warp, and y is the weft. This essentially forms the base pattern, which can be repeated vertically and horizontally until the desired dimensions of the pattern are met. The image below displays Dietz’s demonstration of how the pattern would be written and how it would look when woven.
We can better visualize this by simply turning this into an array [ x x x y x y y y ]. Using her example of the pattern being 8 threads long, the best way to draw out the pattern in a way that can be woven would be in the following 8×8 array:
[ x x x y x y y y
x x x y x y y y
x x x y x y y y
y y y x y x x x
x x x y x y y y
y y y x y x x x
y y y x y x x x
y y y x y x x x ]
This can easily be computed using Mathematica. If the two colors we will use for weaving are black and yellow, the image below would represent the 8×8 pattern, (x+y)^2.
4×4 representation of the base 8×8 pattern.
8×8 representation of the base 8×8 pattern
Now that we are comfortable with translating (x+y)^2 into a weaving pattern, we wanted to use the same method and translate (x+y)^3 into a pattern so that we can weave it on the Digital Jacquard Loom, as well as understand how to draw out the patterns for all (x+y)^n, where integer n>1.
(x+y^)3 = x^3+3x^2y +3xy^2+y^3 –> xxx xxy xxy xxy yyx yyx yyx yyy
This gives us the base array for the pattern: [ x x x x x y x x y x x y x y y x y y x y y y y y ]
Already, we can tell that the pattern is much more complex, because the pattern has to be applied horizontally as well as vertically. There are 24 units in the array, so we know the dimensions of the most basic pixel will be 24×24 units.
We did this by drawing it out on pencil and paper first to make sure our work is correct and so that we can keep better track. We can use the same technique and produce the same base pixel by making the array a 24×24 pattern:
[ x x x x x y x x y x x y x y y x y y x y y y y y ]
[ x x x x x y x x y x x y x y y x y y x y y y y y ]
[ x x x x x y x x y x x y x y y x y y x y y y y y ]
[ x x x x x y x x y x x y x y y x y y x y y y y y ]
[ x x x x x y x x y x x y x y y x y y x y y y y y ]
[ y y y y y x y y x y y x y x x y x x y x x x x x ]
[ x x x x x y x x y x x y x y y x y y x y y y y y ]
[ x x x x x y x x y x x y x y y x y y x y y y y y ]
[ y y y y y x y y x y y x y x x y x x y x x x x x ]
[ x x x x x y x x y x x y x y y x y y x y y y y y ]
[ x x x x x y x x y x x y x y y x y y x y y y y y ]
[ y y y y y x y y x y y x y x x y x x y x x x x x ]
[ x x x x x y x x y x x y x y y x y y x y y y y y ]
[ y y y y y x y y x y y x y x x y x x y x x x x x ]
[ y y y y y x y y x y y x y x x y x x y x x x x x ]
[ x x x x x y x x y x x y x y y x y y x y y y y y ]
[ y y y y y x y y x y y x y x x y x x y x x x x x ]
[ y y y y y x y y x y y x y x x y x x y x x x x x ]
[ x x x x x y x x y x x y x y y x y y x y y y y y ]
[ y y y y y x y y x y y x y x x y x x y x x x x x ]
[ y y y y y x y y x y y x y x x y x x y x x x x x ]
[ y y y y y x y y x y y x y x x y x x y x x x x x ]
[ y y y y y x y y x y y x y x x y x x y x x x x x ]
[ y y y y y x y y x y y x y x x y x x y x x x x x ]
Computing this, we get the following base pixel:
Now, we can easily take the pixel from the image above and make a 4×4 or 8×8 representation of it, which is displayed in these next images:
We instinctively wanted to see what a 24×24 image of the pixel would look like, but it quickly became clear that it would not produce an image that can be weaved, or at least the base pixel would not be clear at all.
Now that we translated (x+y)^3 into a weaving pattern, it would be easy to translate any (x+y)^n into a pattern, but they would become increasingly more complex and time consuming to produce.
For instance,
(x+y)^4 = x^4+4x^3y+6x^2y^2+4xy^3+y^4 =
[ xxxx xxxy xxxy xxxy xxxy xxyy xxyy xxyy xxyy xxyy xxyy xyyy xyyy xyyy xyyy yyyy ]
And so on..
But, here is what we were able to weave of the (x+y)^3 pattern!
What we have so far is a tapestry with dimensions of 35-ish inches wide by 10-ish inches long. The actual weaving process was so much more tedious than we expected. It was definitely a learning curve to get somewhat comfortable weaving while constantly running into some issues. Some recurring problems had to do with the loom’s string tension, software, and preparation of materials. It was such a methodical and time consuming process from the threading of the bobbins to de-tangling the shuttle from the beater.
But nonetheless, the experience weaving with the loom felt very rewarding. Being able to translate any polynomial into a weaving pattern has opened up many possibilities for people with a love for math and the textile arts alike. And given our limitations, we could only work with binomials, but this project opens up the opportunity to learn the manual loom or hand weave trinomial/other polynomial expressions ourselves.
Leave a Reply