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!



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: