Computational Knitting