Modular Duotone Weaving Design

Year: 2014 Authors: Abdalla G. M. Ahmed

Core claim

By tiling float-proof pattern blocks, checkerboard-like woven fabrics become feasible on 2-shaft looms while enabling further duotone and multi-tone designs.

Topics

checkerboard weaving, modular pattern blocks, float reduction, loom constraints

Domains

combinatorics, matrix encoding, binary patterns, textile design, weaving, pattern design

Methods

modular tiling, block cataloging, loom-based design, pattern inversion

Media

warp yarn, weft yarn, 2-shaft loom, Jacquard loom

Paper text

The text below is the locally extracted OCR/Markdown version of the paper. Raw PDF files remain local and are not published here.

Proceedings of Bridges 2014: Mathematics, Music, Art, Architecture, Culture

Modular Duotone Weaving Design

Abdalla G. M. Ahmed abdalla_gafar@hotmail.com

Abstract

We address the difficulties of producing black and white checkerboard woven fabrics, then we present a modular approach for generating duotone weaving designs using simple (2-shaft) looms, and use this approach to design checkerboard weaving patterns. We then propose ideas for how more complex weaving designs can be developed for looms equipped with more shafts.

img-0.jpeg (a)

img-1.jpeg (b) Figure 1: Visible patterns and weaving structures of (a) true checkerboard, (b) classic checkered fabric commonly found in the market, and (c) high contrast checkerboard pattern designed with the approach presented in this paper.

img-2.jpeg (c)

1 Introduction

“I am looking for a checkered shirt, can you please help me find one?” A question which might seem silly, given the large variety of checkered shirts which fill the market. If we know, however, that this person is asking about “checkered” as in “checkerboard”, then the question quite makes sense; for it is far less common to find such shirts in stores (or Google search) than we find classic checkered fabrics, made of solid-color squares plus mixed-color squares. See Figure 1. Given the appealing look of checkerboard patterns, as reflected by their widespread use in floor tiling, one would expect to see checkerboard patterns likewise common in garments; unless there is a technical difficulty which inhibits their production. It turns out that there actually is an inherent technical reason which makes checkerboard patterns not practically “weave-able”, and are therefore usually replaced with classic checkered patterns. There are also printed checkerboard fabrics in the market, but there is even more of a reason to prefer woven patterns to printed ones: they are, supposedly, more durable and their patterns are sharper [3].

In this paper we briefly describe the technical issue which inhibits the production of checkerboard woven patterns, then we suggest a modular approach to producing duotone checkerboard patterns using pairs of distinct pattern blocks. The patterns we are going to present can all be woven using simple (2-shaft) looms. We then describe how more sophisticated looms can be used to produce more complex duotone and multi-tone weaving patterns.

2 Essential Background

A woven fabric is made of a set of yarns running ‘along’, called ‘warp’, and another set of yarns running ‘across’, called ‘weft’. At each intersection of yarns, looking from one side of the fabric, either the warp

yarn or the weft yarn runs above. If a “warp yarn is above” is encoded as ‘0’, and a “weft yarn is above” encoded as ‘1’, then the whole fabric can be abstracted as a 2D matrix with binary entries. In the simplest form of weaving (called plain weave, see Figure 1(b)) the weaving matrix is just an alternation of zeros and ones. Color of individual yarns represents another design aspect of woven fabrics. Following a simple lookup process, it is not difficult to produce an abstract image representation of the final woven fabric, given its weaving matrix and colors of individual yarns: a ‘0’ in the weaving matrix is replaced by the color of the corresponding warp yarn, and a ‘1’ by the color of the corresponding weft yarn; then the whole matrix is viewed as an image.

