[HN Gopher] Show HN: An interactive demo of QR codes' error corr...
___________________________________________________________________
Show HN: An interactive demo of QR codes' error correction
Hi HN! This is a hobby project of mine that recently landed me my
first interview and helped me get my first internship offers. Draw
on a QR code, and the health bars will accurately display how close
the QR code is to being unscannable. How few errors does it take to
break a QR code? How many errors can a QR code handle? Counters at
the bottom track your record minimum and maximum damage. (Can you
figure out how to break a QR code with 0.0% damage to the actual
data region?) Also, click on the magnifying glass button to toggle
between "draw mode" and "inspect mode". I encourage you to use your
phone's camera to scan the code as you draw and undo/redo to verify
that the code really does break when the app says it does. I wrote
the underlying decoder in C++, and it's compiled to WebAssembly for
the website. I hope you find it interesting.
Author : Xiione
Score : 42 points
Date : 2025-04-25 12:15 UTC (4 days ago)
(HTM) web link (qris.cool)
(TXT) w3m dump (qris.cool)
| flysand7 wrote:
| It's surprising how much data you need to corrupt while still
| being able to read the QR code, that's what I'd take out from
| this. The demo is interesting in that respect, but I do think
| it's somewhat incomplete.
|
| It seems to be missing some explanations regarding how the code
| is structured and how it performs error correction. I feel like
| there's little point in interacting with a system you don't
| understand or not trying to understand. And I also think there
| are cool ways to make those things interactive as well. Pick an
| image, then explain what the little squares in the corners are
| for and provide little interactivity to see how they affect the
| decoding. Then move on to the error correction. This step-by-step
| style of interactivity may be better, I'd think about that.
|
| As for what is there, the first thing I don't like here is icons.
| The four icons in the lower-right corner (result data, format
| info, ..) are hard to distinguish, and are hard to correlate with
| the "history" tab. I'd probably either make them slightly
| different color, or actually simplifying these icons further
| might be a better option, just because they're so small.
|
| But yeah it is pretty hard to tell what I'm interacting with,
| unfortunately. I don't know pretty much nothing about QR codes,
| and I don't know what the different kinds of errors are, what
| "EC" stands for etc.
|
| UI should probably be rethought as well, because before I was
| writing the comment I had no idea I could switch a brush. Hell, I
| had no idea I was changing colors (the cursor covered half the
| space of the pixels, so I couldn't tell)
|
| The idea's cool though, good work
| Xiione wrote:
| Thank you so much for the honest feedback. One of the reasons I
| tried to not get into the math details is because the
| preliminaries would be somewhat lengthy, some people would not
| be familiar with what a finite field is so explaining even that
| succinctly would be its own challenge for me. But for those
| that the concepts are within reach for (like the folks here on
| HN), you are right that I ought to make some effort to explain
| what is going on, at least intuitively. As for the UI
| considerations, great feedback, I'll definitely take it all
| into account when re-designing. I'm open to additional
| suggestions from everybody.
|
| Ultimately I'm glad that I was able to get the main point
| across. That is, that QR codes can take a lot more abuse than
| one might assume. Thanks for checking my work out!
| boomskats wrote:
| How can you say that you 'don't know pretty much nothing about
| QR codes' and that you 'feel like there's little point in
| interacting with a system you don't understand or not trying to
| understand', while feeling qualified enough to write a critique
| claiming a demo of said thing you know pretty much nothing
| about is incomplete?
|
| You don't know what EC stands for but you have an opinion on
| when the error correction should be demoed? And the first thing
| you don't like are the icons?
|
| OP, if I were you I would ignore this critique entirely. This
| is a fantastic demo. The usability was spot on (I learned a lot
| in a very short amount of time) and your /repos readme is
| _exactly_ what I wanted to read. It is perfectly executed.
|
| I'm gonna dig into your code a bit more tomorrow, but you
| should be very proud of this. You have a bright future ahead of
| you.
| gen3 wrote:
| Very cool work! I really like being able to see the blocks and
| directly interact with them. It's nice to feel out how the ECC
| works. I can see myself using this to draw custom QR codes in the
| future!
___________________________________________________________________
(page generated 2025-04-29 23:00 UTC)