Abstract
Abstract
Textiles offer many advantages as a fabrication material, particularly when viewed from the perspective of human use. Until recently most textile fabrication processes were limited to the creation of surface-based forms. Prior work on Solid Knitting demonstrated that it is possible to create some solid knitted forms. We present a different machine design using a 2D bed of knitting needles to fabricate additional solid knitted forms. This approach provides substantially more flexibility on how to structure stitches as yarn paths inside a volume. We describe a small prototype 6x6 needle machine, and demonstrate that it can create traditional knits, horizontal knits (knitted in the plane of the needles), and solid knits, including overhangs, and pyramidal forms. We conclude by considering future directions and the current limitation of this proof-of-concept design and how it holds the promise of creating knitted objects with engineered stiffness, elasticity, and density properties throughout their volume.
Summary
To view this AI-generated plain language summary, you must have Premium access.
1 Introduction
Figure 1:

TBD
Our prototype at the end of the fabrication of an inverted quarter pyramid. We use a bed of symmetrical needles (one is shown as an insert), to create horizontally knitted layers connected to each other. As the fabrication proceeds, the form is pushed downward. The removal of the form is shown in Figure 8 and the final form is shown in Figure 13.
Textiles are the only material that we have in contact with our bodies ~99% of the day, and there are good reasons for this. From a human perspective, textiles offer many advantages due to properties such as their inherent softness and flexibility, their durability and breathability, their light weight, etc. But like many soft materials, they can be complex to design and fabricate. Furthermore, although machines for fabrication of textiles are a very mature technology, most textile fabrication (with e.g., industrial knitting and weaving machines) is limited to surface forms, and generally has many constraints in construction. For example, conventional knitting involves construction of a fabric surface by a set of stitches created by pulling loops of yarn through other loops of yarn to create a stable structure (often from a single length of yarn). These stitches must be performed via a series of left-to-right then right-to-left passes of a feed of new yarn across a line of needles (or needle pairs) which hold previously created loops1.
However, this is rapidly changing with the recent description of Solid Knitting [6], a system which can create knitted solid prisms. In this paper, we consider a new approach to solid knitting, in which a two-dimensional array of needles (see Figure 1, 9) is used to create a 3D shape. Knitting is performed at the top of the array and the form is pushed downward as the knitting progresses. In addition to directly creating volumes of knitting, rather than sheets or surfaces, this also reduces constraints on stitch connection, since it can depart from the strict structure of alternating row passes.
In our approach, each needle can be actuated independently, and the machine can move to any needle at any time and either cast on a new loop on a empty needle; knit on an open loop held by a needle (by pulling new yarn through the loop, and retaining the new loop on the needle); or cast off a loop from a needle. This freedom of connection within the volume allows for a variety of new micro-structures arising from stitch-to-stitch connections to be fabricated.
This structure makes it possible to create knitting patterns in two orthogonal directions with respect to the needle bed: horizontally moving to different needles within the bed and vertically across layers knitted at different times on the same needle. Knitting vertically is closely related to the kind of work performed on a more traditional knitting machine. The ability to also create horizontal knitting patterns parallel to the needle bed, introduces substantially new capabilities. For example, this horizontal knitting is well suited to creating volumetric areas in which density (and stiffness) can be adjusted. In addition, our approach can create solid knitting using an approach similar to FDM 3D printing in which a shell made with vertical knitting is combined with an infill pattern made with horizontal knitting to create a solid object.
In this paper, we present a small and preliminary implementation of this concept as a demonstration of this potential. At this stage of development, we have concentrated on the mechanisms and operation of the machine because the basic ability to create solid knitted objects is a prerequisite for a range of additional topics such as exploring and understanding the design space opened by the new capabilities of this approach, and what design software for it might look like.
Our prototype includes a 6x6 array of a new type of machine knitting needle, each controlled individually. Our design focuses on modularity and low cost. With this in mind, we designed a modular PID motor control system based on the Raspberry Pi Pico [14]. This ensures that our design can be easily recreated using tools commonly found in a maker lab.
Although this prototype has not been fully perfected and requires assistance with dropped loops, it still demonstrates the feasibility of our solid knitting approach by creating solid knitted shapes such an open box, a solid ⊏ profile including an overhang and a quarter pyramid (shapes not achievable with the solid knitting machine described in [6]). As such, we intend it as a starting point for others to further explore this approach.
2 Background and Related Work
Textiles have recently emerged as an important topic in computational fabrication research. While we will not attempt to fully survey that work here, it can be seen as falling within at least four overlapping categories: application of new materials; support infrastructure, tools and algorithms; techniques and applications; and fabrication devices. In the areas of new materials, recent work has considered yarns or yarn like materials for knitted fabrics, which can change their length, either once (e.g., using heat shrinking yarns [18]) or even dynamically and reversibly (e.g., using liquid crystal elastomers [5] or very thin McKibben actuators [13]). These materials hold the promise of bringing new functionality to fabrics by supporting shape change behaviors. In the area of tools, recent work includes for example, basic infrastructure work creating tool chains to translate higher-level specifications into direct instructions to drive industrial knitting machines [11]; a compiler and algorithm for turning connected sets of sheets and tubes into an ordered plan for knitting stitches [17], and work on algorithms for generating knitting plans which produce a particular surface from a mesh [19] or other surface geometry [10, 23], as well as techniques for manipulating complex knit textures [7]. Systems for supporting multi-layer woven textiles sometimes called 3D Weaving such as [4, 26, 27] have been created. New developments in techniques and applications include work on knit spacer fabrics. They create a small compressible volume between two knit layers which can be patterned for a number of functional uses [3]. Other work considers applications such as knitted pressure and force sensors [1, 22], knitted-in tendon actuation [2], pneumatic actuation of knitting[16] and production of knitted formwork for cast materials[28].
Most directly related to the work presented here are prior efforts in the area of new fabrication machines. This has included several machines designed to create fully volumetric textile objects. Hudson [9] presented a 3D printer which worked similarly to an FDM 3D printer, but printing in needle felted yarn, creating solid volumes of felt. This device worked by repeatedly puncturing a yarn with a barbed felting needle to cause its fibers to entangle, creating a small spot of felt at one location. A series of these spots were created to make a line of felt, and like an FDM printer, lines of material were then used to first create the profile, then the interior fill of one slice of a target geometry. The felting print head was then moved up and the next layer was felted over and into the next layer, until a full volume was created. A different approach was taken in [21]. For this device, a laser cutter was used to cut the profile for a layer from fabric managed by the machine. This fabric was then bonded to previously deposited layers of fabric using a heat activated adhesive. This process was repeated to create a solid object from fabric layers. In addition, Rivera et al. [24] used electrospinning to create volumes of non-woven fiber. Electrospinning uses a high voltage electrostatic charge between a needle and a plate to draw micron sized fibers from a source of liquefied polymer — in this case PLA liquefied by heating. When these fibers strike the plate they entangle with previously spun fibers and over time build up a volume of fibrous material. This device included a motion platform to move the relative positions of the bed and needle allowing patterned deposition like a 3D printer. However, results were limited in the total depth of the objects that could be created.
Figure 2:

