Making the Internet of Towels (IoT) with Lenticular Images & QR codes

(Left image) Internet of Towels when viewed head-on/flat; (Right image) Internet of Towels when viewed at a 45-degree angle.

Technique#1: Lenticular Images

Lenticular images in postcards (Image source:
(Left) How autostereoscopic lenticular displays work (image source:; (middle) Lenticular barrier technique with paper folding (image source: (right) Shadow/illusion knitting (image source:

Technique#2: QR Codes

An example of contemporary uses of QR codes for COVID-19 vaccine passports (image source:
The screenshot is taken from the peer-reviewed article “Fast-Component Based QR-Code Detection in Arbitrarily Acquired Images” by Belussi & Hirata (2013) (

Combining the two techniques

Using crochet to computationally think with two different optical techniques adds layers of complexity to the project. Unlike knitting or weaving, crochet is a hand-crafting practice and it does not share computational history with weaving looms, knitting machines, and punch cards. But at the same time, similar to knitting, crochet incorporates patterned codes or syntaxes that resemble computer programming, except with a more-than-binary logic. The challenge was to transform the material (yarn) using only my handcrafting skills into machine-readable QR code patterns.

Lenticular crochet

In my first trials with shadow crochet, I tinkered with the height of the lifted blue stitches for each row.

Data Matrix

Once I had worked out the technique, I outlined a lenticular yarn pattern for a QR code. I started out with a smaller 10x10 data matrix (not a QR code — you can create one here) to see if it would work. This was a struggle, but I managed to learn a couple of dos and don’ts along the way. For example, I realised that having a border around the data matrix in a different coloured yarn than white or black is helpful for the camera to clearly ‘see’ the pattern. It was also necessary to scale up the pattern by doubling the number of crochet stitches for each pixel on the matrix. This is because hand-crocheted stitches do not vertically align well and this kind of precision is necessary for computers to detect machinic codes (non-human-readable). Doubling the stitches also makes the pattern horizontally larger and therefore any tiny misalignments are not as easily noticeable.

Experiments with a 10x10 data matrix — the stitches were misaligned, it did not work great!

QR code

With these learnings, I iterated on a 25x25 matrix QR code (you can generate one from here), whose destination I chose to link to this very article :) A recursive IoT towel that links to a tutorial of its own making! Going back to the drawing board, I manually created the lenticular yarn pattern in Microsoft Excel using empty and coloured cells (one cell is one stitch).

I used Microsoft Excel to make the lenticular yarn pattern for the 25x25 QR code. Two cells/stitches = one pixel of the QR code.

Make a lenticular towel pattern for your custom QR code using the Yarn Arts Software

It was through one of the Twitter responses that I came across the block-based programming software Snap! and the CSDT (Culturally Situated Design Tools) libraries for it. One of them is the Yarn Arts software which I decided to use for automating the manual process of creating a lenticular yarn pattern for a custom QR code. It was the first time I tried block-based programming and it was surprisingly manageable (I relied a lot on the documentation). Meanwhile, @arturo182 helped create a little script that translates any QR pattern into binary ones and zeros and outputs a simple text file (.txt). This file can be imported to the block-based program I created which then automatically makes the lenticular yarn pattern for that specific QR code ready for use.

Licensing information

Reference books and articles

Gaskins, Nettrice. R. (2021). Techno-Vernacular Creativity and Innovation: Culturally Relevant Making Inside and Outside of the Classroom. MIT Press.



Researcher, designer, crafter of things

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store