[HN Gopher] Reading QR codes without a computer (2023)
       ___________________________________________________________________
        
       Reading QR codes without a computer (2023)
        
       Author : taubek
       Score  : 67 points
       Date   : 2025-07-23 15:57 UTC (4 days ago)
        
 (HTM) web link (qr.blinry.org)
 (TXT) w3m dump (qr.blinry.org)
        
       | gnabgib wrote:
       | Discussion (655 points, 2024, 87 comments)
       | https://news.ycombinator.com/item?id=39087752
        
       | Theodores wrote:
       | Very good. However, I wanted to know the rules regarding how big
       | that border has to be and how some QR codes have a logo in the
       | middle. We all want pretty QR codes!
       | 
       | Also, given the choice between optimising for 21 x 21 modules or
       | something a lot larger, what is recommended in this day and age?
       | Is blocky best?
        
         | wingspar wrote:
         | The logo corrupts the QR code. But QR codes can be generated
         | with different levels of error correction.
         | 
         | So a code with a high error correction factor can repair a QR
         | code with a logo obliterating the middle of the code.
        
           | bilgi42 wrote:
           | til. i made a little qr code creator thingy that i personally
           | used and I didn't know it didn't work with low error
           | correction with middle logos.
        
         | thenthenthen wrote:
         | In 2020 I ran into problems with borderless qr codes. Today it
         | seems it is not an issue anymore.
        
         | lock1 wrote:
         | "... pretty QR codes", reminds me of a paper from SIGGRAPH 2025
         | I saw a few weeks ago.
         | 
         | "Claycode: Stylable and Deformable 2D Scannable Codes"
         | 
         | https://arxiv.org/abs/2505.08666
         | 
         | https://claycode.io/pages/scene_claycode.html
         | 
         | https://www.youtube.com/watch?v=Sx9k2iyXQhY
        
         | edent wrote:
         | I've written a bit about logos at
         | https://shkspr.mobi/blog/2010/11/hiding-space-invaders-in-qr...
         | 
         | Basically, at the maximum level of error correction, you can
         | obscure up to 30% of the code (excluding the corner target) and
         | the data is still readable.
         | 
         | However, most QR readers will adjust the colours they see to
         | pure black and white - so light colours will be squashed down
         | to white. That means you can have some pretty colourful designs
         | and still keep the codes readable.
         | 
         | Ideally, the border should be at least 2 blocks wide - but
         | modern scanners are pretty good at picking out the targets.
         | 
         | As for size - that depends on your target audience. If your
         | users are sat down and have the QR in front of them, you can
         | cram in as much data as you like. If the code is on a billboard
         | people are far away from, use as little data as you can and
         | make the code as physically large as possible.
        
       | eknkc wrote:
       | I remember downloading stuff from usenet 20 years ago and the par
       | files going with them. Basically, files were split into chunks
       | and you'd merge the chunks. In case there was a missing or
       | corrupt chunk, the par files would allow recovering the missing
       | part. You did not need to download entire par chunks either. You
       | lost 1mb? Download 1mb of par and recover it (or something like
       | that, cant remember now).
       | 
       | That blew my mind and I went into a rabbit hole of error
       | correction. I did not know about the reed-solomon or any other
       | methods. Just took days to understand it. Implementing my own par
       | like shitty thing in the process.
       | 
       | This brings that back as I'm more curious about the error
       | correction than the actual bit encoding.
        
         | shinycode wrote:
         | I remember doing this for years as well and it seemed like
         | magic and this algorithm blew my mind that any piece of a movie
         | could be rebuild from a small part of par files. ChatGPT is
         | quite good at explaining it
        
       | cinntaile wrote:
       | You same day resubmitted this 3 days ago already.
        
         | ljf wrote:
         | Check out their submission history, I think dang or a mod
         | reupped it - this is actually the submission from 3 days ago,
         | sometimes the mods give posts a 2nd chance if they think they
         | are or interest.
         | 
         | I've had it happen to my submissions in the past.
        
       | dunconian wrote:
       | I also learnt the dubious skill of reading QR codes by hand. At
       | work 1% of the QR codes that we received were not scannable.
       | However when decoded by hand (thanks you this guide and others)
       | they all contained the string we expected.
       | 
       | But there was an error in the error correction pattern. It would
       | flip a bit on the message length. The QR data changed from a
       | string of 4 characters to a string of 933+ characters, and either
       | 
       | - Be unreadable (xzing)
       | 
       | - Return 933+ characters of garbage (cognex)
       | 
       | - crash
       | 
       | - return the previous barcode scanned (iOS)
       | 
       | I really learnt something about Reed Solomon error correction
       | that day. I have the QR code framed somewhere. Sometimes when
       | bored I'll scan it and confirm that it still brings up whatever I
       | scanned last.
        
       ___________________________________________________________________
       (page generated 2025-07-27 23:01 UTC)