PhD Thesis Abstract

From shirts to car seats to space suits, machine knitting is used to create a variety of textiles that people interact with on a daily basis. Industrial knitting machines are reliable and capable of producing complex garments. Existing knitting machine CAD software, however, is typically proprietary, cumbersome, and requires extensive training to understand, making it difficult to fully use the machine's capabilities. Small adjustments to garment designs can be herculean tasks even for experienced knitwear designers. As a result, despite these machines being used daily in factories across the world, their use is typically limited to commonly-worn garments, such as socks and sweaters.

In this dissertation, I will present three core projects aimed at improving the machine knitting design process. The first two build upon the idea of modular programming to allow a knit programmer to combine and reuse existing designs. Prior to these projects, there was little support for modular design in machine knitting; if a user wanted to combine designs, they had to manually create a new file from scratch containing all the elements. The first project, QUILT: Supporting Modular Design of Machine-Knitting Programs, allows a user to lay out swatches in a rectangular grid and automatically combine them without the need for any post-processing. QUILT supports a bottom-up approach to design where the overall structure is built piece by piece, and each swatch must be a complete program (i.e., produce a standalone knit artifact). The second project, KnitGraft: Composing Machine-Knitting Programs through a Functional Programming Paradigm, allows a user to insert a design element into a larger program and automatically interleaves the program instructions to ensure continuity. Users start with a complete base program, then apply replacement programs onto the original (e.g., starting with a garment, then inserting a pattern or colorwork). KnitGraft supports a top-down design approach and does not require that inserted programs knit complete artifacts on their own. While QUILT front-loads the work of ensuring each swatch knits the intended artifact correctly and is sized appropriately for merging, KnitGraft relaxes some constraints but expects a higher level of user expertise in order to correctly design and place insertion programs. KnitGraft also provides basic warnings and error messages to help the user identify undesirable behaviors resulting from an insertion. These two design tools will be used to support the development of soft protective equipment for children with autism. Debugging a knit program largely relies on the proprietary design software, and even those warnings are difficult to understand and are not identified in real time. Combining multiple designs, as supported by QUILT and KnitGraft, introduces an additional layer of design complexity, underscoring the need for debugging tools. For the third project, I will develop a comprehensive debugging tool that programmers can use to visualize and understand their program's structure and identify specific causes of undesirable behaviors. Improving the process of designing complex knit programs with these three tools can both expedite and facilitate more complex design work, such as embedding sensors.