InkStitch - QR code embroidery

The educational technology and digital learning wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
Machine embroidery
Module: InkStitch
draft intermediate
2018/06/26 ⚒⚒ 2018/06/05
  • Create QR codes in SVG format Adapt the SVG for stitching
See also


  • Create QR codes in SVG format Adapt the SVG for stitching


See also

  • Quality: draft
  • Difficulty: intermediate


Stitching low resolution QR codes (and similar) is fairly easy, i.e. feasible if you do not plan to pack too much information into a code.

Creating a simple InkStitch QR code


Create the QR code

There are many online and offline tools to create QR Codes

We will use the free qrcode-monkey service. I allows:

  • creating qr codes in various resolutions
  • addding a picture
  • exporting in SVG !

The following screenshot shows the four steps required to produce a QR code image using default styles.

  1. Enter the contents of tag, i.e. the URL in our case. It is very recommended to put the URL in upper case (not yet done below). This will create a much simpler QR tag, i.e. much easier to stitch !
  2. Set the resolution. You can make it low to have an approximately "good" size. E.g. 400px is about 8cm. Resolution quality (amount of information) will not be affected).
  3. Click "Create QR Code"
  4. Click SVG to export.

The following picture shows a lower case URL:

Create a default-styled low resolution QR code with lower case URL

The next one a UPPER case URL: HTTP://INKSTITCH.ORG. We also use circles instead of squares in the eyes

Create a low resolution QR code with UPPER case URL

Create SVG embroidery

Code produced by QR Code Monkey has the following structure

  • A single group on top
  • Nested groups with mostly SVG rectangles inside. Only the three big rectangles are path objects.

You now will have to make a few changes in the SVG file. We will describe the steps below.

Structure of a simple QRCode Monkey SVG file

(1) Optimize SVG

  • First, save the file as optimized SVG (Menu File -> Save as ; Select "Optimized SVG). I noticed some strange code in the SVG and when I tried to ungroup the first time, Inkscape hung.
  • Reopen the file (?)

(2) Ungroup all

  • Select all
  • Ungroup (CTRL-SHIFT-G) at least three times. If Inkscape hangs, try
  • Create a layer (Menu Layer -> Add Layer)
  • Move all the objects into this layer (Select All, Menu Layer->Move Selected to Layer)

(3) Transform all objects to SVG paths

  • Select all objects and transform to path (Menu Path -> Object to Path). This can take a while

(3) Fill the objects with a color

  • Select All
  • Remove stroke
  • Define a fill

(3) Remove three extra rectangles that are not needed

  • The three big rectangles are made of three rectangles, one of which defined the white space. Just kill it.
Kill three extra rectangles

For your information, below are snapshots of the SVG in various stages.

Initial SVG
Reorganized SVG
Reorganized SVG with fills


This QR tag is rather big (10.5cm). It is possible to reduce this by 50%. Below we created a 9cm version. Owners of multi-needle machines should consider using the TRIM version. If you want to stop to work on a multi-needle machine, you may have to export to DST. It is just needed after the first positioning circle so that you can place the patch into the hoop.

Ink/Stitch QR code, stitchable SVG
Ink/Stitch QR code, stitchable SVG with trims
Simulation with trims (DST File)

Creating patches with QR codes


Other examples

In the past, our students did stitch smaller QR tags without problems. But they did add some pull compensation. The Break the Ice With embroidery project (in french) produced the following.

Copyright modification

Contents of this page including pictures and SVG files are also available under the GNU Free Documentation License and the Attribution 4.0 International (CC BY 4.0) license.

The Inkstitch project can use any element (text fragments, SVG files, pictures) for the project's official docs without giving attribution (just copy and paste).