Connected Weaving: What Computational Patterning Can Contribute to Complex Weaving Utilization

Year: 2024 Authors: Lisa Marks; Owen Rohm

Core claim

Computational patterning can document, extend, and help revive endangered overshot weaving by translating its cultural rules into randomized block diagrams and woven outputs.

Topics

overshot weaving, computational craft, algorithmic patterning, textile documentation, endangered crafts

Domains

mod_n arrays, binary grid, pattern generation, textile design, craft preservation, computational design, architectural design

Methods

Processing scripting, randomized block diagrams, pattern expansion, gamp sampler

Media

woven textile, thin yarn, thicker dyed wool, Processing

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.

Bridges 2024 Conference Proceedings

Connected Weaving: What Computational Patterning Can Contribute to Complex Weaving Utilization

Lisa Marks and Owen Rohm

Georgia Institute of Technology, Atlanta, Georgia, USA; lisamarks@design.gatech.edu Atlanta, Georgia, USA; OwenRohm@gmail.com

Abstract

The growing epidemic of endangered crafts requires innovation in how we seek to apply, document, and transmit these through our work. This project uses interactive coding and algorithmic scripting to create randomized weaving patterns that follow the cultural rules of the technique of traditional overshot weaving. Beginning by creating a logical coherent definition of the many technical rules of overshot, we can create randomized “block diagrams,” or simplified weaving plans using the coding language Processing. We then detail how the coding expands these into full weaving patterns. We also illustrate how options are cross-referenced and combined to create distinctive textiles. These results demonstrate the potential of computational craft to connect history to contemporary designers as we document and progress endangered craft methods.

Introduction

Practices involving complex weaving patterns continue to decline globally as social, economic, and political changes interrupt the generational transmission of cultural knowledge. By integrating new technologies with traditional techniques, we have the potential to both preserve and innovate traditional forms, including the 32 listings related to weaving in the UNESCO Intangible Cultural Heritage list [6][10]. The fields of craft and computation have always interlinked through the binary nature of weaving (over or under). In fact, the punch-cards of the jacquard loom partially inspired binary code, helping to spawn an entire subfield of research: computational craft.

Using modeling, algorithmic design, and computation, researchers and designers have found innovative and complex ways to use weaving, through biaxial, triaxial, and multi-directional Shape Grammar Theory [2]. Furthermore, multiple patterning techniques have been explored computationally, including morphing weaves and using different weaving patterns [2][9]. However, the opportunity to potentially redress the loss of complex weaving innovation through computer technology remains underexplored. Furthermore, overshot weaving remains unexplored from the perspective of mathematics. The current paper fills this gap by applying algorithmic scripting to build randomized “block patterns” – simplified pattern templates that can be realized in the form of complex weaving.

Nomenclature

Weaving can be quite technical and involves a great number of specialized terms. For clarity, we can use the definitions in Table 1 for the understanding of the descriptions to come:

Table 1: Basic Weaving Definitions.

ThreadThe most basic unit of a woven pattern. A string.
LoomA device used in the creation of woven textiles.

Marks and Rohm

WarpThreads that run through the loom and become the length of a woven textile (shown vertically in a drawdown).
WeftA thread woven through the warp (shown horizontally in a drawdown.)
FrameA structure which holds, raises, and lowers warp threads to allow the weft thread to easily be woven through them. Each thread is held by exactly one frame.
TreadleA pedal on a loom used to raise or lower a given frame or frames.
DrawdownA complete set of instructions outlining how to weave a given textile including a threading pattern, a treading pattern, a tie-up, and a visualization of the textile produced.
Threading PatternA one-dimensional array in the drawdown that describes which single frame a given thread is held by. Values in the array are positive integers mod_n where n is the number of frames on a loom.
Treading PatternA one-dimensional array in the drawdown that describes the order in which treadles should be activated to raise or lower frames. Values are positive integers mod_m where m is the number of treadles on a loom.
Tie upThe part of the drawdown that describes which treadles are connected to which frames. Treadles can be tied to one of more frames and frames can be tied to one or more treadles.
BlockA grouping of often repeated ordered threads, which compose a threading pattern. Equivalently: a section of a threading pattern. Denoted with capital Roman letters (ex: block A, block B, …)
Block PatternA one-dimensional array outlining the order of blocks in a design.
Block DiagramA generic template which uses a block pattern and a treading pattern to describe the broad structure of a textile and can be expanded into a complete drawdown using a threading pattern based on the details of a block.

