17 comments

  • bscphil 12 days ago
    This looks super cool but I could only get 10/21 to scan with the classic zxing scanner (>100M downloads), and 3 of those took a bunch of playing with camera angles and distance, so I'd recommend against using anything too fancy for real world barcodes.
    • zhengkyl 11 days ago
      Thanks for trying it out! I definitely agree, the fancier it gets the harder it is to scan so these should not be used for real world stuff where reliability is important.

      I basically only tested these on my own phone, a pixel 7 with default camera app, so I'm not surprised people with different hardware/software are getting varied results. I think I might try to automate testing using different scanners if I can figure that out.

      • jerjerjer 11 days ago
        Pixel 8, about half of the codes work.
    • sandos 11 days ago
      Hmm, yes, I did not try these but I have noticed that my default phone app in my S22 is freakishly fast at detecting QR codes, something I never remember that zxing was.

      Does anyone know if these are today implemented in neural networks or something? Specialized hardware? Or just very well optimized. Sometimes it feels like only 1 frame in the camera is enough, and distance, angle, lighting and focus is not important.

      • yonatan8070 11 days ago
        I'm pretty sure the decoding is done on each frame individually, so as long as you get a single good frame, you scan it
    • keepamovin 11 days ago
      [flagged]
      • notpushkin 11 days ago
        Ah, yes. The classic “works on my device” argument.

        Edit: from testing with zbarimg on my laptop: Basic, Camo, Neon (inverted), Glass, Blocks, Alien all seem to work reliably. Not sure what the problem is with some others, but maybe they’ll also work with some tweaking (Mondrian seems simple enough! maybe contrast issues?)

          wl-paste -t image/png | zbarimg -
          # macOS:
          pngpaste | zbarimg -
        
        Edit 2: for codes that will definitely be scanned using a camera [1], some styles can work because phone camera isn’t perfect. E.g. if you slightly blur Dots, it works with zbarimg, which also means it would work if you slightly move around your phone.

        [1]: Screenshots are used sometimes! E.g. for importing TOTP codes into a password manager, etc.

        • tambourine_man 11 days ago
          How have I never heard of pngpaste before?

          https://github.com/jcsalterego/pngpaste

          Thanks

          • fragmede 11 days ago
            Oh hey I wrote something similar. https://github.com/fragmede/pasteboard-image

            I used python so it's annoying to install, and I need to work on the readme, but I snoop the command line so pbipaste > foo.jpeg works as expected. there's also a copy command

            • notpushkin 10 days ago
              That’s neat! Does it handle pipes as well?

              For less annoying installation, perhaps publish it to Homebrew and/or PyPI?

              • fragmede 10 days ago
                Not yet! What sort of transformations would you do with pipes?
        • keepamovin 11 days ago
          Precisely the OP.

          More importantly it's sad and bad when a obvious negative comment is at the top of a front-page Show HN, that misrepresents and then deigns to provide recommendations against this nascent beautiful project that needs our support. Effectively shutting down the experience and enjoyment for incoming audience, and for the creator.

          That is a very bad thing and should not be tolerated. Speak up against it.

          • notpushkin 11 days ago
            OP is being respectful and merely points out an issue: the codes generated don’t work with some devices. If you want a code that works with everything, you can’t do too much customization.

            It’s a very okay thing to point out and there isn’t much negativity in it. I agree that we should support projects like this, but being dismissive of real issues is not the way.

            • keepamovin 11 days ago
              No; top comment: "don't use it" because "I tested on <my setup>" and <it failed> - you don't see the problem?

              It is OK to point out, but not to dissuade others from using, you see? Especially on a Show HN for a cool project where some good person has clearly poured their passion into it. You got to stand up for that stuff. Bring the positivity, man! Frame real issues in the correct (qualified and personal) light, not proclaiming a blanket recommendation, way to go.

              I get how making such quick generalizations can serve you well as an engineer, but when people's work is involved it pays to think about it a bit more! :)

              Example of respectful: I tried this, super cool, and I encourage everyone to give it a try. For my setup (details), I could only get 10 to work <more details if you want>, but that might just be me. All around super awesome project, love it!"

              Example of truly awesome comment if you want to be a super star: I tried this, super cool, and I encourage everyone to give it a try. For my setup (details), I could only get 10 to work <more details if you want>, but that's probably just me! edit: Thinking about it some more, I realized it might be because my device uses an outdated lib<something> and I just updated that and I got 19 of them to work! I checked <the qr code scanning app>'s GitHub and saw they also hadn't updated this dependency. So I opened an issue, and let them know about this, here's the link: <gh issue>. All around super awesome project, love it!"

              You get the idea?

              Few word mantra: contribute and build, not deplete and discourage.

              • munch117 11 days ago
                The problem here is that it cannot possibly work robustly. It does what it does by trampling all over the error correction codes and using out of spec pixel shapes.

                This is not the sort of problem that will go away once the technology matures. It is fragile by its very nature.

                It is absolutely OK to recommend against it on that basis.

                • keepamovin 11 days ago
                  I don't think you're right about that, how could it work at all? Are you even sure how it works? I was able to scan all 21 perfectly, less than 1 second each, on iOS 18 a couple of inches from retina display. I have no idea how it works, but it seems pretty robust to me.

                  I know people can't do it on some Android phones, and apps. Okay. But still seems pretty good and not a fundamental flaw. Absolutely not OK to blanket recommend against trying that. Why limit anyone? Just encourage everyone to try for themselves. Get more data. Premature to make these negative recommendations on 1 test. Rather than short-circuiting further curiosity and exploration, expand it!

                  • munch117 10 days ago
                    You were scanning a screen, which is perfectly flat, has no crumbling and no smudges. You are using a high resolution camera close to a high resolution screen, on a relatively large QR code. You have a best case scenario, and if that's all you care about, you'll be happy with it.

                    For now, anyway. If you are using the same scanner implementation that the author used to check their results, then the good results you are seeing are due to the generation algorithm being tuned to work with that particular implementation. But there's no guarantee that the implementation will stay the same in some future iOS. Say Apple makes some change, to better recognise bleached codes or something, and then suddenly some of the drop shadows are interpreted as 1's instead of 0's. They could do that, because that wouldn't require changing anything for codes that follow the spec. But it might break that pretty, pretty code that you just put on a million milk cartons.

                    • keepamovin 10 days ago
                      Perhaps you're missing the intended use case. See general concepts about not judging by irrelevant standards, especially just to critique, haha! :)
                  • fragmede 11 days ago
                    > I know people can't do it on some Android phones, and apps. Okay. But still seems pretty good and not a fundamental flaw.

                    Might not seem like one to you, since you've got a shiny iPhone running the latest iOS, maybe fundamentally it actually is? They're pretty and all, but accessibility and not being ableist is kind of a thing?

                    • keepamovin 10 days ago
                      I know we can't all have shiny things but does that mean everyone must miss out? Why forbid pre-2018 droids using this pretty square, or everyone else if they can't? If a18n is lowest common denominator to you, well not holding double standards is kind of a thing, right?
              • notpushkin 11 days ago
                I see your point! But there’s an issue specific to QR codes here.

                See, if you generate a code and it works for you, you generally expect it to work for other QR readers as well. If all you want to create a QR code for yourself to use (say, to deactivate an alarm with a code, or a Wi-Fi code for your guests to connect maybe, this should be fine. However, things like this will inevitably be used in production, and it would be really bad if, say, a QR code gets printed on a million copies of something and turn out to only work for some users.

                I agree that we should support new projects and not choke them down with overly negative commentary. However, piling up positivity doesn’t help either: your second example doesn’t feel genuine to me, more like a spam review in app store or something. I love the sandwich approach in your first one though!

                How about this: “Cool project! Some styles are really nice, I didn’t know you can make QR codes like this ever work. However, when I tried reading them with [app name] scanner app, only a few styles actually worked for me. Perhaps it works with other scanners, but this one has [99M+] downloads last month [/ active user base or something]. So if you want to use those be sure to check it works everywhere, and maybe stick to more plain styles? I also hope this gets addressed in the qrframe itself – perhaps tweaking the contrast in styles [X] and [Y] a bit would help.”

                It is still way too fluffy IMO, but much more substantial. It is harder to write, of course.

                • keepamovin 11 days ago
                  I think you're underestimating the importance of positivity. But aside from that: really? the one where the guy technical deep dives to solve some problem, seemed like a spam review to you, in the context of HN? How do you figure?

                  They're both genuine from me, one way I might write one. I feel sorry for you that you didn't feel that genuine emotion, or see the utility, but I'm glad you got something from it, hopefully it can help you write better ones in future!

                  Just curious: have you done many Show HN's yourself? You might be finding it hard to empathize with the uniqueness of that without having some experience doing it.

                  Regarding the drafts: first one's not really sandwich as much as genuinely owning "maybe this is my setup" (total correct), and expressing love for this cool project.

                  I like your one, it's a good start. I think focusing clearly on your test set up and expressing positivity is enough. Making recommendations or suggestions runs the risk of making too many unfounded assumptions about intended use, and clouding the market with unfounded restrictions when in reality you don't have the research to back that up. So, temper your pronouncements to the quality of your data, I guess, otherwise you might come across as gratuitously negative or fault finding, as OP here, even if not in "tone" per se, then in harmful effect (authoritative dismissal dimming engagement, etc).

                  Another way to say it might be: don't overestimate your ability to see real limitations, while underestimating your ability to harm a project or creator with the same.

                  These ideas, are they all really so shocking? If so, glad I could help bring a bit more light to the Show HNs by prompting some reflection!! :)

              • hluska 11 days ago
                In this case, the builder actually agreed with the feedback. You had no reason to call it “poosey”, in fact that’s a stupid word to even have in your vocabulary.
                • keepamovin 11 days ago
                  Hahaha! No. What would you know? In fact, that word is perfect for the meaning I expressed. What do you think it means?

                  The creator can do what he wants, it doesn't change the principles. Just like I do what I want, and you have no ability to judge my reasons, nor pretend you can judge a word is stupid for someone to use or not - besides yourself.

                  So maybe turn all those judgment attempts on yourself because you are getting your personal boundaries all wrong, is that something you do a lot? Hahahaha!

                  • hluska 10 days ago
                    I’m not going to entertain this disrespect with a response.
                    • keepamovin 3 days ago
                      Hahahahaha! :) So it's totally okay for you to try that, but no one can say anything back, is that right? You don't think you're a little biased? Might that not be the definition of the disrespect you pretend to be against but try to throw at others? Huh, here's a tip: if you can't take it, don't dish it out. Hahaha! :)
          • stkdump 11 days ago
            I tested it with my phone and got similar results: I got only 9 out of the 21 QR codes to work. I don't know why you think such a finding should not be mentioned here.
            • keepamovin 11 days ago
              I think it should be mentioned but without the "so I'd recommend against using", because that's wrong. Also, specify OS, surface, time, etc for better test!
              • mynameisvlad 11 days ago
                > "so I'd recommend against using", because that's wrong.

                Someone's opinion is not "wrong". It may be misinformed, it may be different than yours, but you can't just assign a "correctness" value to something subjective just because you disagree with it.

                • keepamovin 11 days ago
                  No, that's not it, but I get why you read it like that. By "wrong" I mean the lifting his personal test/opinion to the level of a general "recommendation", in effect discouraging others from exploring, and harming the creator. That is one wrong here. You get it?
      • echoangle 11 days ago
        If you want to use something for production, you shouldn’t only test on the latest stuff you personally have at home but on the crappiest stuff you reasonably expect users to have. Otherwise, you get websites that lag and spin up the fans on everybody’s laptops while the developer is happy on his workstation with 32 cores and a gaming GPU.
        • keepamovin 11 days ago
          Agree, but OP should not then "not recommend" and it shouldn't be top comment dissuading others from seeing this AWESOME project.
          • echoangle 11 days ago
            OP didn’t „not recommend“ the project but said

            > so I'd recommend against using anything too fancy for real world barcodes.

            That’s completely correct and doesn’t speak against the whole project but only against the „too fancy“ styles offered.

            • keepamovin 11 days ago
              But did OP effectively "recommend against using" this by that statement "? Yes. Especially given how many people are likely to quickly scan that top comment given the context.

              It's not correct, and actually morally wrong, to make blanket recommendations against something based on your own specific set up. Share your experience! Don't discourage others from trying it, or pretend your single source, device specific test now permits you to direct others with recommendations on this thing you didn't build, but have effectively now misrepresented as a "too fancy" "non real world application" toy. How many people is that comment going to lose the creator? How many joy experiences are robbed from those people who get misguided by that comment?

              I get your more literal, word parser-y reading, and I can definitely see how a narrow, defly parsed, narrow reading precisely defines just what you think it does. But that doesn't mean that's the only reading, or even the intended one.

              I think the people who will bother parsing any such possible nuance while making microsecond decision to either explore further or not bother is low. Congrats on being an exception tho! Or maybe you are just overanalyzing for the purpose of this argument? Hahaha :)

              I get you don't see the issue right now, and how it undermines the very best aspects of the project, but i think with a slight shift of perspective, you might! I encourage you to explore a few more Show HN's yourself and empathize with the dynamics, the effects of comments, and even try posting a few and seeing the response you get and how you feel about that. Through long experience you will know the values important here.

          • leptons 11 days ago
            You sound personally involved. Your comment is the one being downvoted, because the hubris of "it works for me so everyone should be using it!" is absurd. The fact is many of the QR codes shown do not in fact work on many devices. Your use of all-caps also violates HN rules.
            • keepamovin 10 days ago
              Judge proportional to downvotes, you miss great ideas, demonstrated in your thinking. The only hubris is your misrepresentation, and only absurdity? Your low-fact, untested 'fact'. Also, you hallucinated the all-caps. Hahahaha! :)
              • leptons 10 days ago
                >Agree, but OP should not then "not recommend" and it shouldn't be top comment dissuading others from seeing this AWESOME project.

                Maybe you don't understand what "all caps" is? Let me explain it to you. You capitalized the entire word "awesome" in your comment above. That is against the HN rules.

                Your entire comment to me is a troll. I'm not going further than this with you. Goodbye.

                • keepamovin 3 days ago
                  Oh I see what you mean. Yeah, I don't think one AWESOME is a problem. You do?

                  A troll? So you think you're being totally loving here, you're all good, yeah?

                  Personally involved... is that a bad thing? Maybe you should try it. Remember the person, remember? Hahahaha! :)

        • Kiro 11 days ago
          No, thanks. I have no obligation to do that and if it lags you can always just close the page.
          • echoangle 11 days ago
            I didn’t mean „you’re mandated by law to do this“, I meant „if you don’t do this, people won’t use your stuff if they can avoid it“. If that’s ok for you, that’s awesome. We were talking about production use though, were adoption and user friendliness is normally a goal.
      • codepeddler 11 days ago
        Interestingly enough, it didn't work well with my android. Only couple of them were scanned easily.
        • keepamovin 11 days ago
          Provide specs for extra utility (OS, app/camera, distance, surface) :)
      • keepamovin 11 days ago
        I got all 21 to scan: iOS 18, 3 - 4 inches from retina display. All scanned within 1 second. Definitely recommend this!!!

        Wow this style looks so cool!

        • keepamovin 10 days ago
          Always remember the human but y'all kritical kats seem to be forgetting that in your quest to be right. Don't forget it now!
      • franga2000 11 days ago
        Ah yes, scanned using a proprietary app on a thousand-dollar phone from the bright screen of a thousand-or-more-dollar computer: the only use-case imaginable, no reason any person would ever be using anything else...

        If it doesn't work on a 150$ Android phone using all of the 10 top results for "qr scanner" in the Play Store when scanned from a dirty TN panel or faded inkjet print in bad lighting: you are failing your users, turn off your graphic designer brain and think about usability.

        • keepamovin 10 days ago
          But are you? Depends who your users are, so... misplaced point, as for mass appeal there's alternatives. Celebrate for what it is, not judge by irrelevant standards.
  • KolmogorovComp 11 days ago
    Neat! In my opinion those generated by generative AI with controlnet are even more impressive [0], albeit also reducing their likelihood of being correctly read by all.

    [0] https://stable-diffusion-art.com/qr-code/

    • Jleagle 11 days ago
      While I do agree, one can be done almost instantly in your browser, one takes hours of rendering.
      • Miraste 11 days ago
        Even on a slower machine, it'll be minutes, not hours. A fast one with an optimized process can be seconds.
      • Uehreka 11 days ago
        Libs like qrframe are great for automating QR code creation in a web app, the ControlNet stuff is great for if you just need to make one QR code for an event or want an animated QR code (stuff like this is usually several frames per minute if you’ve got a good GPU).
    • hipjiveguy 10 days ago
      People have to be able to recognize that it is a QR code visually - these are too graphical to realize their true purpose, imho
    • mock-possum 10 days ago
      Wow somebody likes anime girls
  • suriya-ganesh 12 days ago
    The author also has a rust based qr library that looks equally awesome

    https://github.com/zhengkyl/fuqr

  • thih9 11 days ago
    Looks great, very inspiring.

    Some of these, like examples/blocks.svg[1], are not immediately recognized as qr codes by humans. This could lead to interesting possibilities; e.g. art with qr code/codes seamlessly integrated into it - and perhaps noticed only after someone tries to take a picture.

    [1]: https://github.com/zhengkyl/qrframe/blob/b7705844b71764bcea8...

  • OhMeadhbh 11 days ago
    hmm. i can't scan most of these QR codes (i got about 2 of them to scan.) so while i applaud the creative impulse (some of them look REALLY cool), i recommend people use QR codes that are easily scanned.
  • leesalminen 12 days ago
    Wow, super cool! I love the unique styling. Haven’t seen that before.

    I (well, GPT-4) built freeqrgenerator.app specifically for my wife because she kept using the malicious sites that inject a redirect that inevitably die and stop working.

    Thinking I can retire mine and use yours instead on the domain.

  • zhengkyl 12 days ago
    Did anyone else just watch the Veritasium video
    • throw0101b 12 days ago
    • andrei-akopian 12 days ago
      I always notice these patterns on HN.

      Always gives me dejavu and that feeling you get when you suddenly start encountering some new topic or word in suspiciously large amounts.

      Some big sciency/techy outlet puts something interesting out, and suddenly related topics start popping up everywhere else. I am guilty of a few of these myself.

    • jillesvangurp 12 days ago
      I did not. But now I have. And thank you for that.

      Also, this library is amazing. I might use it.

    • leptons 11 days ago
      I won't. "Veritasium" lost me with his long-wire video.
  • dylan604 12 days ago
    These are probably some of the more interesting looks I've seen. My poor phone looked like it was having a conniption fit trying to lock onto just one.
  • kristopolous 12 days ago
    I should look more into the half-tone. I'm assuming it works off of the error tolerance margins but I actually have no idea.
    • gus_massa 12 days ago
      That's the cat! The other examples are nice, but the cat is amazing!
  • chfritz 11 days ago
    > These QR codes are not reliably scannable!

    Isn't the whole point of QR codes to reliably transfer information from the physical world into the digital one without specialized equipment or software? They look pretty, sure, but so did DataGlyphs (https://www.microglyphs.com/english/html/dataglyphs.shtml) and those could be scanned reliably, just not by your average phone.

  • cipherzero 12 days ago
    This is awesome. Does anyone know if there is a library for the amazing optical codes that apple uses in its device transfer? I know they have a custom patent for it so I don't know if its something anyone has tried to recreated...
    • ustad 11 days ago
      Do you have link for more info on optical codes?
  • vishnugupta 11 days ago
    The designs are cool enough that they could be printed on physical wall tiles, maybe as easter eggs or otherwise.
    • keepamovin 11 days ago
      They should be! These would go well in all kinds of interior places, and would not be out of place on expensive high-end art / photography books and periodicals.
  • kypro 11 days ago
    I didn't expect these to look so awesome. Great work on the designs.
  • spankalee 12 days ago
    I tried to use the qrframe package, but it doesn't seem to be published to npm https://www.npmjs.com/package/qrframe
  • kdjdjdndnd 11 days ago
    While those look cool, most do not work at all on my phone
    • keepamovin 11 days ago
      Provide more details (OS, camera/app, distance, surface type), please! :)
  • fitsumbelay 10 days ago
    thanks for this. awesome post
  • sirolimus 11 days ago
    This is cool