1076272960-MIT.pdf - Knitting with Directed Graphs by Jared B Counts B.S Massachusetts Institute of Technology(2017 Submitted to the Department of

1076272960-MIT.pdf - Knitting with Directed Graphs by Jared...

This preview shows page 1 out of 68 pages.

Unformatted text preview: Knitting with Directed Graphs by Jared B. Counts B.S., Massachusetts Institute of Technology (2017) Submitted to the Department of Electrical Engineering and Computer Science in partial fulfillment of the requirements for the degree of Master of Engineering in Electrical Engineering and Computer Science at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY June 2018 c Jared B. Counts, MMXVIII. All rights reserved. ○ The author hereby grants to MIT permission to reproduce and to distribute publicly paper and electronic copies of this thesis document in whole or in part in any medium now known or hereafter created. Author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Department of Electrical Engineering and Computer Science May 25, 2018 Certified by . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hiroshi Ishii Jerome B. Wiesner Professor of Media Arts and Sciences Thesis Supervisor Accepted by . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Katrina LaCurts Chair, Master of Engineering Thesis Committee 2 Knitting with Directed Graphs by Jared B. Counts Submitted to the Department of Electrical Engineering and Computer Science on May 25, 2018, in partial fulfillment of the requirements for the degree of Master of Engineering in Electrical Engineering and Computer Science Abstract Knitting has historically been communicated by its means of construction. For hand knitting, this is typically a list of instructions or a pictorial grid with knitting symbols. For machine knitting, a similar pictorial grid is used to express needle-level instructions. However, these formats suffer by the nature of their tight coupling with the method used to construct the garments they represent. Alternatively, we use Knit Meshes, which represent knitting structures by their geometry separate from a directed graph description of their topology. This thesis presents an algorithm that can generate a natural, deformed two-dimensional layout of Knit Meshes as well as a conversion pipeline that converts written hand knitting instructions to and from Knit Meshes and an algorithm that converts certain Knit Meshes into knitting machine code. Thesis Supervisor: Hiroshi Ishii Title: Jerome B. Wiesner Professor of Media Arts and Sciences 3 4 Acknowledgments I would like to show gratitude to girlfriend Catalina Nguyen for all of her love and support over these last 3 years. Her positivity and affection has kept me sane through difficult times. Thanks to Professor Hiroshi Ishii for his countless opportunities given to me during my time here at MIT. It has been an amazing privilege to work with someone with his energy and insight. I had a tremendous time working with my colleagues in Tangible Media Group. The group administrator Deema Qashat has been a crucial part in the success of my thesis. My mentor Jifei Ou has been incredibly helpful in his counsel and creative ideas, and without his help I would have had little direction. This research was made possible thanks to Shima Seiki and Matsuya for providing access to their knitting machines. 5 6 Contents 1 Introduction 13 2 Background 15 2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Knit Mesh 3.1 15 17 Topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.1.1 Related . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2 Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.3 Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4 Shape Prediction 23 4.1 Related . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.2 Distance Metric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.3 Embedding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.4 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.5 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Algorithms 5 Hand Knitting 31 5.1 Virtual Hand Knitter . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.2 Instructions to Knit Mesh . . . . . . . . . . . . . . . . . . . . . . . . 34 5.2.1 Hand knitting procedures . . . . . . . . . . . . . . . . . . . . 34 5.2.2 Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 7 5.2.3 5.3 5.4 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Knit Mesh to Instructions . . . . . . . . . . . . . . . . . . . . . . . . 39 5.3.1 Node Processing . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.3.2 Pin to stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.3.3 Node dropping . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.3.4 Decreases and PSSOs . . . . . . . . . . . . . . . . . . . . . . . 44 5.3.5 Other additions . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.3.6 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 6 Machine Knitting 6.1 6.2 51 Generating Knitting Machine Code . . . . . . . . . . . . . . . . . . . 53 6.1.1 Related . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 6.1.2 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 6.1.3 Virtual Knitting Machine . . . . . . . . . . . . . . . . . . . . 55 6.1.4 Machine Knitting Graph . . . . . . . . . . . . . . . . . . . . . 56 6.1.5 Knitting Code . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6.1.6 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 7 Conclusion 65 8 List of Figures 2-1 On the left, a knitted structure with a single stitch shaded. On the right, a woven structure, not to be confused with knitting. . . . . . . 15 3-1 An example of a knit graph overlaying a stockinette pattern. The black circles are nodes, the horizontal orange arrows are yarn edges, and the vertical blue arrows are loop edges. . . . . . . . . . . . . . . . . . . . 19 4-1 Hand knitted 2x2 Waves Edging pattern from "Up, Down, All-Around Stitch Dictionary" [4]. . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4-2 Embeddings of different knitted patterns. From top to bottom: stockinette, Tilted Blocks, Waves Edging, and Horseshoe Lace. Each of these patterns were taken from the book, "Up, down, all-around stitch dictionary" [4]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5-1 Illustration of stitch creation in hand knitting. On the left, a knitting pin is inserted through a loop, after which another loop is formed around the end of this knitting pin. On the right, the loop formed on the knitting pin is pulled through the other loop, forming a complete stitch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-1 Screenshot of machine knitting code from Matsuya’s SPJWin [2]. 9 . . 31 54 10 List of Tables 5.1 Mapping of common abbreviations to procedures. . . . . . . . . . . . 5.2 Interpreter results showing the Python [24] generated hand knitting 36 instructions compared with the automatically generated knit graphs, embedded. Knitting patterns are from "Up, down, all-around stitch dictionary" [4]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 40 Handling incoming loops to a given node that is being processed (circled in green). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.4 Generated instructions for various knit graphs. . . . . . . . . . . . . . 47 5.5 Instructions were automatically generated from each of these knit meshes, which were then followed to hand knit these samples. . . . . 6.1 Terms used to describe hand knitting and their analogous counterparts for machine knitting. . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 49 52 Examples of machine knitting graphs. Note that, although transfers happen on two separate beds, the displayed graphs doesn’t make a differentiation between which bed each node is transferring to or from. It may be assumed that every transfer alternates the beds that the node is occupying. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 59 6.3 Knitting machine graphs and their corresponding knitting machine pseudocode. Cells indicating SWAP correspond to a transfer from one bed to the opposite at the same wale position. Cells indicating XFER refer to a transfer operation to the opposite bed with some offset. Each grid cell is labeled with the operation name and a number to indicate their ordering. 6.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Results from computer generating machine code from a given knit graph. The machine knitted samples were knitted on the Matsuya M-100 knitting machine. The patterns for the sample were borrowed from the book, "Up, down, all-around stitch dictionary" [4]. . . . . . 12 63 Chapter 1 Introduction The concept of knitting has been around for a millenium. Despite the long existence of knitting, computational tools have been underutilized within the textile industry. Aside from computation, the way we describe knitting structures has greatly limited the kinds of structures we knit. Current computational tools are designed for the purpose of programming knitting machines, where the very structure of knitting is treated as an afterthought. Consequently, the design of garments is tightly coupled with various knitting machine procedures, making the process of designing knitted structures cumbersome and awkward. Furthermore, the tools used for knitting machines tend to be proprietary, where each knitting machine company uses their own formats and computational tools. More broadly, knitting has always been viewed through the lens of a two-dimensional grid. Yet, when we look at knitting structures topologically, there doesn’t seem to be anything necessarily two-dimensional about it. My thesis explores a description of knitted structures that separates topology from geometry, called Knit Meshes. Topologically, I describe knitted structures using directed graphs. Through topology, the knitted structures we describe no longer have to be 2D grid embeddable, nor do we need to concern ourselves with how it is physically knitted in practice. The geometric part further describes components of knitted patterns such as loop orientation and position. I examine two groups of algorithms for Knit Meshes. First, it is shown that the 13 Knit Mesh topology is the only thing necessary to produce a 2D embedding that can predict the shape of its physically knitted product. Second, two conversion pipelines: one for converting Knit Meshes back and forth from hand knitting instructions and another for converting Knit Meshes into machine knitting instructions. This allows us to manufacture arbitrary Knit Meshes as well as translate hand knitting instructions into machine knitting code. 14 Chapter 2 Background 2.1 Overview Knitting broadly refers to the construction of soft structures by intermeshing loops formed from one or more yarns. This is not to be confused with weaving, which refers to a lattice of overlapping, mostly straight pieces of yarn. Figure 2-1 illustrates the differences between knitting and weaving. Figure 2-1: On the left, a knitted structure with a single stitch shaded. On the right, a woven structure, not to be confused with knitting. A stitch is a basic unit of knitting. Each stitch is a loop that is intermeshed with one or more other loops. Stitches in knitted structures are typically arranged along courses and wales. Each course corresponds to a row of stitches, and each wale corresponds to a column of 15 intermeshed loops. Knitted structures may be constructed in the warp or weft direction. The warp runs parallel to each wale, where-as the weft direction is parallel to each course. The methods that I will discuss in this thesis, both hand knitting and machine knitting, primarily relate to knitting in the weft direction. There are many different ways to produce knitted garments. Two of the ways that I discuss include hand knitting and flat bed weft machine knitting. These will be explored in more depth in Chapters 5 and 6. Furthermore, related work will be further discussed in each chapter as they become relevant. 16 Chapter 3 Knit Mesh Hand knitters typically communicate knitting in one of two ways. The first is as a list of abbreviated instructions, organized by row. The second is pictorially in a grid, where each cell contains some symbol corresponding to a certain knitting instruction, known as a stitch chart. Programmers for industrial knitting machines usually work with a pictorial programming language similar to the stitch charts that hand knitters use, such as Shima Seiki’s KnitPaint [13]. They’re a good way for programming a knitting machine, but it takes experts to design new structures or shapes with these languages. Machine knitting will be explored in more depth in Chapter 6. Consider, by analogy, 3D printers. A native format for 3D printers might be some numerical control programming language, dictating the paths that the extruder or laser needs to follow in order to manufacture the 3D object one layer at a time. However, when a designer wants to create or modify a virtual object to be 3D printed, they don’t typically work with this path-based representation. One usually designs the 3D object using an intermediate format, which represents the shape of the virtual object in a way that makes it easier to computationally deal with. Only after the design is finished, the user run slicing and path-planning algorithms to generate the necessary format for 3D printing. In theory, one can virtually represent 3D objects by these paths, but making changes, running algorithms, or converting to other formats is less than trivial when 17 dealing with paths. The path information is a convoluted way of representing 3D objects for most purposes, so a more generalized form is used instead, i.e. 3D polygonal meshes. 3D polygonal meshes are separated into two parts. First is the mesh geometry, usually stored as a list of points in space. The second part is the mesh topology, whichs gives the connectedness of these points. The topology is given by some set of point index pairs or tuples, indicating edges and triangles respectively. There are many benefits to keeping geometry and topology separate. One may perform transformations on the mesh simply by applying functions to the geometry, without worrying about the topology. Likewise for topology, one can analyze or make changes to certain properties of the mesh’s connectedness without affecting geometry. Knitting machine code is analogous to the path-planning code used to 3D print. Unlike in 3D printing, however, there doesn’t seem to be a well understood format for representing knitting structures in the same way that 3D polygonal meshes directly represent 3D objects. Consider a long strand of yarn. To knit, one forms two loops in the yarn, and then pulls one through the other. The process of forming and intermeshing loops is repeated until some desired shape or structure is reached. From this, we can think of two ways of describing this structure. First, in what order along the yarn do we form loops? Second, what loops intermesh with what other loops? Central to my thesis is the concept of knit graphs, which provide a topological description of knitting based on the relationship between loops and the yarn they lie on. We will also briefly explore what makes up the geometry of knitted structures. The topology of a knitted structure combined with its geometry constitutes what may be known as a 3.1 Knit Mesh. Topology Let = {, , } be a knit graph, which topologically describes some knitted struc- ture. = {} is a set of nodes, each representing some point along a yarn. The yarn 18 edges, = {(, ) | , ∈ }, is a set of directed edges between pairs of nodes. Yarn edge ∈ describes the adjacency and ordering of two nodes along a yarn. The loop edges, = {(, ) | , ∈ }, is another set of directed edges. Loop edge ∈ describes a loop of yarn by the point along the yarn it is formed, i.e., ’s starting point , and another point along the yarn from which this loop is intermeshed around, i.e., ’s ending point . A diagram of a knit graph overlaying a stockinette pattern can be seen in Figure 3-1. Figure 3-1: An example of a knit graph overlaying a stockinette pattern. The black circles are nodes, the horizontal orange arrows are yarn edges, and the vertical blue arrows are loop edges. One can immediately consider 3 rules for what can be considered a valid knit graph. 1. No cycles may be formed in , as the yarn is assumed to be cut at some point. 2. Every connected set of edges in must form a directed path. While there may be multiple, separate yarn, none of them may branch and form tree structures. And, since determines an ordering of nodes, all edges must be oriented in one direction. 3. No self edges in or . A loop formed around itself would either be two loops, or would simply unravel. In yarn, we expect nodes to be ordered relative to each other, not to themselves. 19 It’s also worth noting a certain limitation of knit graphs. In knit graphs, a loop may overlap multiple loops only if those loops start from the same node. Certain knitting patterns contain stitches that involving looping yarn around multiple groups of loops. For example, the Pelerine eyelet [23]. 3.1.1 Related Stitch Meshes by Cem Yuksel et al. [26] is one interesting topological interpretation of knitting structures. Their idea is to use a 3D polygonal mesh, where the edge adjacency of polygons indicate how stitches are connected. This is an excellent way of generating knitting patterns for Kaldor et al.’s yarn level simulator [11], however it is restrictive as a knitting structure are not necessarily 3D surface embeddable. Knit graphs are not novel. In 2011, Jonathan Kaldor [10] describes knit geometry as a set of loops that are related to each other by predecessor and successor. In 2017, the papers by Jiang et al. [8] and Popescu et al. [19] describe network-like ways of representing knit structure. The paper by Narayanan et al. [18] describes a directed graph construction very similar to the one used in this thesis. 3.2 Geometry So far, with knit graphs, we’ve only described the topology of knitting structures. Earlier we drew an analogy with 3D polygonal meshes, which separates topology from geometry. Certain geometric aspects of knitting structures are left undescribed by knit graphs alone. Geometric properties may include 1. Node positions describing the 2 or 3 dimensional layout of nodes in a knitted structure. This is ambiguous, as knitted structures are pliable and may take many different relaxed forms. For example, one may describe node positions along a grid using their course and wale numbers, or by some 2 or 3D spatial position determined by some physically based relaxation. 20 2. Loop face describing whether a stitch loop is technical front or technical back. Technical front means that the loop is inserted behind some other loop, whereas technical back means the loop is inserted in front of another loop. Each of these creates a different appearance in knitting. 3. Loop plane determining how loops stack when they overlap. This would be especially useful in cable patterns, where some number of vertical loops overlap another group of vertical loops to create a twisting cable appearance. 4. Loop twistedness, the number of times a loop is twisted left or right. The geometric properties here are somewhat ambiguously defined. For instance, the loop face, plane, and twistedness are dep...
View Full Document

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture

  • Left Quote Icon

    Student Picture