Creating open source weaving software – an introduction

From fabric durability and density to color and pattern to material and scale, many technical and creative factors come into play when planning a weaving project. All woven fabric comes from an interplay of warp (vertical) and weft (horizontal) threads, but given an empty loom and a pile of yarn, how do weavers anticipate that interlacement? Though some parts of weaving happen either by happy accident or through creative freedom, other parts, like threading a loom to make a stable cloth, are fully specified and locked into place before any weaving can begin. Weavers use drafts in order to plan their projects and understand the underlying structures of their textiles. Though it’s fully possible to draft a project on paper, most weavers use weaving software, such as pixel loom, in their designing and debugging process.

Three sample drafts: Plain weave on two harnesses, the simplest weave structure; point-on-point twill on four harnesses; and houndstooth, a color and weave effect structure

Drafting Basics

Drafts use a standardized visual system to convey all information necessary for creating a textile. They specify the number of harnesses needed, the placement of warp threads, the relationship between harnesses and pedals, the pattern of the final textile, and allow the weaver to infer technical details of the final cloth, like sturdiness and balance between front and back. While drafting, a weaver can experiment with different combinations of colors and raised and lowered threads in order to explore the possibilities of their threading or make modifications. During drafting, weavers can also compare multiple thread arrangements side by side in order to understand how threading choices will change the final cloth. Weavers create drafts to see their planned textile before committing to weaving, to share their projects with other weavers, and to understand different weave structures.

Drafts have four main components:

  1. Threading – assigning warp threads to harnesses. By convention, the bottom row of the threading is the first harness on the loom. Any loom has a fixed number of harnesses – from two to hundreds. In the drafts above, the threading is the top box of numbers.
  2. Treadling – Specifying which threads to raise when inserting a weft thread. The weaver must raise at least one treadle per pick (inserted thread, also called a shot), to tack that thread down. The weaver can’t raise all treadles in one shot for the same reason – the weft thread would pass under every warp thread and not weave into the final cloth. In the drafts above, the threading is the rightmost column of numbers, but the treadling can go on the left or the right.
  3. Drawdown – The combination of the threading and the treadling. If I have a thread on harness 1 and raise harness 1, then the weft thread will pass under that warp thread, and the warp thread will be visible. If I don’t raise harness 1, then the weft thread will pass over the warp thread, and the weft thread will be visible. In the first two drafts above, the warp threads are black and the weft threads are white. (Conventionally, if no colors are specified, the draft is shown in black and white.) In the houndstooth draft, the grey areas of the warp and weft show that those threads are black, and the other threads are white. The structure is a simple twill, but the resulting fabric has a pattern called a color and weave effect.
  4. Tie up – not necessary, but generally included in complicated patterns or when the weaver is using a floor loom. For simple looms or table looms, the weaver generally manually lifts the desired harnesses directly. For example, if they want to raise harnesses 1 and 2, they would press on pedals one and two simultaneously, and can combine harnesses at will. For complicated structures, a weaver might have to raise harnesses 1, 3, 5, 6, and 8 — which isn’t feasible with foot pedals. So, the weaver can attach harnesses 1, 3, 5, 6, and 8 to pedal 1, and press one pedal to raise 5 harnesses. Many weaving patterns have a repetitive treadling sequence, so the tie up specifies an efficient way of tying the pedals to the harnesses that includes all necessary harness combinations for the pattern. Looms have a fixed number of pedals, so not all tie ups are possible on all looms.

On the loom diagram below:

Source: Wikimedia

When dressing the loom, the threading tells the weaver to pass each thread through a distinct heddle eye (8 on the diagram), attached to one of the numbered harnesses (7).

The tie up describes how to tie the peddles (16) to the harnesses (7), and the draw down shows the final cloth (11).

At each row in the treadling, the weaver raises and lowers the appropriate harnesses, lifting some threads, and creating space for a weft thread to pass through (10).

Drafting GUIs

There are a number of available drafting programs available, each providing basic functionality to manually insert warp and weft threads to display a drawdown.


Beyond accurately displaying which threads are raised and lowered per pick, there are a few more basic functions that make weaving software useful. Once the weaver has designed their textile, the weaving software generally allows them to export the image as a .wif file (a standardized text format), print the threading and treadling, aggregate the number of threads on each harness, and so forth.

