https://codeberg.org/blast/blastqr

Hello! I’ve been working on blastQR for a couple of years now and I thought this community might find it useful. Feel free to try it and ask me anything!

blastQR is a fully open-source file transfer app and protocol that works completely offline. You can even use it in airplane mode. Data is transferred through sequences of QR codes displayed on a sender device and scanned by a receiver device’s camera. It uses RaptorQ codes so the receiver can recover the file from any sufficiently large subset of frames.

Note that although I have made use of AI as a coding assistant I do not consider this to be a vibe-coded app and I do plan to continue improving it and supporting it in the future.

See video of blastQR in action: https://github.com/user-attachments/assets/038a2567-70c8-47c8-b165-dea858d1aef3

Here are some of the key features:

  • Works fully offline: No internet, Wi-Fi, Bluetooth or servers. Your data stays offline.
  • One-to-many distribution: Share the same file with multiple devices simultaneously using a single blastQR broadcast.
  • Cross-platform: Android, iOS, macOS, Linux and Windows, plus a command-line tool that can send from a terminal, even over SSH.
  • Password encryption: You can optionally encrypt files with an auto-generated password or a custom one.
  • Media compression: The app supports lossy image compression and video transcoding for quicker transfers.
  • Multiple codes on screen: Shows multiple QR codes at once for higher speed. With 8 codes at 60 fps, transfers peak at around 1.4 MB/s.
  • Send multiple files in one go: They’re zipped into one transfer and unpacked into separate files on the receiver.
  • Sound feedback: The receiver plays a short tone when it has the whole file, and the sender stops automatically when it hears it.
  • Start scanning at any point: No need to catch every code, just keep the camera on the screen until it’s done. Blurry or missed codes don’t matter.
  • Regular QR scanner: You can also scan normal QR codes and save them.
  • Open protocol that other apps can implement
  • Built-in file manager

I’m trying to build a small community around the project so it can be improved and maintained and so it can reach more people in the future.

Downloads for all platforms can be found here: https://codeberg.org/blast/blastqr/releases/latest

  • tostane@thelemmy.club
    link
    fedilink
    arrow-up
    1
    ·
    14 minutes ago

    you do know that that claude figured way to do this to talk to other llm and what you are doing will give them more routes to talk

  • Julrob@feddit.org
    link
    fedilink
    arrow-up
    3
    ·
    2 hours ago

    Whats the advantage over bluetooth, local ftp serverr/hotspot and other wifi sharing methods?

  • SabinStargem@lemmy.today
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 hours ago

    I am thinking that maybe adding color would allow you to condense a lot more information into a QR code. It would be good if we can have entire programs and media reconstructed just from scanning QRs.

    • blast@lemmy.dbzer0.comOP
      link
      fedilink
      arrow-up
      6
      ·
      edit-2
      2 hours ago

      For those asking about RGB, there are a few reasons why QR codes work better for now:

      • Black and white still reads fine in bad lighting or on cheap cameras. Phones are very optimized for scanning QRs so it’s more reliable and less error prone.
      • Video compression, colors shifting with white balance, screen type, all of those make it harder to tell colors apart so you need more aggressive error correction. The real gain ends up smaller than it sounds.

      You can already transfer entire (small) programs and media with blastQR btw! Feel free to try and report back. The limit is around 4 GB files but that would take ages.

      That said, there is a project called libcimbar that is improving and does work with colors: https://github.com/sz3/libcimbar

  • phtheven@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    11 hours ago

    Does this mean an IP cam pointing to a monitor can compromise an air gap? I guess it always could, just at 1.4mbps now

    • captcha@lemmy.frozeninferno.xyz
      link
      fedilink
      English
      arrow-up
      2
      ·
      47 minutes ago

      I believe IP cameras usually can’t reach fidelity and frame rate needed for 1.4 mb/s

      And yes, programs like this existed, so it always could

  • Fmstrat@lemmy.world
    link
    fedilink
    arrow-up
    24
    ·
    15 hours ago

    So a fun use case you may not have considered is back country GPX sharing. A plugin for Osmand (a very popular FOSS mapping app for back country use) would be neat. Sharing when airplane mode between devices is always needed.

    • blast@lemmy.dbzer0.comOP
      link
      fedilink
      arrow-up
      19
      ·
      14 hours ago

      That is a fenomenal idea! I hadn’t thought about it and these are the exact kind of situations it could solve well. I’ll definitely add it to the roadmap. Thank you

  • Domi@lemmy.secnd.me
    link
    fedilink
    arrow-up
    23
    ·
    17 hours ago

    Is this the future version of holding two phones together to transmit files via infrared?

  • rmuk@feddit.uk
    link
    fedilink
    English
    arrow-up
    4
    arrow-down
    3
    ·
    9 hours ago

    Seems finicky. Keeping the camera and screen aligned during the transfer. Someone should research if it’s possible for two phones to send data acoustically. Then they don’t need to be kept perfectly aligned. Hell, they could even transfer data over a phone call or something.

  • neon_nova@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    8
    ·
    16 hours ago

    I started working on something like this years ago, but I didn’t have the coding skills to pull it off. This is really awesome.

      • dx1@lemmy.ml
        link
        fedilink
        English
        arrow-up
        5
        ·
        12 hours ago

        It’s not that hard. Loop the QR, index the frames without the QR payload, do it ~10fps so you account for camera error, then when all frames/packets are completed, you’re good. There’s a ton of QR scanning libraries out there already.

      • BradleyUffner@lemmy.world
        link
        fedilink
        English
        arrow-up
        6
        arrow-down
        7
        ·
        edit-2
        3 hours ago

        Yeah, we get it, he used AI. You anti-AI absolutists aren’t actually changing anyone’s minds with this behavior, and it actually seems to be annoying a lot of people in to the opposite direction.

        • ducktumn@lemmy.zip
          link
          fedilink
          arrow-up
          3
          arrow-down
          1
          ·
          2 hours ago

          The tech or “tool” as you guys like to call it is the issue. Even if you use it the best way you could you still used a tool created by stealing. You guys can’t see past the next 2 years. I will be laughing my ass up in 5 years when all of you are forced to pay 1k a month just to function.

        • KimLuff@lemmy.blahaj.zone
          link
          fedilink
          arrow-up
          2
          arrow-down
          2
          ·
          2 hours ago

          Literally just “leftists are right but annoying so I’m a fascist now :(” enabler behavior applied to AI.

          Being angry also works better in real life in my experience. I think the people who constantly ask others to soften up are opps

  • LiamBox@lemmy.ml
    link
    fedilink
    English
    arrow-up
    4
    ·
    13 hours ago

    Reminds of removedat, odd but apparently used in india because their goverment is lowkey evil again?

  • LeftReddit2@lemmy.world
    link
    fedilink
    arrow-up
    6
    arrow-down
    4
    ·
    12 hours ago

    Note that although I have made use of AI as a coding assistant I do not consider this to be a vibe-coded app

    1. What KIND of AI did you use? Was it a local model or a cloud sourced one?

    2. Where exactly and what exactly was the AI used on?