A device called a ‘loom’ is used to weave the fabric, row by row. The loom has a mechanism to raise all warp yarns meant to run above in the current row, lower those which are to stay beneath, and pass the weft yarn across in between. To weave an arbitrary matrix the loom has to have independent control over each and every individual warp yarn. Such looms exist, known as Jacquards, but they are very expensive. In less expensive looms, known as “dobby” looms, warp yarns are lifted in groups instead of individually, using mechanical parts known as “shafts”. Warp yarns attached to the same shaft produce identical columns in the weaving matrix. In other words, the number of distinct columns in the weaving matrix is equal to the required number of shafts [4]. The more shafts a loom has, the more expensive it is, and the more difficult its setup is. It is therefore desirable to keep low the number of distinct columns, and consequently the number of shafts. This represents an important function of weaving design.

This finishes our primer about weaving. This level of abstraction should serve as the minimum background needed to present our proposed concepts. Readers interested in learning more about the weaving process and classic weaving design are advised to start at the website compiled by late Ralph E. Griswold [5]. Alternatively, Andrew Glassner wrote an excellent chapter about “digital weaving”, which should suit those coming from a computer graphics background [4].

3 “Floats” and a Modular Approach to Dealing with Them

One important difference between weaving patterns and tiling patterns is that, whereas individual pixels of a tiling pattern can be set independently, each individual pixel of a weaving pattern can bear either the color of warp yarn, which is fixed along the whole column, or the color of weft yarn, which is fixed along the whole row. To see the effect of this on practical weaving design, consider the slice of the true checkerboard pattern in Figure 1(a). Suppose that the leftmost warp yarn is black, then this yarn has to stay beneath in all the white intersections in this column, and all wefts in these intersections have to be white. Thus, the 12 bottom weft yarns must all be white. These weft yarns, then, have to stay beneath in all the 12×12 black intersections on the bottom-right, and the corresponding warp yarns must all be black. Continuing with this logic, we see that for the visible pattern in Figure 1(a), all warp yarns have to have one color (black or white), all weft yarns the other color, and each warp yarn has to stay above for 12 consecutive rows, and beneath for the other 12 rows; the same applies to weft yarns and columns. Effectively, we are weaving bands of 12 yarns, instead of interweaving individual yarns. Having yarns “floating” for a substantial length on the surface makes them prone to tearing and snagging, and also renders the fabric structurally weak. We conclude that “floats” represent an evident technical problem which inhibits the production of practically useful woven checkerboard fabrics in pure black and white.

As we will demonstrate subsequently, we can overcome the floats problem if we can afford to allow a few black pixels inside white areas, and vice versa. It is desirable that these odd pixels be positioned in such a way that they look “good”. There are two quite different approaches towards this end: we can either scatter them “randomly”, so that the viewer’s perception system identifies them as “noise” and filters them out, or we can place them uniformly so that they are perceived as a part of the design. Essentially, the word “random” here refers to the viewer point of view: on the designer side there has to be a pattern.

Uniform placement suggests a modular approach, where a block of a fixed pattern is tiled to fill black areas of the checkered fabric, and another fixed pattern block is tiled to fill white areas. In this paper we will follow the modular approach, which seems easier to work with. For example, the modular approach offers an easy solution for the floats problem, by choosing small enough block sizes, and ensuring that there is at last one “0” and one “1” in each row and each column of the weaving matrix of the block. Another good reason to opt for the modular approach is controlling the number of distinct columns in the weaving matrix.

4 Checkerboards Using 2-Shaft Looms

Classic checkered fabrics are typically manufactured with 2-shaft looms, applying bands of yarn colors to a plain weaving matrix, the simplest and sturdiest weaving structure. See Figure 1(b). For our prospective designs to commercially compete with the classic checkered fabrics we would like them to have comparable production costs, so we will try to stick to the 2-shaft loom, and see if we can produce duotone patterns with it. We will use a block size of 4×4 : small enough to eliminate floats within the block, and large enough to allow for a rich variety of patterns inside the block. Instead of designing now only to discover later that our designs do not suit our loom, we are going to work the other way around: we will enumerate all blocks which our target loom can produce, and see which can make duotone checkerboards.