Overshot Background

Craft research can be uniquely challenging for several reasons. Unlike many fields, some parts of craft are documented, and some passed through generations undocumented, embodying generational knowledge. Textiles, in particular, can be challenging since many early artifacts have been lost to the elements, unlike harder materials that degrade more slowly, like ceramics or metal. Furthermore, textiles were relegated to being regarded as “women’s work” and devalued through history instead of being documented, monitored by guilds, and valued [1].

Prior to the pictorial qualities that jacquard had to offer, a mathematical abstraction of traditional twill fabrics was popular throughout Europe and Appalachian America: overshot weaving. Overshot is a particularly time-consuming, challenging, and highly decorative technique that combines a simple plain weave made with a thin yarn, with alternating strands of thicker yarn, often dyed wool that has long floats, or strings that sit above the ground. The result is impressively intricate patterns that draw the eye around the cloth and into different focal points. It can be so richly patterned that it creates an optical illusion of movement or three-dimensional space.

img-0.jpeg Figure 1: Left: A drawing of twill weaving. Middle and Right: Overshot fabrics in the permanent collection at Pleasant Hill Shaker Village, 1850-1935. Photos by Marks.

img-1.jpeg

img-2.jpeg

Overshot weaving is an excellent candidate for initial exploration since it is a derivative of twill weaving. There is already extensive research on twill weaves, so this is a logical next step to show the possibilities for more variety.

Connected Weaving: What Computational Patterning Can Contribute to Complex

Weaving Utilization

Technical Context: Weaving

A woven textile, when viewed from above, can be thought of as a two-dimensional grid of intersections between the warp thread and the weft thread. At each of these intersections, either the warp thread sits on top of the weft, or the weft on top of the warp. This binary nature has led to straightforward connections to computer science, with any particular “cell”, represented by white and black [7]. Such visualizations are a critical component of drawdowns: instructions on how to weave a particular textile. The most basic weaving pattern is called “plain weave”. This is likely the pattern you used while making potholders in grade school and is still commonly used in many textiles we use every day. This is the simple over-under-over-under repeat, with the 2 repeated rows alternating the start as shown in Figure 2(b).

img-3.jpeg Figure 2: (a) Representation of selected parts of a loom, threading, treadling, and tie up. (b) Drawdown of plain weave. (c) Drawdown of Twill with the row being woven in Figure 2(a) highlighted.

A drawdown of a slightly more complex pattern, a “twill weave”, is shown in Figure 2(c), and consists of a threading pattern, outlining through which frame a given thread passes; a treadling pattern, which shows the order in which the pedals are pressed; and a tie-up, describing which treadles are attached to which frames. This is all critical information for a weaver to be able to recreate a textile. Figure 2(a) also details the corresponding parts of a 4-frame loom to show how the two interact.

Block Design in Weaving

Proficiency in complex weaving requires mastery of many rules which vary by cultural tradition. To make these techniques more legible to novice weavers and to help begin patterning more quickly, the field uses “block diagrams” (Figure 3 (left) in “Generation of a Block Diagram”): generalized designs accomplished by grouping sets of threads together into “blocks”. The complete generalized template is referred to as a “block diagram”. These generalized designs do not contain enough information to weave a textile, but they do allow for the communication of basic symmetries and broader designs [4][8]. Designing with blocks is used in many types of weaving including overshot, and it would be unusual to define an overshot design without it. This has therefore become the basis of our approach. The details of these blocks (ie. which threads are

included), as well as how many different blocks there are in a pattern, are defined by the style of weaving being performed. Since we are focusing on Overshot Weaving, we will define the exact rules of overshot next.

Overshot Definition