Ideally, weaving software would be able to reverse-draft an image: given a pixelated design, compute what the theoretical threading and treadling would be. Even better weaving software would allow a user to free draw or upload an image, turn that image into a draft, and then iteratively reduce the image to meet the weaver’s loom requirements.

Stay tuned!



Adapting colonial coverlets to 8-harness looms

Bright and graphic, tiling natural and geometric forms, American colonial coverlets form a dazzling body of early American textile art. These impressive blankets and coverings were woven in the mid-19th century on complicated jacquard looms, combining cotton and wool threads in sharp, contrasting colors. Without access to jacquard looms, handweavers may want to replicate these designs, but lack the technology to do so. This post explains the methodology for adapting profile drafts of colonial coverlets for eight-shaft floor looms with no special added technology.

Though a system for algorithmically generating profile drafts from schematized images of weaving is on my programming docket, I haven’t gotten there yet, so this post relies on profile drafts from The Coverlet Book, by Helene Bress. This two-volume compendium translates over 2,000 colonial coverlets into drawdowns, with ample discussion, and I highly recommend it as a very technical coffee table book. Natalie Boyett at the Chicago Weaving School  taught me not only how to read and adapt profile drafts, and about overshot and double weave, but also everything I know about weaving. Everything in this post was developed with Natalie’s help, guidance, and expertise.

I chose a tree and snowflake design from Bress’ text described as “neat, bold, and classic” (Bress 282). The original coverlet was woven in double weave with five blocks over 20 harnesses, in dark blue wool and off-white cotton. It was woven in two pieces, which were joined together to create a blanket of 66 1/2 x 82 1/4 in., with 1 in. of attached fringe on the vertical sides and 1 in. of natural fringe on the bottom. The coverlet is labeled as T12524, drawdown D69, on page 282 of volume 2, for those following along.

Photo of original coverlet and drawdown, reproduced from Bress:

The complete profile draft gives the threading and treadling for vertical and horizontal pine trees, an intermediary, half-tone tree/crosshatch section, and the interior circular pattern. To simplify the adaptation, I’ve reproduced a small section of the draft showing only the horizontal trees to the far left:

Original profile draft

Rather than showing the draft thread by thread, a profile draft simplifies the weaving into its constituent blocks, which can be realized with a number of weave structures. So while the coverlet’s original loom may have had many, many more harnesses than the now-typical four or eight, as long as the block draft has eight or fewer blocks, we can adapt it to an eight-shaft loom. (A profile draft with four or fewer blocks works on a four-shaft loom, but most coverlets have more complex designs.)

In a simple overshot structure, tabby and pattern shots alternate. Each block requires 2 harnesses, but the each block shares harnesses with its adjacent blocks, so overshot in four blocks takes four harnesses. Additionally, odd and even harnesses must alternate. An example threading:

Block A – 1,2
Block B – 2,3
Block C – 3,4
Block D – 4,1
Plain weave – 1,3; 2,4

(Algebraists  – many structures in weaving are based on the cyclic group!)

The original coverlet uses five blocks. Unfortunately, in the overshot family, five blocks don’t work, because Block E would be threaded on 5,1 — an odd and an odd. We can simply add in a block F to give Block E on 5,6, Block F on 6,1. How do you decide where block F goes? In the original block draft, there are many areas where the blocks ascend consecutively, most clearly in the tree trunk areas. Because of the tie up, Blocks E and F always weave together, so adding in Block F at the start of an extended length of block E doesn’t alter the original design:

This is a subsection of the altered profile draft:Altered profile draft

The design is slightly longer, because the ascending sections of blocks are now one block longer. If that difference matters in the final design, it’s easy enough to remove Block E from the tree trunk, or eliminate the decorative geometric pattern at the far left side. Since the trees are a border element that contrasts with the central rounded square design, I don’t mind the elongation.

Overshot weaves create patterns by passing weft threads over blocks of warp threads. The resulting sections of warp threads are called floats. Floats appear as strong, unbroken blocks of solid pattern color. The number of consecutive iterations of a block in the draft determines the length of the float.