TBD
Steps for a simple stitch using our approach. From the initial state with the existing loop on the front hook (a), the back hook is raised to capture the yarn (b), then the transfer tool grabs the existing loop (c) and passes it over the newly created loop to form a stitch (d). The transfer tool then moves the newly created loop from the back hook, to the front hook (e). Finally the compactor tool is used to push the stitch downward (f).
The most closely related prior work is a solid knitting machine with some of the characteristics of the work presented here [6]. This device includes a pair of curved 2D needle beds which can hold yarn loops, but are otherwise passive. This is accompanied with an interleaved line of actuated needles which act in a fashion similar to a conventional knitting machine, but with loops pulled through stitches along a line at the top of a volume of knitting held between the curved holding beds. This machine was the first with the ability to knit true solid forms — most of which are not achievable with conventional knitting machines which fundamentally produce surface-oriented forms. However, it has some limitations on both the types of stitches it can perform, and the possible connections between those stitches. For example, it cannot perform decreases (which use adjacent needles to decrease the length of a row of stitches) in both rows and columns in one slice of the object. This substantially limits the geometric forms that can be created (e.g., solid prism forms can be created, but not solid pyramids).
3 Requirements for Solid Knitting
In conventional machine knitting, while a row of knitting is being formed, each loop is held stable using a hooked needle until another loop can be pulled through it, at which point the original loop is normally released into the resulting fabric and the (unstable) new loop that was pulled through it is placed on the needle to stabilize it. Specifically the stem of the needle (the shaft below the hook) passes through the held loop to stabilize it. Thus a row of needles which can stabilize a row of loops until new loops are pulled through them is central to the operation of a knitting machine. At a minimum, these needles must be able to perform three actions — they must be able to: hold an existing loop and keep it from collapsing, capture a short section of new yarn (typically passing by in a yarn feeder mechanism) to create a new loop, and pull that new loop through the held loop and release the held loop. Capturing a segment of yarn is normally done with a small open hook at the end of the needle. However, once the new loop is captured, this hook must be closed to allow the captured yarn to be pulled through the previously created loop being held on the stem. Historically, three different mechanisms have been developed to alternately open and close the needle hook. These include the early design of a single piece bearded needle closed by pressing against part of the machine when needed, and a latch needle with a hinged component which is automatically closed when passed through the held loop. In more complex machines, a third mechanism type, the compound needle is used. In this mechanism a small bar (the tongue of the needle) is actuated by a separate external mechanism whenever it is needed for hook closure.
Beyond basic stitches, additional stitch variations are typically supported by using pairs of needles instead of a single needle. These needles point towards each other, often at an angle, resulting in a v-bed configuration. An operation to transfer a loop between paired needles is also provided, as well as an ability to move needle beds left and right with respect to their paired needles. Spencer [25] provides a full discussion of these and other mechanisms in conventional knitting machines.
Figure 3:

TBD
Steps to perform a cast on using our approach. The machine creates an extra twist around the needle (d) by having one needle catch the yarn twice (a, b).
Figure 4:

TBD
Cast off uses the transfer tool to pull the loop being cast off onto its neighbor (c). In most cases we need to move the loop holding the cast off loop back to its needle (d,e) to prepare for the next stitch.
3.1 A New Needle Mechanism
A central difference between conventional approaches and our new approach to solid knitting is the use of a 2D array of needles (producing a solid volume through repeated use), rather than a 1D line of needles (producing a nominally planar 2D surface through repeated use). This creates several new opportunities, but with them several challenges. One major challenge is variations in directionality. Conventional knitting normally occurs as a series of alternating left-to-right and right-to-left passes across the linear needle bed — as knitting progresses, the previous and next stitches are generally to the left or right of the current one. However, one of the keys to the versatility of our solid knitting approach is relaxation of this ordering constraint — the previous and next stitches can be in any direction. This means that the direction of expected tensile forces on the yarn, as well as yarn feed direction, are much more varied and do not necessarily follow any regular pattern. This has necessitated a new needle mechanism design along with the introduction of a new component to temporarily hold and move loops (the loop transfer tool described in the next section). In addition to extending beyond the surface-based forms of conventional knitting, the freedom of movement between stitches in our design eliminates many of the geometric limitations found in the solid knitting machine described in [6], and opens up new opportunities for patterning of functional properties such as elasticity inside objects.
Our new needle (illustrated in Figure 1 and in Figure 2 a) is what we would call a symmetrical double hook design. It can be seen as a variation on a compound needle in that it has a separately actuated component which moves to close the hook. However, closure of a hook is performed not by a tongue bar, but by another mirrored hook. Specifically, the stem below one hook is used to close the other hook, by raising it relative to that hook. The introduction of two hooks allows one needle to perform some of the actions performed on a needle pair of a v-bed machine (e.g., knit vs. purl stitches) on a single needle (with some others done using adjacent needles).
Figure 5:

TBD
Steps to perform a horizontal knit in our approach. Horizontal knitting uses many of the same motions as a basic stitch but leaves the newly created loop held by a different needle than the original loop, which is not dropped. This makes it possible to create interconnected knitted sheets.
3.2 Making a Basic Stitch
As illustrated in Figure 2, performing a basic stitch proceeds as follows: we begin the stitch from a standard configuration with an existing loop held inside the closed front hook (Figure 2 a). As a first step, the back hook catches a new segment of yarn from the yarn feeder mechanism to form a new loop. This step is made more reliable by the use of a sweeping arm holding the yarn straight and tight during the capture (Figure 2 b). The stem of the front hook is raised to act as the closure. The front loop transfer tool clamps on the existing loop in the front hook (Figure 2 c) so that the new loop can be passed through it. (Figure 2 d). Next, to restore the standard configuration (Figure 2 a), the same loop transfer tool clamps on the newly formed loop in the back hook, and transfers it from the back hook to the front hook (Figure 2 f) where the loop is held until the next operation. Finally, the needle is moved below the feeding mechanism where we actuate the compactor mechanism to force the form below the plane of the needles. We note that there are four functionally identical loop transfer tools, two on each side of the yarn feed mechanism (Figure 1 and 9 c). This configuration facilitates dealing with stitches coming from different directions with respect to yarn feed, as use of the corresponding left or right tool eliminates the need to cross the yarn feed during a stitch. On each side, the front transfer tool is used for regular stitching whereas the back transfer tool is used for horizontal stitching (described in Section 3.4).
The procedure just described produces a purl stitch. To produce a knit stitch from the standard configuration, the held yarn is first transferred to the back hook, then the remaining steps are carried out with the hook roles reversed. Note that (future) path planning software might remember the state of each needle and skip starting and/or ending hook transfers when they are redundant.
We also note that while conventional knitting has two basic stitches: knits and purls, which are pulled from front and back respectively, our solid knitting has at least four — adding stitches pulled from the right or left (or other directions). Knit and purl stitches each place a specific micro-structure in the resulting knit which adds a small increment to the overall material properties of a knit region or overall fabric. Based on trial and error (over hundreds of years) standard patterns have been worked out which combine these stitches to achieve various functional effects — for example, ribbing to introduce elasticity in the row direction or garter patterns in the orthogonal direction, as well as a checkerboard seed stitch to reduce elasticity, etc. However, it is not yet clear how the micro-scale effects of the new stitch types afforded by our solid knitting technique might be combined for macro-scale functional effects within a solid. A central motivation for creating our proof of concept solid knitting machine is to be able to explore the potential of these possible new functional effects.
3.3 Cast-on and Cast-off
In conventional knitting, casting-on is the process of creating the first row, whereas casting-off (or binding-off) is the process of stabilizing the last row. Each of these makes use of a specialized pattern of stitches. For conventional cast-on, a looping pattern such as wrapping a loop fully around the needle (slightly more than one revolution) is generally used in order introduce substantially more friction, because without being enmeshed in any existing fabric, these first loops have a tendency to slide past their needles or otherwise unravel during initial knitting. Our approach creates a similar stitch in a different fashion — using both hooks to twist the yarn around a needle as shown in Figure 3. First, the front hook captures the yarn from one side of the feeder with the help of the sweeping arm as explained above (Figure 3 a), then the back hook captures the yarn again but from the other side (Figure 3 b). Then, the loop transfer tool clamps the yarn in the front hook (Figure 3 c) and moves it over the needle (Figure 3 d) to create a new loop. As in the case of a basic stitch, we proceed by transferring the loop in the back hook onto the front hook to leave the needle in standard form for the next stitch. and compacting the loops using the compacting tool on the yarn feeder.
For cast-off, we use the same stabilization pattern as in conventional knitting — that is we stabilize each stitch by pulling it through the stitch next to it, with the last stitch bound off with a knot. In v-bed knitting this procedure involves transferring each stitch to the needle on the opposite bed, shifting the beds relative to each other, bringing the stitch back to pull it through its neighbor, and returning the beds to their original alignment. For our solid knitting machine, we similarly pull through a neighboring stitch using the loop transfer tool (Figure 4 a,b,c), before bringing the loop back to its original needle (Figure 4 d,e,f). At the end of a row, we either tie off that row with its own knot Figure 4, or double back on the next (horizontally positioned) row in order to bind off all the stitches in the 2D needle bed.
3.4 Horizontal and Layered (Volume) Knitting
Conventional knitting using a linear row of needles forms a nominally flat fabric below the bed of needles, and in our context can be considered vertical knitting. In addition to this type of row over row knitting, in our solid knitting approach, we also have the capability to knit horizontally across the 2D bed of needles. This horizontal knitting forms a 2D layer, rather than a 1D row. It can create connections down to the previous layer, but also to other stitches on the bed in the same layer.
Figure 6:

TBD
The 3D knitting steps. In the initial setting the needles are holding loops from below (a); a new loop (green) is captured (b); the right loop (purple) is held in the transfer tool (not shown) while we extend the newly created loop to the left needle (c); the right loop (purple) is brought back to the right front hook (d); the left loop (yellow) is transferred above the newly formed loop (e); a normalization step leads to the final 3D stitch (f). Note that right loop (purple) is back in the original configuration.
Creating a horizontal stitch is similar to a basic stitch, with the addition of an extra transfer to a nearby destination needle (Figure 5). Specifically, for a purl stitch it starts from the standard needle configuration with an existing loop held within the closed front hook. As before, the back hook is used to catch a new segment of yarn (Figure 5 a), the held loop is lifted with the back transfer tool, and the new loop is passed through it (Figure 5 b) but deposited to the front transfer tool than released to the back hook (Figure 5 c). At this point, both loops are held by transfer tools (the existing loop being in the back tool). The destination needle captures the newly created loop (Figure 5 d), and the starting needle captures the original loop (Figure 5 e). Finally, we perform a normalization step (Figure 5 e). In cases where a loop is already present in the front latch of the destination needle, we will need to move the loop in the front latch over the newly created loop before the normalization step. This action is key to connect two successive layers. At this point, both the new loop and the originally held loop are held on needles – the new loop on the destination needle, and the previously held loop on the original needle (Figure 6). Note that this is analogous to a split stitch on a conventional v-bed machine in that it leaves two loops held on needles instead of the single held loop for a basic stitch. Leaving the loops on their respective needles makes loops available for additional connections. In particular, this enables connections to stitches in subsequent layers constructed above the current one. This is central to supporting full solid knitting which we present next.
For horizontal knitting, stitches can be connected to neighbors in a variety of directions, not just left or right along a row. We illustrate this capability in Figure 7 which shows a V shaped pattern including forward, backward and diagonal horizontal stitches. Note that this particular geometry cannot be knitted on the machine described in [6]. This new ability opens up new possibilities for creation of functional properties, such as anisotropic elasticity (e.g., by making connections front to back but not right to left, or vice versa), and engineered stiffness through selective over stitching and/or creation of patterned voids within a solid. We will discuss this further in the Discussion section.
Full solid knitting with our machine can be done by stacking layers of horizontal knits, connecting a current layer to layers below it via the "extra" held loops from the horizontal stitch operation described above (visible in Figure 8 a). More specifically, to create a volume, the machine first creates a flat, horizontally knit layer corresponding to its base. Then, a new layer can be attached to the first layer using stitches which pull through the "extra" loops from these horizontal stitches which remain held on their target needles. We note that, in general, we can freely mix vertical and horizontal knitting to create a wide array of structures. For example, a structure we expect to be common might act like an FDM 3D printer — creating a dense vertically knit perimeter to form a surface, with a less dense and/or functionally patterned horizontally knit interior. The possible space of functionally useful volumetric structures is large, and a primary motivation for creating our prototype machine has been to enable exploration of that space.
3.5 Removal Process
The process described above creates the shape, one layer at a time, pushing the form between the needles as the knitting moves along. We show the final stages of the form shown in Figure 1 in Figure 8. Figure 8 a shows the last layers at the end of the fabrication. The rightmost column of the form has been secured with a red yarn for reference. All the other needles are holding secured loops from the horizontal stitches. These stitches can be freed by the machine or by hand (Figure 8 b). At that stage the form is free and falls to the bottom of the bed (Figure 8 c). Note that all the stitches are between the needles. To remove the form, making sure that front and back hooks are facing each other, one can simply pull the form off the machine (Figure 8 d).
Figure 7:

TBD
Diagonal and backward horizontal knitting. This V shape was created using in sequence of horizontal stitches: two rows forward, two rows forward diagonal, two rows backward diagonal, and two rows backward (left), before doing the same in reverse. We show the final result on the right.
Figure 8:

TBD
We show the removal process of the Pyramid shown in Figure 1. At the end of the fabrication, the right column has been secured with one thread of yarn (a). Others loops are closed and can be dropped by hand or by the machine (b), setting the form free (c). One removes the form by pulling it up. Note that having front and back hook facing each other makes this process easier (d). The final geometry is shown in Figure 13
Figure 9:

TBD
Our proof of concept implementation. It includes a 6x6 bed of needles (a), two sweeping arms used to ease yarn capture (b), two sets of two transfer grippers (c), a compactor (d), a yarn feeder used to control yarn delivery and tension (e) and a set of blowers used to stabilize loop creation (f). Each needle includes two hooks, that are independently actuated using 3D printed lead screws (g), and controlled by geared motors (h). We used a custom designed board (i) to PID control a group of 8 motors each. Our configuration is using 72 motors in total. During printing, the needle assembly is moved whereas the yarn feeder and the transfer tools remain fixed.
4 Implementation Details
To test our new knitting concepts, and enable exploration of the space of new possibilities that it provides, we have constructed a small 6x6 proof-of-concept prototype machine. In this section, we consider the details of its implementation. Overall, the current design of the machine has been optimized to support modification of components, and experimentation, rather than factors such as speed or size of the machine. However, the current design is intended to be modular so that larger bed sizes can be easily accommodated.
The basic elements of the design are shown in Figure 9. These include a 6x6 bed of actuated needles (Figure 9 a) placed on an X-Y motion platform so that the needles can be moved with relation to a yarn feeder assembly (Figure 9 b,c,d,e). Needles in the current design are 20 mm apart in both X and Y in order to facilitate our early experimentation with stitch motions. The space between needles is 14.4mm making it possible to accommodate tube yarn. They provide a building volume about 100 mm tall.
The yarn feeder mechanism (Figure 9 e) grips the incoming yarn and releases it at a controlled rate, typically matching the movement of the bed. However, it can also retract the yarn or feed at a different rate for purposes such as introducing higher tension and/or tightening a stitch. On each side of the yarn feeder are two sweeping arms (Figure 9 b) used to hold the yarn in a well-defined position while capturing yarn to form a new loop. They are controlled with two micro servos. On each side of the yarn feeder are two transfer tools (Figure 9 c) aligned with each other. Each transfer tool is controlled by metal geared micro servos. While our initial design was using passive transfer tools, using active transfer tools increased the reliability of yarn manipulation. A compactor tool (Figure 9 d) can be pushed downward around a needle to help the form move downward as the knitting proceeds. It is also actuated by a micro servo. Finally we included a set of blowers (Figure 9 f) on the side of the transfer tool to make the formation of a new stitch more reliable.
Each needle in our current prototype is independently actuated with its own motors. This is done using a pair of custom linear actuators based on 3D printed lead screws (Figure 9 g). These are each driven by a 20:1 geared DC motor with a magnetic rotary encoder for closed loop control (Figure 9 h). Groups of eight of these motors are controlled using a custom PCB containing four TMC7300 motor controller chips (Figure 9 i) which in turn communicate serially to a Raspberry Pi Pico [14]. We selected the RP2040 [15] based Pico for its very low price and its ability to manage eight encoder inputs using the programmable IO system [12].
Figure 10:

TBD
This cup (a: side view, b: top view) was knitted on a 3x4 needle configuration using alternating colors for each layer. To highlight the knit structure, it is shown in a display frame of 40 mm(D) x 65 mm(W) x 65 mm(H). The initial base, shown in blue (c), was generated horizontally. Note that, when seen from the bottom, it appears as standard knit even though it was created flat on the bed of needles. For the sides (d,e) we used successive layers of vertical knitting that connected to the base.
Figure 11:

TBD
A simple wrist warmer built on a 2x3 configuration: the font (a) and back (b) use different stitch direction to create a uniform regular knit appearance (c);
We note that the decision to move the bed of needles, rather than the feeder assembly, may seem odd. However, it relates to a potential future optimization to reduce the number of motors needed for a large scale machine. As currently configured, the yarn feeder and transfer tool assembly stay at a fixed X-Y location at the center of the range of motion of the bed. To perform an operation at a particular needle, that needle is moved to this location. This means that in future version of the system, a needle actuation system could be placed in the area below the yarn feeder and transfer tool assembly. This needle actuation approach was eventually deemed too complex for use in our rapidly evolving first prototype. However, the overall motion platform design allows us to consider a future version which scales to much larger numbers of needles without a correspondingly large increase in total motors, hence cost.
4.1 Software
Each stich is implemented by a set of GCode instructions controlling the movement of the platform, the movement of each needle and the servos. To simplify the operation of the machine, we developed a Python library to automatically generate the GCode program for each of the stitches described in Section 3. The parameters include the target needle(s) as well as flags to achieve specific variants (such as backward stitches). To further simplify the creation of this library, we developed a set of functions implementing basic operations such as capturing yarn and transferring a loop between a hook and a transfer tool. This hierarchical approach was key to ensuring that each improvement was propagated through all stitch programs. Using this library, our system can automatically generate single-stitch GCode files for testing purposes or create a full program when given a sequence of stitches to perform. GCode files are sent to the machine using the Repetier Host program designed for control of 3D printers. This approach is most closely aligned with the level of support provided by the KnitOut tool [11] widely used for conventional knitting machines. We also believe it will be relatively simple to change the Pattern Design Tool presented in [6] to control our machine.
5 Sample Knit Structures
In this section, we present how the basic stitches introduced above can be combined to create knitted structures. It should be noted that the motions needed for the various stitches used in these constructions are complex. They need to be carefully coordinated in both time and space, and need to deal with variations in the soft material of our yarn. As a result, some of these motions have not quite been fully perfected, and it was necessary to perform corrections "by hand" (e.g., picking up missed loops). Further they were created on different versions of our prototype machine. Earlier versions of our machine could only accommodate soft flexible core yarn. Models produced that way require to be supported in a frame. The final version of our machine presented above can accommodate much stiffer tube yarn and the resulting froms are self holding. We believe that it is important to report our experience creating these forms with our proof-of-concept prototypes as a way to validate our conceptual model and highlight directions for future research to make solid knitting as easy to use as modern 3D printers.
5.1 Wrist Warmer
The first example we are presenting is a wrist warmer (Figure 11). It was created to test the first instance of the machine which included more than one row of needles (a 2x3 configuration). Like on a V-bed machine, to create a unified appearance, one side was knitted using regular stitch while the other was knitted using purl stitch.
Figure 12:

TBD
A ⊏ shape form (a: back view, b: side view, c: front view) was created on a 4x4 needle configuration, using alternating colors for each layer. It is displayed on a frame of 70 mm(D) x 120 mm(W) x 165 mm(H). Each segment was created by connecting horizontally knitted layers and adding vertical stitches on the back and front. After creating the blue 4x4 base in horizontal knit (e) and continuing with two additional 4x4 layers, we added two 4x2 layers, and finished with two 4x4 layers, casting off at the top (d). Note the evidence of diagonal yarn transfers during horizontal knitting seen in (e).
Figure 13:

TBD
A quarter inverted pyramid. The top is is 100 mm(W) x 90 mm(D) (a), The bottom of the pyramid is about 30 mm x 30 mm and is shown in the lower left corner (b). View from the left side of b) (c); View from the bottom side of b) (d). The height of the pyramid is about 55 mm. This form was created by stacking 4 layers (2x2, 3x3, 4x4 and 5x5) together each with one row of purl knit on the front and back of each layer to provide uniform thickness. Figure 1 and 8 show the form in the machine and being removed from the machine respectively.
5.2 Open Box
The open box example shown in Figure 10 was made by alternating color for each layer (by stopping the machine and inserting a new yarn) to better highlight the structure of the knit. This structure was built on a 3x4 bed configuration with passive loop transfer tools. It was used to validate the structure of the horizontal knit presented in Section 3.4. In particular, note that the two central stitches at the bottom of the box (first blue layer) are closed — purely horizontal knitting without connection to vertical knitting — and that the bottom structure is well connected to the the side walls — connecting horizontal knitting in the first layer to vertical knitting in the second layer.
5.3 C Shape
The example shown in Figure 12 demonstrates a fully volumetric knit with a ⊏ profile created on a 4x4 configuration with passive loop transfer tools. The base of the form was constructed using three horizontal knitted layers connected together, adding vertical knits on the back and front row to form a single volume. We then dropped the loop of the two back rows; then knitted the two 4x2 horizontal knitted layers connected together (and to the base), again adding vertical knits, on the back and front rows. Finally we capped the volume with two more full 4x4 layers before dropping the loops of the three back rows and casting off the loops in the front row. Note that this particular geometry cannot be knitted on the machine described in [6] (or a conventional v-bed machine).
5.4 Quarter Inverted Pyramid
The quarter inverted pyramid (Figure 13) was created on the latest version of the machine (Figure 1) with a 6x6 bed and active yarn control. We started by creating a 2x2 patch in the left of row 5 of the bed, and adding three more layers sized 3x3, 4x4, and 5x5, respectively, on top of it. We added a row of purl stitches to the front and back to ensure uniform thickness. The three top-most layers are connected to the layers directly below them. We show how this form is removed from the machine in Figure 8. Note that this particular geometry cannot be knitted on the machine described in [6] (or a conventional v-bed machine).
Figure 14:

TBD
We underestimated the forces created by the yarn tension on our system. The tension created elongated loops difficult to grab (a) and could impede movement of the needles (b). This caused loops to be poorly inserted in our grabber (c). We also observed that excess yarn could cause yarn to be caught in unwanted spaces (d).
6 Discussion, and Conclusion
Our proof-of-concept machine offers the opportunity to explore a range of interesting possibilities. However, it should be noted that the current prototype has many limitations. Creating the motions for basic stitches has required a painstaking process to determine exact motion paths that can reliably carry out operations such as capturing yarn for a new loop, etc. In fact, these motions are still not fully perfected as some of our exploratory examples still required manual interventions to be knitted successfully Perfecting a reusable set of sub-motions that can be recombined to create new stitch types is ongoing work. Not surprising, yarn tension has been an ongoing source of problems. The current version of the machine with stronger clamps and downward blowers has made the creation of test stitches very reliable, but tension can be very different while processing a form. We show some of the problems we encountered in Figure 14. In Figure 14 a we show how tension can deform a loop to the point that it cannot be reliably grabbed anymore. Tension can also cause needles to bend during transit, which in turn could cause the needle drivers to run into trouble (Figure 14 b). The end results are partially held loops, as shown in Figure 14 c. It is important to note that a lack of tension can also be a problem as it could cause the yarn to catch in unexpected places as shown in Figure 14 d. Even though our machine provides an appropriate mechanism for dynamically adjusting yarn tension (i.e., by retracting yarn from the yarn feeder), we are not yet making full use of this capability. From our experience building three different prototype so far, we can say that our current design is very promising and many of these problems could be addressed by building a sturdier framework and using more powerful actuators.
The new knitting concept presented in this paper offers a range of new possibilities not previously available with other knitting techniques. Its biggest differentiator is, of course, that it creates volumes rather than only planar or surface-based objects. This move to three dimensions, along with the relaxation of the ordering constraints found in conventional knitting, brings with it an ability to make a number of new kinds of connections between stitches. As a result, a substantial number of new micro-structures with different micro-level material properties can be created. These, in turn, should facilitate a range of new functional patterns that can be embedded in resulting solid, but soft, objects. By properly patterning stitch types, materials which are stretchy horizontally but not vertically in particular regions or vice versa (or neither) can be constructed; denser or less dense regions can be created; etc. This makes knitting particularly amenable to computational techniques. For example, [8] uses numerical optimization for generative design of knit textures with specified properties, and [20] describes a general purpose visual programming approach for automatic integration of complex surface finishes on knit objects. However, at this early stage, most of these new possibilities remain unexplored.
Although, in theory, horizontal stitches could use destination needles arbitrarily far from the origin needle, in practice, this distance will be limited. As for left-right transfers in conventional knitting, that limit will be determined by properties of the yarn in use, and the pitch of the needle bed (the distance between needles). Based on experiences with conventional machines, we expect this limit to be small. Determining practical limits for horizontal stitch distances will require future experimentation with a range of yarn types. At present, we have limited our examples to direct neighbors. Our work highlights that one of the main difficulties of solid knitting is that stitch parameters, such as yarn tension and feed, are dependent on the stitches surrounding it. In practice, this means that it is very difficult to develop a reliable machine without an advanced slicer optimizing the parameters of each stitch in context.
While the small 6x6 bed of the current prototype is clearly limiting, expansion is straightforward due to the modular design of our approach. Note that we have already incrementally increased the size of the bed as it was being developed. Further limitations include the current wide spacing of the needles, and the resulting large size of the stitches in the resulting knits. Similarly and related, our current explorations have only used very large diameter yarns. These are inherently more elastic than many smaller yarns which will need to be the eventual target of a more practical machine. Finally, there are many improvements and simplifications that can likely be made in the machine design to make it more reliable, faster, and less expensive.
Overall, however, we believe that the current prototype provides initial evidence for the feasibility of this new approach to solid knitting and provides a strong basis to explore a new space of applications for knitted objects that has been opened up with our approach.
Acknowledgments
The work in this paper was supported in part by the National Science Foundation under Awards No. 2420434 and IIS-1422106.
Footnote
1
In hand knitting, loops are held in order on a pair of long needles, and passed between the needles as loops are formed, with new yarn, at the point between the needles. Again, this results in a series of left-to-right and right-to-left passes.
References
[1]
Roland Aigner, Mira Alida Haberfellner, and Michael Haller. 2022. spaceR: Knitting Ready-Made, Tactile, and Highly Responsive Spacer-Fabric Force Sensors for Continuous Input. In Proceedings of the 35th Annual ACM Symposium on User Interface Software and Technology (Bend, OR, USA) (UIST ’22). Association for Computing Machinery, New York, NY, USA, Article 68, 15 pages.
[2]
Lea Albaugh, Scott Hudson, and Lining Yao. 2019. Digital Fabrication of Soft Actuated Objects by Machine Knitting. In Proceedings of the 2019 CHI Conference on Human Factors in Computing Systems (Glasgow, Scotland UK) (CHI ’19). Association for Computing Machinery, New York, NY, USA, 1–13.
[3]
Lea Albaugh, James McCann, Scott E. Hudson, and Lining Yao. 2021. Engineering Multifunctional Spacer Fabrics Through Machine Knitting. In Proceedings of the 2021 CHI Conference on Human Factors in Computing Systems (Yokohama, Japan) (CHI ’21). Association for Computing Machinery, New York, NY, USA, Article 498, 12 pages.
[4]
Xiaogang Chen. 2011. Mathematical modelling of 3D woven fabrics for CAD/CAM software. Textile Research Journal 81, 1 (2011), 42–50. arXiv:
[5]
Jack Forman, Ozgun Kilic Afsar, Sarah Nicita, Rosalie Hsin-Ju Lin, Liu Yang, Megan Hofmann, Akshay Kothakonda, Zachary Gordon, Cedric Honnet, Kristen Dorsey, Neil Gershenfeld, and Hiroshi Ishii. 2023. FibeRobo: Fabricating 4D Fiber Interfaces by Continuous Drawing of Temperature Tunable Liquid Crystal Elastomers. In Proceedings of the 36th Annual ACM Symposium on User Interface Software and Technology (, San Francisco, CA, USA,) (UIST ’23). Association for Computing Machinery, New York, NY, USA, Article 19, 17 pages.
[6]
Yuichi Hirose, Mark Gillespie, Angelica M. Bonilla Fominaya, and James McCann. 2024. Solid Knitting. ACM Trans. Graph. 43, 4, Article 88 (jul 2024), 15 pages.
[7]
Megan Hofmann, Lea Albaugh, Ticha Sethapakadi, Jessica Hodgins, Scott E. Hudson, James McCann, and Jennifer Mankoff. 2019. KnitPicking Textures: Programming and Modifying Complex Knitted Textures for Machine and Hand Knitting. In Proceedings of the 32nd Annual ACM Symposium on User Interface Software and Technology (New Orleans, LA, USA) (UIST ’19). Association for Computing Machinery, New York, NY, USA, 5–16.
[8]
Megan Hofmann, Jennifer Mankoff, and Scott E. Hudson. 2020. KnitGIST: A Programming Synthesis Toolkit for Generating Functional Machine-Knitting Textures. In Proceedings of the 33rd Annual ACM Symposium on User Interface Software and Technology (Virtual Event) (UIST ’20). Association for Computing Machinery, New York, NY, USA, 1234–1247.
[9]
Scott E. Hudson. 2014. Printing teddy bears: a technique for 3D printing of soft interactive objects. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (Toronto, Ontario, Canada) (CHI ’14). Association for Computing Machinery, New York, NY, USA, 459–468.
[10]
Yuki Igarashi, Takeo Igarashi, and Hiromasa Suzuki. 2008. Knitting a 3D model. In Computer Graphics Forum, Vol. 27. Wiley Online Library, 1737–1743.
[13]
Ozgun Kilic Afsar, Ali Shtarbanov, Hila Mor, Ken Nakagaki, Jack Forman, Karen Modrei, Seung Hee Jeong, Klas Hjort, Kristina Höök, and Hiroshi Ishii. 2021. OmniFiber: Integrated Fluidic Fiber Actuators for Weaving Movement based Interactions into the ‘Fabric of Everyday Life’. In The 34th Annual ACM Symposium on User Interface Software and Technology (Virtual Event) (UIST ’21). Association for Computing Machinery, New York, NY, USA, 1010–1026.
[16]
Yiyue Luo, Kui Wu, Andrew Spielberg, Michael Foshey, Daniela Rus, Tomás Palacios, and Wojciech Matusik. 2022. Digital Fabrication of Pneumatic Actuators with Integrated Sensing by Machine Knitting. In Proceedings of the 2022 CHI Conference on Human Factors in Computing Systems (New Orleans, LA, USA,) (CHI ’22). Association for Computing Machinery, New York, NY, USA, Article 175, 13 pages.
[17]
James McCann, Lea Albaugh, Vidya Narayanan, April Grow, Wojciech Matusik, Jennifer Mankoff, and Jessica Hodgins. 2016. A compiler for 3D machine knitting. ACM Trans. Graph. 35, 4, Article 49 (jul 2016), 11 pages.
[19]
Vidya Narayanan, Lea Albaugh, Jessica Hodgins, Stelian Coros, and James McCann. 2018. Automatic Machine Knitting of 3D Meshes. ACM Trans. Graph. 37, 3, Article 35 (aug 2018), 15 pages.
[20]
Vidya Narayanan, Kui Wu, Cem Yuksel, and James McCann. 2019. Visual knitting machine programming. ACM Trans. Graph. 38, 4, Article 63 (jul 2019), 13 pages.
[21]
Huaishu Peng, Jennifer Mankoff, Scott E. Hudson, and James McCann. 2015. A Layered Fabric 3D Printer for Soft Interactive Objects. In Proceedings of the 33rd Annual ACM Conference on Human Factors in Computing Systems (Seoul, Republic of Korea) (CHI ’15). Association for Computing Machinery, New York, NY, USA, 1789–1798.
[22]
Andreas Pointner, Thomas Preindl, Sara Mlakar, Roland Aigner, Mira Alida Haberfellner, and Michael Haller. 2022. Knitted Force Sensors. In Adjunct Proceedings of the 35th Annual ACM Symposium on User Interface Software and Technology (Bend, OR, USA) (UIST ’22 Adjunct). Association for Computing Machinery, New York, NY, USA, Article 77, 3 pages.
[23]
Mariana Popescu, Matthias Rippmann, Tom Van Mele, and Philippe Block. 2018. Automated generation of knit patterns for non-developable surfaces. In Humanizing Digital Reality: Design Modelling Symposium Paris 2017. Springer, 271–284.
[24]
Michael L. Rivera and Scott E. Hudson. 2019. Desktop Electrospinning: A Single Extruder 3D Printer for Producing Rigid Plastic and Electrospun Textiles. In Proceedings of the 2019 CHI Conference on Human Factors in Computing Systems (Glasgow, Scotland UK) (CHI ’19). Association for Computing Machinery, New York, NY, USA, 1–12.
[25]
David J Spencer. 2001. Knitting technology: a comprehensive handbook and practical guide. Vol. 16. CRC press.
[26]
Rundong Wu, Claire Harvey, Joy Xiaoji Zhang, Sean Kroszner, Brooks Hagan, and Steve Marschner. 2020. Automatic structure synthesis for 3D woven relief. ACM Trans. Graph. 39, 4, Article 102 (aug 2020), 10 pages.
[27]
Rundong Wu, Joy Xiaoji Zhang, Jonathan Leaf, Xinru Hua, Ante Qu, Claire Harvey, Emily Holtzman, Joy Ko, Brooks Hagan, Doug James, François Guimbretière, and Steve Marschner. 2020. Weavecraft: an interactive design and simulation tool for 3D weaving. ACM Trans. Graph. 39, 6, Article 210 (nov 2020), 16 pages.
[28]
Xiaoting Zhang, Guoxin Fang, Melina Skouras, Gwenda Gieseler, Charlie C. L. Wang, and Emily Whiting. 2019. Computational design of fabric formwork. ACM Trans. Graph. 38, 4, Article 109 (jul 2019), 13 pages.