Towards Computational Craft


This blog post is the first one in a series of posts, in which I will take a radical information processing perspective on the process of knitting. As it happens this post is also a Cybercraftivist Manifesto for open craft formats.

A Series for Knitters and Coders

This series is aimed both at computer-scientists who want to get a deeper understanding of the knitting process and at avid knitters, that would like to learn more about the kind of computation they are performing while they pursue their favorite pass-time. It is based on a computational model of hand-knitting that I developed for my diploma thesis in 2005.

Knitting as Programming

Recently several people have emphatically 1) and critically 2) discussed the idea of “Knitting as Programming”. In her excellent article Alex Bayley argued that it would be far more accurate to speak of “Knitting as Computation” but It seems like I am the only one who went as far as to identify the atomic actions of hand-knitting, pointing out the intimate relations between knitting and computation.

LiveCoding as Knitting

A few days ago I stumbled upon a workshop titled “Drawing, Weaving and Speaking Live Generative Music” 3) by Alex MacLean (alias Yaxu).

In the workshop announcement he promised to “explore the historical and metaphorical connections between knitting and computation, and between code and pattern”.

If this is music to your ears, check out Yaxu's Article on “The Textural X” 4) where he discusses the relations between knitting and livecoding featuring Tidal a Haskell-based programming language, where “Live coding music is very much like knitting with time”.

Yaxu considers the process of knitting from a functional programming perspective and the resemblance of knitting instructions and Tidal code is actually very striking.

Structure vs Instruction

In my computational model of knitting I took a more structural point of view. The idea is to identify the atomic units of knit-work as well as the operations used to manipulate them.

I believe that a big hurdle in trying to formalize knitting patterns, as in the case of KnitML was the pursuit to provide an XML format for instructions, rather than structures.

The Babel of Knitting Instructions

As every knitter knows, instructions differ radically between German knitting, English knitting, and even more for various types of knitting machines. Knitting instructions will always be inextricably linked to a specific knitting technique.

This inevitably results in a Tower-of-Babel-situation for knitting instructions.

Hand-Knitting Techniques

Not only are there different knitting techniques but as a matter of fact individual hand-knitters might prefer different styles of knitting, just as there are left-and right handed people in the world. The book Knitting for Anarchists by Anna Zilboorg 5) is about the struggles of getting away from a one-size-fits-all knitting technique, to alternative ways of producing the exact same structural knit-work. The main issue with Zilboorg's technique is the cognitive overhead for transcribing knitting instructions inside your head.

Massively Parallel Knitting

In the future there may be knitting machines we can't yet imagine. And there is huge potential for collaborative human knitting or crowd crafting. Shane Walter has explored massively parallel human knitting techniques in his Knitting Pieces. Each and every one of those alternative knitting techniques would require rewriting traditional knitting instructions from scratch.

Towards Structural Patterns

Cooking by Structure

Traditionally cooking receipes have been used as prime examples for sequential algorithms. But the sequential nature of receipes is an artifact of our linear writing system. No professional cook ever cooks sequentially. Cooks always have several pans on the stove.

“Carrot Soup” by Katie Shelly

In fact cookbooks might actually profit a lot if we represented recipes as structural diagrams that show how the meal is composed from individual ingredients and basic cooking operations, leaving the scheduling task to the cook.

Katie Shelly is working on a beautiful diagrammatic cooking book called Picture Cook 6) which will be available in October 2013.

You can look at some of her cooking diagrams on her website.

Crafting by Structure

What is true for for the craft of cooking is even more true for other crafts. Let's take a look at crochet patterns in Japanese craft culture:

Knitty Screenshot

Amigurumi patterns are traditionally conveyed as structure, rather than instructions. As a result the pattern is not restricted to any specific kind of crochet technique. It's the task of the human (or a little helpful program like Knitty) to turn structure into instructions.

The fact that patterns from Amigurumi or lace techniques such as tatting are represented in diagrammatic form might be the result of their inherent complexity, which may best be conveyed visually.

But as a side-effect those patterns can be processed in any order the craftswoman wants to. They can be worked inside-out, bottom-up, in groups and circles, using tools and machines that the creator of the pattern would not even imagine in her wildest dreams.

Towards Open Craft Formats

If we want freely exchangeable craft patterns, that defy the Tower-of-Babel effect, if we want to create a playing ground for the future of computational craft, we first and foremost need to specify structural craft-exchange-formats.

By analyzing the details of individual craft techniques, tools and machines, we can then specify how to turn generic structural representations of fabric into instructions for every single technique.

And this is exactly what I aimed at when I developed a computational model of hand-knitting, the model which we will dive right into, in the second part of this series.


Enter your comment:
What do you get if you type SPAM backwards?
blog/bit.craft/towards_computational_craft.txt · Last modified: 2013/07/22 21:46 by magisterludi
Creative Commons License Knitting Knerds Geek Girls Stitching Bitches Purling Pimps Driven by DokuWiki