This image shows the drawdown woven with white tabby and blue pattern. The grey squares show where pattern blocks are tied down. Areas without vertical divisions are floating. Because overshot alternates pattern and plain weave, each shot is reinforced with plain weave, so floats occur horizontally only:block draft with floats

The original coverlets don’t have any floats, because they weren’t woven in overshot (hence, many more harnesses needed). Though floats are an easy way to make compelling patterns, the hanging threads are a significant structural defect if the final textile will be used extensively. Long floats catch, snag, and can break. The floats shown above are too long for practical use as a blanket or coverlet without lining on the back.

We can solve this structural problem by introducing another weave structural. Double weave is a weave structure that weaves simultaneously on the front and back sections which the weaver can join, separate, and reverse at will, allowing tubes, pockets, or combinations. Colonial double weave is a related weave structure where a particular threading allows the weaver to weave double sided, solid cloth where the front and back reverse each other. By adapting double weave threading to traditional overshot, we tack down floats while maintaining the solid pattern, half tone, and solid plain blocks created by overshot.

Colonial double weave uses two contrasting colors for the warp, a front color and a back color. The warp is wound together so front and back (traditionally, and in this post, light and dark) alternate. Each dent in the reed gets one light and one dark thread, which will weave reversed patterns on top of each other. The paired threads go into different harnesses according to a simple rule: each harness has a corresponding opposite, and for each light thread in the draft, we subsequently put the dark thread on its corresponding opposite.

Each harness’s opposite is self + \frac{\text{num blocks}}{2}. On a four-block draft, that gives 1 \leftrightarrow 3 and 2 \leftrightarrow 4. On a six-block draft, that gives 1 \leftrightarrow 42 \leftrightarrow 5, and 3 \leftrightarrow 6.

Our original thread by thread draft becomes the threading for the light threads. We then add and interleave dark warp threads to that threading according to the relationships above:

double weave threading

Because each pair of light and dark threads are sleyed in the same dent of the reed, the total woven width remains the same, though the thickness and overall structure significantly changes.

Traditionally colonial double weave uses four harnesses and a tromp as writ treadling on the light threads with a paired treading for dark threads (treadling follows the threading, so the sequence of light threads 1, 2, 3, 4 in the pattern gives treadling: 1 light, 124 dark, 2 light, 213 dark, 3 light, 324 dark, 4 light, 413 dark, etc). We don’t want to treadle following the threading, because we have a specific pattern in mind — we want to weave our block pattern at will. This doesn’t work with a true colonial double weave, but it doesn’t actually matter – the colonial double weave threading is enough to tack down pattern floats. By pairing light and dark threads on opposite harnesses, when we lower harnesses 1, 3, 4, 5 and 6 to to weave pattern in Block E on the pesky tree trunk section, our dark threads on harness 2 raise, so the pattern float weaves under warp at every other dent in the reed for its entire length. Sett at 12 ends per inch (EPI), that caps float lengths at 1/6 in — sturdy enough to function as a coverlet. As long as the dark threads in the warp match the pattern weft color, there’s very little stylistic interference.

Here’s a sample, with some commentary:


This sample uses white and forest green cotton rug warp with thin white cotton tabby and thick green wool pattern weft. Based on the thickness of the pattern and tabby weft, you can experiment with the number of shots of pattern. The bottom 2/3 uses two shots of pattern for each shot indicated on the draft. In the top 1/3, and final version, I’ll stick to one shot of pattern for each shot indicated which approximates plain weave. Since I was using up bobbins, there are actually three substantially different shades of pattern weft. The bottom 1/3 is dark forest green, the middle 1/3 is bright teal, and the top 1/3 is navy blue. Because of the density of the warp, all three colors show as forest green, making this structure a neat combination of warp-facing and weft-facing characteristics.

So, if you too would like to weave a colonial coverlet but find yourself with merely an eight-shaft floor loom to work with:

  1. Adjust the block draft to an even number of blocks.
  2. Translate blocks into an overshot thread-by-thread draft.
  3. Add reverse threads to the original overshot threading.
  4. Warp in light and dark, with dark threads matching/coordinating with pattern weft.
  5. Sley the reed with two threads per dent sett for a dense plain weave (12-15 epi).
  6. Thread alternating light and dark.
  7. Weave with thin tabby and thick pattern threads with the same treadling you’d used for normal overshot.