AdaCAD Open Source Provocations Public Resources

AdaCAD – The Beginnings

Photo of the AdaCAD user interface

In 2017, the Unstable Design Lab received a grant from the National Science Foundation to develop AdaCAD, a software tool that would facilitate weavers who needed to integrate circuitry into their design.

This post includes a transcript of our first presentation about AdaCAD, delivered at CHI 2019. In this presentation, we talk about the rationale, process, and features of AdaCAD. Long story short, we presented how we learned that providing specific support for multilayer weaving and viewing your weave in terms of the draft as well as the paths of the individual yarn types within the design could go far to support weavers, and non-weavers, entering this emerging design space.

Since giving the talk in 2018, we have contributed development and you can view our current documentation and use the tool here:


Read Mikhaila’s Presentation from CHI 2019

In May 2019, Mikhaila presented AdaCAD at the annual conference on Human Computer Interaction (CHI) describing our web application for designing smart woven textiles. The work was a collaborative project between Mikhaila Friske, Shanel Wu, and Laura Devendorf. The conference talks were not recorded, but you can view the transcript of our presentation below or read the paper here. 

Hello. My name is Mikhaila Friske and I am here to present work that I and my coauthors, Shanel Wu and Laura Devendorf, completed within the realm of smart textiles and developing software for smart textiles design.
Before getting too far into the talk I want to discuss why smart textiles are an interesting and important space of research.

Within HCI, new ways of fabricating and interacting with “smart” fabric are expanding how, where, and why we might engage technology on the body as well with other “soft” domains like upholstery and plush toys.

For example: (1) Google’s Project Jacquard weaves custom conductive yarns into the fabric structure to create touch-sensitive jackets and (2) Workaround Ebb, a thermochromic yarn (thus it changes color with heat), researched different ways to incorporate the yarn into the design and fabrication of elements: such as these crocheted patches or a number display into a woven textile.

In this talk, we use the term “smart textiles” to refer to fabrics where conductive or state-changing materials are integrated into the fabric on a structural level.
For example, Irene Posch in collaboration with Ebru Kurbak knitted a sweater that doubled as an FM radio transmitter using ordinary wool yarn and conductive materials.

Additionally, Hannah Perner-Wilson and Meeka Satomi have created Kobakant, a site for documentation of various smart textile and e-textile sensors and fabrication techniques. Such examples utilize fabrication techniques like smocking (bunching of fabric), weaving, knitting, and crocheting. In looking through examples, it becomes important to notice that designing smart textiles is complicated in that you must consider both the circuitry and textile structure at once.

For example, here we have a woven pressure sensor that uses a waffle pattern. The waffle pattern is typically found in wash rags or dishcloths. If you’ve ever held one of a wash rag, you’d know there is a little bit of a squish to it.

By adding conductive yarn along the path of the regular yarn, we are able to integrate a sensor that changes resistance when pressed into the structure of the fabric itself. This example shows how functionality isn’t just about the circuit paths but must be considered in tandem with the woven structures.

Currently, when it comes to designing smart textiles there are two spaces that practitioners live within: designing the circuitry and designing the textile. These tools have been separate in the past, causing people to have to work across them.
It is in the middle of these two that our application exists.

This talk focuses on the specific challenges of designing and fabricating woven smart textiles and the practices and techniques that informed the design of our application, AdaCAD, a tool for woven smart textiles design. AdaCAD, named after Ada Lovelace, is a tool to allow users to design and document smart woven textiles within one tool.

Before and while developing AdaCAD, we asked ourselves three core questions: (1) How do we create tools for smart textiles without sacrificing the values of textile craftspeople and circuit designers?; (2) How is the design and fabrication of textiles different from solid modeling and fabrication?; and (3) What are the practices and techniques of those producing smart textiles?

Our research has 4 main parts: (1) the authors’ process of learning to weave; (2) the tool development; (3) the semi-structured interviews with smart textiles practitioners; and  (4) tool assessment.

The research presented here was an iterative process, so these four parts took place concurrently, meaning that what the authors realized while learning to weave, what the practitioners mentioned about their own techniques, and the feedback was given when shown the application all influenced the development of AdaCAD.

The rest of the talk will follow this process. First, I will discuss the importance of all the authors being some level of beginners and why learning to weave was essential in the creation of our application. Next, I will discuss some common values expressed by our participants.

After that, I will discuss AdaCAD using examples and walk through some of the features that make it easier to design and document smart textile practices. Lastly, I will talk about what we envision the future looks like for work around woven smart textiles.

All of the authors on the paper were some level of being a beginner when it came to weaving practices. Shanel Wu, a skilled crafter within the realms of knitting and crocheting, had never woven before attending a workshop for the TC2 at the Jacquard Center in North Carolina. Laura Devendorf still learning new ways to set up a loom and what structures work better than others. And I myself had never woven before working on this project.

So why should we learn to weave? In all being some level of beginner, we learned a lot about weaving and the process. One of the biggest being that it probably will not look like the pattern you have designed and that you have to start weaving to really know what the materials will do. This uncertainty also led each of us to allow ourselves some improvisational practice on the fly, editing the original pattern while weaving.

Additionally, textiles are very tactile. In designing the software, it became evident that we needed to understand some of that process of weaving and the workflow to be able to create a digital tool to become a part of the process rather than dictating the process.

We interviewed 5 smart textiles practitioners.