For a 2-shaft loom to produce a 4×4 woven piece it needs to be set up with 4 warp yarns, each yarn can be attached to shaft #0 or shaft #1, and the yarn itself can be black (0) or white (1). Let us use vector variables and to denote shaft assignment and color, respectively, of the 4 warp yarns. Subsequently, the loom has to be operated for 4 rows; in each row the loom can lift shaft #0 or #1, and the passed weft yarn can be black or white. Let us use vector variables and to denote lifted shaft and weft yarn color, respectively, in the 4 strokes. Since each of the vectors , , , and has 4 binary entries, they can also be seen as 4-digit binary variables: , , , and , respectively; each can be written as a single hexadecimal digit. Note that and represent setup-phase inputs which span “space”, and they can be concatenated in a single variable . The ’s, on the other hand, represent operation-phase inputs which span “time”, and they can also be concatenated into a single variable . Each of and fits exactly in a single byte, which is another reason to chose a block size of 4×4. The 65536 (256×256) combinations of and encompass all possible inputs to a 2-shaft loom set up with 4 warp yarns, and operated for 4 rows, using only black or white yarn colors. The bitmap abstraction of the output block (not the weave matrix, but what should actually be visible to the distant eye) can be represented by a 4×4 matrix variable , but since all entries are binary (representing black or white pixels), this whole matrix can be concatenated into a single 16-bit word , whose 4 hexadecimal digits stand for individual rows.

With the set of variables defined in the previous paragraph, a 2-shaft loom can now be abstracted as a function which receives, as input, a single-byte space variable , and a single-byte time variable , and produces a 2-byte word output. In fact, the loom can receive a vector of space variables , and a vector of time variables , and produce a matrix

[ L(X,Y)=\left[\begin{array}[]{cccc}l(x_{1},y_{1})&l(x_{2},y_{1})&\cdots\ l(x_{1},y_{2})&l(x_{2},y_{2})&\cdots\ \vdots&\vdots&\ddots\end{array}\right] ] (1)

of words representing 4×4 blocks in the fabric. If we let each of and go from 0 to 255, the loom will produce a piece of cloth, 1024×1024 yarns in size, which represents a swatch of all 4×4 black and white blocks that a 2-shaft loom can produce. We should, however, account for floats at this point by excluding blocks where equals 0 or 15 (all warps attached to one shaft), and blocks where equals 0 or 15 (the same shaft lifted in all rows). This reduces the swatch to 224×224 blocks (896×896 yarns). We can then search this swatch for configurations which can make checkerboards, as we are going to describe soon.

Ahmed

img-3.jpeg Figure 2: A slice of the swatch of blocks weave-able in a 2-shaft loom fed with black and white yarns. A small space is inserted between blocks for better visibility, and a slightly larger space to indicate a change in input colors. Hexadecimal digits stand for in the horizontal axis, and in the vertical axis. Yarn colors remain fixed within a group of blocks like the 4 shown here.

Even if the swatch can be produced physically (it actually can, but it costs), it is still preferable to simulate it with a computer so that we can take advantage of the computer’s ability to search; otherwise we will have to search with bare eyes for similar tiny blocks. To find the value of entry of an output block we need to make a sequence of lookups: we first consult to see which shaft is lifted in this row, then we cross-refer to to check whether the th warp yarn is attached to the lifted shaft or not; if yes then we read color from , if not we read color from . These seemingly complex steps can actually be written in a single statement using modulo-2 arithmetic, which can implement equality test as addition, and logical inversion by adding 1. Here is the complete formula:

which can easily be inserted in a computer program to plot the swatch, and also to store it for subsequent searching. Figure 2 illustrates a slice of this swatch.

Having listed all float-free black and white blocks weave-able by a 2-shaft loom, we can now move on to our main goal of finding blocks which can be arranged in a checkerboard pattern. Suppose that we were able to find two blocks which could be arranged to make a checkerboard. In matrix form this can be written as