As mentioned, many craftspeople and authors have come up with different definitions of overshot, so our first job was to parse out the many rules of the patterns by combining multiple definitions and sources as well as our own analysis of textiles and drawdowns [4, 5, 8]. These rules, which have not been succinctly combined in one place before, became the framework for our code to ensure that the textiles created are true to the original techniques.

  1. The pattern must be symmetrical, both for blocks and for threading.
  2. The distance modulo k between adjacent overshot blocks may be at most one, where k is the number of blocks used. The value of k can vary with the number of frames, but for our purposes is equal to 4.
  3. Expanding blocks involves assigning multiple threads to frames for each block as defined by that particular weaving style. For overshot weaving, each block turns into 2 threads, each threaded into adjacent frames. This is defined as: Block A = Frames 0&1, Block B = Frames 1&2, Block C = Frames 2&3, Block D = Frames 3&0.
  4. The threading pattern cannot have two of the same value in a row, and each thread must be a value that is adjacent to the previous value with the last value (3) having the 2 adjacencies of 2&0. Both of these qualifications are sometimes broken during the block expansion, so there needs to be a correction process. This process will be described in the “Threading Expansion” section to follow.
  5. Overshot has characteristically long “floats” (weft threads that go over multiple warp threads at once). To create a more structured fabric, overshot alternates each weft row of thicker wool with a thin cotton or linen thread that matches the warp. The weft uses a plain weave pattern (over-under-over-under) so that there is a “ground weave” underneath the floats. To accommodate this plain weave ground, the threading must follow an odd-even pattern: 1,0,1,0,1,0,1,0,1,0… mod 2.
A Note on the Plain Weave Ground

This script and visualization do not incorporate the plain weave ground in the treadling. This can be done automatically in the loom’s software as well as every prominent weaving software package. In the case of overshot, when the ground weave is added physically, it is pushed under the pattern weave thread in some parts, so the visualization of the design becomes less accurate. Therefore, omitting the ground at this point is both less work and more visually accurate, as long as the odd-even pattern remains intact so that the ground is possible later.

Generation of a Block Diagram

As stated previously, this project seeks to explore and discover new overshot weaving patterns through random generation, while still maintaining the key stylistic elements of overshot. While there are plenty of coding languages which could do this, we used Processing. We accomplish this in three steps. First, the generation of a block diagram, then expansion of a given block diagram into a valid overshot drawdown, and finally, a visualization of both the block diagram and the complete drawdown.

The first step in this process is the generation of a block diagram, traditionally named with letters. In traditional four-frame overshot, there are four different blocks, each composed of two threads. Following the rules laid out in “Overshot Definition”, there are two other key stipulations in a traditional overshot pattern;

Connected Weaving: What Computational Patterning Can Contribute to Complex

Weaving Utilization

symmetry along the x-axis (rule (a)) and that adjacent blocks should have adjacent values or the same value (Block A will always be next to either Block B, Block D, or Block A) (rule (b)).

To create a block diagram, a user first inputs how long they want the block diagram to be. The code then creates an array of half that length and randomly selects a starting block A through D. Next, for the subsequent block value in the array, the code randomly chooses between moving one value up, one value down, or staying the same (rule (b)). This is repeated until the end of this initial array. Next, the code works backward through the array, appending each value it encounters to the end of the array and saving that new, longer array. By the end of this process, the code has generated a block array of the input length, which is symmetrical about its middle value, and whose values are all adjacent or equal to its neighboring values. Note: for ease of computation, our code uses positive integers modulo 4 instead of letters. For ease of comprehension, we will continue to refer to blocks by their letter names in writing. Figure 3 (right) illustrates the creation of a 7-digit block pattern.

img-4.jpeg Figure 3: Left: Simple block diagram. Right: Visual explanation of code logic that creates a block pattern.

Threading Expansion

Now that a block pattern has been generated, we can expand it into a threading pattern. There are two main requirements for a threading pattern in overshot weaving; an alternating odd-even pattern (ie. the threading pattern will read mod_2) (rule (e)), and horizontal symmetry (rule (a)). Imagine the sample block pattern from Figure 4 as follows: AABCBAA (0012100). Replacing each block with its component’s threads following the definitions above yields: 01 01 12 23 12 01 01 (rule (c)).

