This is just a concept drawing for this halfbakery post.

The idea is to combine multiple QR code and blend it together to make a single QR (non-standard) code with 3x the data capacity.

In this CYMK QR code, I blended together the C, Y, and M coloured layers together (Which is subtractive blending, so much nicer for print shops). I tried doing additive blending of R,G,B layers, but I have no idea how to do that in SVG Inkscape thought.


After some discussion with other half bakers (BigSleep), I think you might want to also consider integrating the reference colour into the tracking pixels itself as well. This has the advantage of being able to keep to the same QR form factor. You do lose the (Key, CY, YM, CM) reference points, but that could possibly be inferred from the reference colour pixels in the tracking pixels.

Please let me know if you manage to decode this via a smartphone :p .


The first QR barcode example is confirmed to work when filtered correctly. This was verified by successive filtering of 2 colours to extract a QR layer.

E.g. To extract the Cyan layer, I used the Yellow and Magenta filters (via 'mixing' blend option in .net paint).

Download .net paint source example

You can give it a shot if you have .net paint with the above link, just open up a layer and keep one filter layer hidden, while 2 other filter layers are active (the .pdn has multiple layers).


Another addition to add, in terms of concept (As suggested by BigSleep from halfbakery), is a mono fallback mode. This is where the luminosity of each pixel is either whiten (say 40 percent) for a white pixel or blacked (say 80 percent) for a black pixel.

The benefit of this approach is that it can be read by a normal mono colour (or any standard QR reader), but has additional colour channels to store the 3 extra QRs. So all up, if this works, you get an increase of 4x the data storage.

The issue however is that by adjusting the luminosity to a degree acceptable for a QR reader in mono mode, the colour decoding is much more harder to perform.


Contact me for additional information about this.