03
Complex Knit Structures
Elevating KnitPaint with custom scripts, enabling complex knit design and rapid creation of intricate textiles.

The project focuses on enhancing SHIMA SEIKI's KnitPaint software, which is used for designing and fabricating machine-knit textiles and garments. The main objective is to overcome the limitations of KnitPaint's color swatch language when it comes to designing complex knit structures. To achieve this, a pipeline of custom and sourced tools is employed to create designs and convert them into KnitPaint instructions.

The pipeline begins with Knitout, a text-based programming solution developed at Carnegie Mellon Textiles Lab. Knitout converts written knitting instructions into a format compatible with KnitPaint. Additionally, the project introduces two custom Python scripts: "encodedToKnitout.py" and "typeFilledToEncoded.py," along with a Grasshopper script. These custom tools automate the process of translating stitch patterns into machine instructions that can be understood by KnitPaint.

Python Intervention

"encodedToKnitout.py" acts as an interpreter, converting character strings and integers into Knitout machine instructions. A cipher is used to represent knitting operations, such as 'k' for knit and 'p' for purl. By encoding operations in this manner, the project establishes a standard and general representation of knit instructions that can be easily stored and processed. The script generates Knitout files by producing the necessary header code, stitch pattern instructions, and cast-on procedures.

"typeFilledToEncoded.py" introduces a higher level of abstraction for encoding stitches. It integrates various stitch types into a textile plan by assigning each stitch type a character and a grid. The script utilizes a flood fill algorithm to identify and group islands of stitch patterns based on their similarity. Each island is then populated with the machine instructions corresponding to its assigned stitch pattern.

Grasshopper Intervention

The Grasshopper script takes a curve as input and uses it to influence the organization of the stitch network that forms the textile. A grid is generated based on the desired dimensions of the textile, and circles are placed on the grid. The curve influences the size of each circle, and a stitch type is assigned to each circle's radius. The visual representation of stitch types through circle radii allows for easy differentiation. The curve attractor modifies the stitch type of surrounding stitches based on their distance from the curve, allowing for design constraints or desired effects.

Grasshopper Definition That Parameterizes Stitch Type Placement

The pipeline offers flexibility in adjusting the range of distances that determine the radii of the circles. By introducing graphs to remap these values, emergent behaviors can be achieved, resulting in intricate and visually complex stitch variations. The fabrication time for the small samples is approximately five minutes. Each sample is knitted with jersey and garter, seed, and 2x2 rib stitch.

Close Up Of Computationally Produced Knitted Textile
Globally This Textile Has Some Complex Emergent Qualities

To explore higher resolution versions, I scaled Grid3 by a factor of 4, resulting in scaledGrid3. The fabrication process for both scaledGrid3 and a scaled version of Grid1 takes around 45 minutes. scaledSample3 showcases an immensely complex textile that would be difficult to conceive using traditional design methods.

This pipeline empowers designers to rapidly create complex and intricate textiles. Its flexibility and adjustability allow for exploration of various stitch types, arrangements, and resolutions that would be time-consuming or costly to achieve manually. The tool accelerates the iteration process and enables designers to explore a wide range of creative avenues.