This simple algorithm has missed the mark on both of our two requirements described in overshot rule (d). The solution for this is somewhat dependent on a weaver’s preference. In the above example, when an A block that expands to frames 0 and 1 borders a B block that expands to frames 1 and 2, we wind up with adjacent threads both passing through frame 1. This can either be solved by adding a thread between the two blocks that goes through an even frame or by removing one of the threads that is going through an odd frame. In human-generated threading patterns, this is left to the preference of the weaver, and we chose that our program removes adjacent same-framed threads.

The second problem with our simplistic expansion above is that we have lost symmetry. A human weaver may understand somewhat intuitively that Block A could be interpreted as 0,1 or 1,0 in order to preserve symmetry, but our computer program does not. Thankfully, this issue of symmetry is easily solved through the same method of working backward from the midpoint of the pattern and appending the values encountered that we used in the generation of block patterns. To briefly walk through an example of the steps our algorithm follows:

Presented with the block pattern , our code will first represent the first half with equivalent numerical values; as seen in step I of Figure 4. It then adds a space after each value (step II) and expands the first half to its component threads (step III). Next, it will identify where there are values which violate odd-even adjacency (step IV), and remove the extra values, yielding (step V). Finally, it will work backward from the end, appending each value, producing the final output: , a valid overshot threading pattern (step VI)!

Marks and Rohm

img-5.jpeg Figure 4: Visual Explanation of the code logic that creates novel threading expansions.

img-6.jpeg

Visualization

At this point, we have generated a block pattern (a symmetrical 1D array of adjacent values in ), and a threading pattern (another 1D array of adjacent values in ). Perhaps there are weavers experienced enough to picture a textile woven with this information. It is, however, much easier to search for designs by looking at pictures of them, and so, the next step of our program is to visualize a block diagram and a complete drawdown.

First, we will handle the treadling pattern. Four-frame overshot patterns traditionally use 6 treadles. Two of these treadles are dedicated to the creation of the plain weave ground and, therefore, bear little to no impact on the design of the textile and can be ignored. The remaining four treadles are tied up in a traditional twill pattern (treadle 1 to frames 1&2, treadle 2 to frames 2&3, treadle 3 to frames 3&4, and treadle 4 to frames 4&1). The most common treadling strategy for traditional overshot, and the technique we used for this paper, uses the block definition as the treadling pattern. This technique is called “as drawn in”.

Overshot block diagrams can be assumed to have a direct tie up, where treadle 1 raises block A, treadle 2 block B, and so on. Every cell in a textile’s visualization can be given a coordinate pair to denote its location as defined as (i,j) in the Processing code, with the top left cell having a location . For any given cell at location (i,j) on the grid of our block diagram, we need only check that the value of the block pattern at index [i] matches the value of our treadling pattern at index [j]. If it does, we color the cell black. Otherwise, we color it white. This is repeated for every cell in the diagram, yielding a block diagram. Below in Figure 5 (left), is an example of a 38 digit block diagram.

img-7.jpeg Figure 5: Left: A block diagram visualized by our code. Right: The full drawdown of the same example.

img-8.jpeg

Overshot drawdowns include a slightly more complex tie-up, using the twill pattern described previously. Therefore, to check whether a cell at (i,j) should be colored black (the corresponding frame is raised), we must check if the value of the threading array at index [i] is equal to the value of the treadling array at index [j], or that value plus one. This will yield a drawdown, for example, the one above in Figure 5 (right).

The explanation of our code thus far looks at how it works for one pattern at a time, however there is the option to create multiple variations at once. This can be a big benefit since threading is the most laborious

Connected Weaving: What Computational Patterning Can Contribute to Complex

Weaving Utilization

process in weaving. Weaving different designs with the same threading pattern allows a weaver to avoid re-threading a loom while still producing a variety of outcomes.

The program can generate and store multiple block arrays to facilitate the creation of multiple patterns. Each block array is then expanded into a threading array, resulting in a collection of stored threading arrays as well. Each threading option is then cross-referenced with each treadling option to create a grid of pattern options. Figure 6 (left) shows a grid of pattern options based on four generated block and threading arrays. Following the patterns diagonally, we see the four variations with the treadling as drawn in, or looking at our grid, the options Threading 0 with Treadling 0, Threading 1 with Treadling 1, and so forth. The other options show the threading cross-referenced with the other treadlings.

img-9.jpeg Figure 6: The first example of bringing the code to fruition with physical samples. Left: A grid of 4 expanded threading options. Right: The woven samples from threading 2.

img-10.jpeg

The above four samples in Figure 6 (right) are the first outputs that move this project from a digital realm into physical results and were each woven from threading 2. Each sample shows the pattern repeated twice horizontally and three times vertically. These samples could be combined with additional design elements or be repeated to create larger textiles from the chosen pattern.

Gamp Samplers

When the code processes multiple iterations at a time, this gives the weaver many choices. In real world weaving, these choices are combined into one textile to create a “gamp”. Gamps are traditionally used to visualize the completed fabric before making large quantities. However, they are also used as standalone pieces of art due to their complexity and visual beauty. Gamp samplers were first used to test color combinations since the combinations can look markedly different when interlaced instead of held near each other [3]. This same technique has been used with patterns as well, and the results create a grid similar to the visualization produced by the code. To further compare the digital output of the code to the physical manifestation, we created a 4x4 gamp sampler keeping the color consistent. We also wanted to try more complex block definitions and expansions, so we have increased the thread count to 63. Below, in Figure 7, the textile created is shown.

Conclusion

We are currently looking at overshot weaving and are only considering one method of treadling. Moving forward, we will be looking to broaden the project to include different treadling inputs. We also aim to expand block diagrams into multiple styles of weaving. This paper serves as a case study for a methodology that can be used for many types of weaving as well as other crafts. We present this project as a call for future work to revive traditional craft techniques through adaptations in fields including, but not limited to, architecture, product design, design technology, computational humanities, and computer science.

Marks and Rohm

img-11.jpeg Figure 7: A gamp sampler of 4 block definitions with complexity 63. Left: Front. Right: Back.

img-12.jpeg

References

[1] E. Barber. Women’s Work: The First 20,000 Years: Women, Cloth, and Society in Early Times. W. W. Norton & Company, 1994. [2] F. Harnomo and A. Indraprastha. “Computational Weaving Grammar of Traditional Woven Pattern.” 8th ASCAAD Conference Proceedings, London, England. Nov. 7-8, 2016, pp. 75-84. https://papers.cumincad.org/data/works/att/ascaad2016_010.pdf. [3] [M. Van Der Hoogt. Handwoven Magazine. The Draft: What is Gamp? 2017. https://handwovenmagazine.com/the-draft-what-is-a-gamp/. [4] D. Keasby. Designing with Blocks for Handweaving. Keasby Publications, 1993. [5] S. Kesler-Simpson. Overshot Simply: Understanding the Weave Structure. Stackpole Books, 2018. [6] L. Marks. “Parametric Craft Techniques: Design Methodology for Building on Embodied Cultural Knowledge.” Industrial Design Society of America International Design Conference, Atlanta, GA, Aug 16-19, 2017. https://www.idsa.org/education-paper/parametric-craft-techniques/. [7] Y. Tao, N. Lu, C. Zhang, G. Wang, C. Yao, and F. Ying. “CompuWoven: A computer-aided fabrication approach to hand-woven craft.” Conference on Human Factors in Computing Systems, San Jose, California, May 07, 2016, pp. 2328-2333. https://doi.org/10.1145/2851581.2892293. [8] E. Voolich. Playing with Blocks: An Explanation of Multiharness Overshot. The Cross Town Shuttle, 1977. [9] Q. Xing, G. Esquivel, R. Collier, M. Tomaso, E. Akleman. “Spulenkorb: Utilize Weaving Methods in Architectural Design.” Bridges Conference Proceedings, Lisbon, Portugal, July 27-31, 2011, pp. 163-170. https://archive.bridgesmathart.org/2011/bridges2011-163.#gsc.tab=0. [10] UNESCO. Browse the Lists of Intangible Cultural Heritage and the Register of good safeguarding practices. Retrieved January 23, 2022 from https://ich.unesco.org/en/lists.

0 items under this folder.