2023
Quay Code
Overview
A custom format 2D matrix code, with dynamic error correction and dual-bit encoding for double data handling.
The Project
This self guided project started simply with a fascination for data encoding. After learning how much QR codes can do, I wanted to develop a custom format that I could incorporate into varying niche use cases.
At the time, I was working with access and ID cards, so the initial idea was to create a custom matrix format so I can streamline the process of creating, renewing, and verifying IDs. Although this never came to fruition, I am immensely proud of the product I did develop.
Initially I wanted to pursue a triangular matrix code, but seeing as I wasn't as familiar with programming as I am now, it seemed a bit too ambitious. Instead, I started studying the structure of QR codes determined by ISO regulations, and modelled the Quay around that.
I wanted to treat it like a product as opposed to simply a project from the start, so I began working on selling points for the code, and produced some marketing materials to advertise the application that I made to generate and read the codes themselves.
The Code
I didn't quite anticipate the scale of the project when I first started. I was still very much an amateur programmer, so this really was a trial by fire. Though putting together the core features of the application itself was fairly simple (i.e. drawing the code, adding button and text input functionality) the maths required in the background was staggering.
I implemented dynamic Reed-Solomon error correction, so that depending on the size of the code you're making, any left over space will be taken up by specific characters that can serve to rebuild the final message if the physical code gets damaged. This is an improvement on the existing QR standard and seems to function as anticipated.
I also tried working in the Huffman compression algorithm, but the requirement for a relatively extensive header in order to decode the message meant it was not worth while for messages as small as those in this format.
On top of this, I also wrote my own binary decoder for binary pairings, designed a code header to efficiently transfer information about the message, worked with OpenCV libraries to write a custom script to read the codes from a camera, and gradually built up identical infrastructures across Windows, macOS, iOS, and Android.
User Research
Insight: Users generally preferred the CMYK QR code format over black and white, finding it more interesting and satisfying to create. However, they perceived it as an unnecessary distraction in certain contexts and found it difficult to implement into design.
Impact on Users' Lives: Users indicated that QR codes didn't usually have a significant impact on their daily lives. They expressed uncertainty about QR codes and felt inadequately informed on the matter.
Implications for Design: Designers should consider the balance between user preference for CMYK codes and the potential distraction they may pose in certain contexts.
Takeaways
The world is ever changing, and development of existing ideas is always a necessary consideration. Although QR codes already do much of what is required of them, and ultimately serve their purpose very well, the Quay code targets a different market and aims to satisfy the ever growing demand for attractive design and innovative repurposing.