Our participants were experts in electronics, weaving or both. We interviewed them about their practice and its core challenges before having them assess our tool.

In interviewing our participants, we found that major themes centered around the playfulness and improvisational nature of weaving, thus echoing our own experience.

For multiple of our participants, the starting pattern existed merely as a starting point. they related the process of weaving to activities that have a flow, like sketching or playing an instrument. Additionally, in describing the design of smart textiles, one of our participants went as far as to describe it as “patterning electricity”.

We created AdaCAD to tackle some of the practices and techniques described as particularly challenging in smart textiles development. But before we talk about those, we want to explain some basics about weaving.

This is Shanel, our coauthor, weaving on a digital jacquard loom. The loom picks up some of the threads, and they throw a wooden shuttle through and then beat the yarn into place.
The draft will determine which up/down yarns will be “picked” up. So the squares that are filled are lifted, this creates a shed. The weaver then passes the shuttle through the shed, moving the weft in that left/right, lastly, the weaver will “beat the yarn in place”. A draft explains only what the machine does, and knows nothing of the shuttles because, in the past, the paths of the yarns didn’t really matter. But with conductive yarns, it does matter, so that is where our first feature comes in….

A draft tells the weaver or the loom which threads to lift and which order to lift them in, and when yarn is thrown through, it creates the woven structure. The draft has been the way that woven patterns have been described for centuries.

At its most basic level, AdaCAD is a tool for designing drafts, thus it supports tools for designing drafts that are mirrored by most weaving software.

But smart textiles weavers need additional features to support what they do. traditional drafts just tell you what warp threads will be lifted, but do not know the paths of the yarns.

Smart textile weavers need to know the paths of the yarns to understand what is touching. So we designed features in AdaCAD to tackle these challenges…

One feature is the ability to view your design as the traditional draft or the yarn/“shuttle” paths. While a traditional weaving path would be just what you see on the left, AdaCAD’s support for the yarn views allows us to see where our press button will make contact (the blue and green).

Smart textiles weavers often need to design in multilayers simultaneously, so we added additional features to support this. Because there may be some beginners in the audience, we will explain these through examples.

The first example I am discussing is a woven press button. The woven press button utilizes a double layered weave, this means while it is being woven, you are creating two layers of fabric at the same time. When adding conductive along the path of the regular yarn, the copy row operation is well utilized. Additionally, the ability to hide “shuttles” allows the designer to isolate the top and bottom fabric of the double weave.

Both sides of the button contain conductive thread. Thus, when pressed, the resistance changes. This brings the sensing and actuating capabilities integrated into a textile at the yarn-level, utilizing the structure of fabric to recreate functionality of sensors.

With the interwoven images, Shanel Wu used the import images to map out the two overlapping chevron images. This is difficult because the chevron will be made from color changing thread, meaning the pattern is “invisible” while weaving. The yarn view was important for visualizing the way the two images may overlap and for determining the amount of padding needed between the images. this example used the hiding and viewing “shuttles” to understand the structure that would take place once being woven.

Our paper includes more examples and detailed descriptions of the features. We invite you to read the full paper.

Our software is designed to be compatible with the emerging infrastructure of textile machinery:

It can be used with high tech jacquard loom like the TC2 or even Pamela Liu’s Doti, the open-source table-top jacquard loom. But you also can create these textiles using “low tech” options like a table-top loom or a simple tapestry loom or even a kids’ “toy” loom. This allows the points of entry to be greater and as weaving basics are a series of overs and unders.

We think the future is the past.

Weaving holds such a rich history and has been around for thousands of years (basically as old as civilization itself). By basing AdaCAD on this “legacy” format of the draft, we connect to this rich history of patterns, techniques, practices, and tools that we can draw upon while designing smart woven textiles. By drawing on these techniques and inherently supporting past patterns via drafts, we are connecting the past to the future and the future to the past.

I would like to note that weaving has always been computational and logic. The way the fabric is constructed is a series of “overs and unders”, kind of like binary. And the original 18th century Jacquard weaving loom was a predecessor to computer science. Here we see the punch card of a Jacquard loom, which was inspiration for the punch cards that were used to program Babbage’s Analytical Engine. Seen through this historical lens, AdaCAD isn’t so much a tool for bringing technology to textiles, but to continue to innovate textiles along with technology. We encourage others to see these shared histories and to understand how code is crafted in much the same way as the physical materials.

Moving forward with AdaCAD, we want to expand on its abilities as a tool for documenting and community. Weaving is described as a human in the loop. One interesting point of AdaCAD that our participants pointed out was that it not only was a system for designing for the machine to read, it was also designing for the human to read and execute. As we move forward with integrating technology into soft material domains, we believe that such “human-in-the-loop” formats will be increasingly necessary for working cooperatively with novel fabrication systems.

Additionally, because of the playful and improvisational nature of weaving, the theme of documenting came up multiple times with our participants and allowed us to see our own documenting habits with the tool. Thus, it becomes a way to better keep track of what you did rather than strictly planning what you are going to do. We see this value around documenting as an interesting point and are excited to further expand AdaCAD. In future work, we intend to focus on this quality, allowing users to include written annotation as well as create the ability to share designs with the larger community.

Lastly, we want to mention that all of the AdaCAD application code exists on GitHub and we invite the community to take a look and even to contribute to the expansion of the software.