Comparing this to the loom matrix function (1) gives:

These relations mean that a 2-shaft loom will be able to produce a checkerboard pattern if we were lucky enough to find a set of numbers which simultaneously satisfy (4) and (5). It turned out we were too lucky, because a computer search over all combinations of (valid) 4 bytes reported 28,700 sets of inputs! Some inputs produced similar outputs, but we found 14,077 distinct checkerboard pairs! This number is overwhelmingly large; difficult to comprehend by eye. We therefore wish to sort these pairs by “similarity” prior to trying to review them, and that is where the mathematical concept of symmetry helps, as we are going to show in the following section. For the interested reader we mention that we followed these steps in our search: we made a list of all inputs and corresponding outputs, then we sorted it by output. Over each group with a similar output we searched all possible pairings of inputs, swapping the ‘s between each pair of inputs, and checking if the new inputs produce equal outputs.

30

Modular Duotone Weaving Design

img-4.jpeg Figure 3: Symmetries of the square: (a) identity (leave in place), (b) horizontal reflection, (c) vertical reflection, (d) reflection on positive-slope diagonal, (e) reflection on negative-slope diagonal, (f) rotation clockwise, (g) rotation , and (h) rotation counter-clockwise. (i) to (p) show the relocation of pixels (bits) corresponding to applying each symmetry operation to a block.

5 Grouping Pairs by Similarity

We do not have much difficulty identifying objects when we are laying on our side in bed, or when we look at their images in a mirror. Woven clothes are no exception, and whether you look at them from one side or another, or look at their reflections in a mirror, you would not identify their textures as different ones; you would rather say they are “rotated” or “reflected” copies of the textures you know. For our blocks, our eyes should identify blocks which are rotations or reflections of other blocks as similar. There are eight operations which, when applied to a square, put the square back in place, and their effect on what is drawn inside results in reflections and/or rotations which our eyes are trained to identify and restore. These operations are called “symmetries of the square”. See Figure 3(a-h).

We can use symmetries of the square to sort our checkerboard pairs by similarity, and it should reduce the number of distinct pairs by a factor of . Well, it is not exactly , because some blocks are invariant under some symmetry operations. Before using symmetry, however, we need to check if reflections and multiples of rotations of a weave-able pattern are all weave-able. Horizontal and vertical reflections are easy to verify: perhaps the easiest way is by noting that we are not obliged to use, for example, a left-to-right sense for the x-axis; so if a pattern is weave-able in a loom warped in a left-to-right order, then its horizontal reflection is weave-able in a loom warped right-to-left. Swapping the axes is a bit trickier, but one way to prove it possible is by noting the similar roles of and in (2); with the small difference that equality of and favors warp color, and inequality favors weft color. This should be swapped as well, and it can be done by toggling the 0’s and 1’s in either or ; so if we let:

then (2) becomes:

which effectively swaps the axes of the block. Such a swap of axes is a diagonal reflection (Figure 3(d)) rather than a rotation: it is a rotation combined with a reflection, because when we head towards positive , the direction of positive is now on our right hand, not our left hand as it used to be. Since it is a rotation combined with a reflection, we can get pure rotation by combining another horizontal reflection to

Ahmed

img-5.jpeg (a)

img-6.jpeg (b)

img-7.jpeg Figure 4: Rolling the blocks makes regions look similar, but edges might change substantially. In this example the “shadow” cast eastward in (a) disappears after horizontally rolling the blocks in (b).

img-8.jpeg Figure 5: Examples of distinguished weave-able checkerboard patterns.

undo the effect of the “composite” reflection embedded in the swap of axes. It is worth mentioning here that any combination of the symmetry operations on a square can be replaced by a single operation, so this set of operations is “closed under composition”, as mathematicians call it. Back to weaving, we have already seen that horizontal reflection is a legal operation that a loom can do; then further rotations can be obtained by combining more reflections and swaps of axes. We can now proceed to use symmetry to group our checkerboard pairs. Figure 3(i-p) show how individual pixels are relocated upon each symmetry operation. This suggests an easy way to implement these operations on blocks: all we have to do is to rearrange bits of the 16-bit representation of the block to reflect the new arrangement of pixels. To group the pairs of blocks by symmetry we produce an 8-pair symmetry group for each of the 14,077 pairs, then filter out distinct groups.

Grouping by symmetry resulted in 2,069 groups. Although the number is still high, we considered it comprehensible, and started to review the patterns by eye, but soon we were able to see that there were still apparent similarities between substantially many patterns. What have we left behind? A little bit of inspection revealed that similarity was due this time to translational symmetries. For example, rolling a block to the left (removing the leftmost column and inserting it back on the right) would not change the pattern in an area tiled with that block: it just shifts the whole pattern. But unlike the symmetry operations discussed earlier, rolling does not preserve edges between different blocks (unless the block themselves are invariant under rolling), so edges in the checkerboard are affected. See Figure 4. This makes us continue to see rolled pairs as different, although they are still similar enough to be grouped. There are 16 ways to roll (4 horizontal times 4 vertical), and all rolls of a weave-able pair are weave-able, because rolling is just a matter of re-ordering columns and/or rows. A typical application for browsing the weave-able checkerboard patterns should be able to display all pairs in a rolling group, and give the user the ability to select pairs which produce the preferable configurations of edges. Grouping by rolls offered us a further reduction down to 889 pairs; again less reduction than expected, because many blocks are invariant under some rollings. We browsed all these pairs, one by one. Although there are many that are meaningless, there are also many appealing ones. Figure 5 gives a few examples of pairs we find interesting. The pair in Figure 5(d) bears

Modular Duotone Weaving Design

img-9.jpeg (a)

img-10.jpeg (b) Figure 6: More alternatives can be obtained by varying column widths and/or row heights. (a) Columns shrunk in a similar fashion to Bridget Riley’s “Movement in Squares”. (b) Both column widths and row heights varied.

the highest possible contrast between 2 float-free blocks which share the same yarn colors. The pair in Figure 5(f) is the shadow weave, the only one we could identify with a weaving pattern well known in the literature [6]; although it had not been applied in the modular fashion presented here. For the record, we would like to mention that the pair in Figure 5(i) was the first pair discovered by the author, accidentally, and was the source of inspiration of this paper.

6 More Shafts

Our primary intention in this paper was to produce checkerboard woven patterns, and it has been fulfilled. As illustrated in Figure 6, we can also vary the sizes of columns and rows of the checkerboard; but that seems to be all what we can do with a 2-shaft loom. There is more to do, however, if our loom is equipped with more shafts. Proceeding to think modularly, a 4-shaft loom can be seen as two 2-shaft looms which share “space” (see Section 4) and use the same weft. At an abstract level, the only constraint is that weft yarn colors have to be similar, but all of , and can be set independently for each sub-loom. Looking back at our swatch of blocks, it contains 16 same-weft-color bands (identified by ), each containing 14 rows of blocks which vary in , the lifting sequence of shafts. The same-weft-color requirement is fulfilled by confining our designs to one band (that is, by fixing ). Thus, instead of being constrained to use one of the specific sets of pairs found earlier by computer search, the 4-shaft loom gives us the opportunity to use any 2 blocks in the same column of a weft-color band. The steps are simple: 2 shafts are employed to weave blocks in one set of similar columns of the checkerboard pattern, and the other two shafts weave blocks in the other set of similar columns. Weft color is not worried about because both blocks use the same sequence of yarn colors. This approach gives some 88,025 options to choose from; although a computer search revealed that all the high contrast options (8-pixel difference between black and white blocks) are already included in the 2-shaft set of options; namely the rolling and symmetry variants of the blocks in Figure 5(d).

In fact, we are not confined to using only 2 blocks in a 4-shaft loom, nor are we restricted to the checkerboard pattern: our modular approach should make it easy to convert any bitmap with two distinct columns, and up to 14 colors, to a woven fabric using a 4-shaft loom. The concept can be extended should there be more shafts: each distinct column in the input bitmap is assigned to 2 shafts, which replace pixels by blocks. A bitmap with distinct columns needs a loom equipped with shafts. Bitmaps with limited numbers of columns can be produced using conventional weaving design software, or they can be obtained from catalogs such as Handweaving.net [2]. To give an example, the famous houndstooth pattern has 8 distinct columns, and can therefore be arbitrarily enlarged and woven in a 16-shaft loom. See Figure 7. AA Bitmaps [1] represent an exception to the rule, for even though they are made of 4 distinct columns, each of their columns is the exact color inversion of another column, so a 4-shaft loom is sufficient to weave enlarged versions of AA Bitmaps, in much the same way as we used a 2-shaft loom to weave a checkerboard pattern made of two columns which are color inversions of each other.

Ahmed

img-11.jpeg Figure 7: Examples of enlargements of the famous houndstooth pattern, all weave-able in a 16-shaft loom.

img-12.jpeg

img-13.jpeg

7 Conclusion

In this paper we described how a modular approach can be used to solve the long floats problem in weaving, and we used it to design truly checkered weaving patterns. We used blocks, which offered many advantages, but the concept can easily be extended to larger or smaller block sizes. If a fine yarn is used (e.g. fine cotton or nylon), then the blocks are substantially small, and should appear like pixels with smooth tones of gray; just as wished. What we learned from this work is that, like many other problems, we can approach weaving design modularly: by devising float-proof blocks we were able to go forward and think of other design issues and objectives (e.g. making large houndstooth) without worrying about floats. Since we do not need to worry floats, it is now quite possible to use a Jacquard to weave photo-realistic renderings, using two high contrast blocks to replace pixels of a dithered monochrome image.

Another important lesson learned in this work is to use a computer, aided by mathematical concepts, to search, sort, and catalog blocks. For example, we mentioned earlier that the same pair of blocks can sometimes be produced with different inputs; a computer function, then, can be developed to choose the inputs which make shorter floats, and/or those which simplify loom setup and/or operation (e.g. having only black warp and only white weft is preferable to having mixed-color warp and weft). For future work we suggest further cataloging of the blocks described in this paper. Ideally, we look forward to building an on-line database which designers can easily browse and interact with, inquiring about contrast, max-floats, samples, etc.

Acknowledgments. Thanks to Gary Greenfield and the anonymous reviewers for their helpful comments.

References

[1] Abdalla G.M. Ahmed. AA Weaving. In George W. Hart and Reza Sarhangi, editors, Proceedings of Bridges 2013: Mathematics, Music, Art, Architecture, Culture, pages 263-270, Phoenix, Arizona, 2013. Tessellations Publishing. Available online at http://archive.bridgesmathart.org/2013/ bridges2013-263.. [2] Kris Bruland. Handweaving.net. http://www.handweaving.net, as of Apr 30, 2014. [3] Loe M. G. Feijs. Geometry and Computation of Houndstooth (Pied-de-poule). In Robert Bosch, Douglas McKenna, and Reza Sarhangi, editors, Proceedings of Bridges 2012: Mathematics, Music, Art, Architecture, Culture, pages 299-306, Phoenix, Arizona, USA, 2012. Tessellations Publishing. [4] A.S. Glassner. Morphs, Mallards & Montages: Computer-Aided Imagination. Ak Peters Series. A K Peters, 2004. [5] Ralph E. Griswold. On-Line Digital Archive of Documents on Weaving and Related Topics. http://www.cs.arizona.edu/patterns/weaving/webdocs., as of Feb. 2, 2014. [6] Donna Muller. Putting the Shadow in Shadow Weave. Handwoven, XIX(4):34-40, Sep/Oct 1998.

0 items under this folder.