GithubHelp home page GithubHelp logo

qr.io's Introduction

QR.io

A data transfer protocol using QR codes!

What does this do?

QR.io a new way of transferring data without the need for Wi-Fi, Bluetooth, or cables.

Why is this needed?

QR.io relies only upon a camera and a screen, with no servers or third parties needed. This enables file and data transfer without an internet connection and without pesky people snooping on your data!

How do I use this?

Currently, there is only an Android app available with our technology installed. We'd love help porting over to other platforms, like iOS!

Example

Point your device at the GIF (using the app!)

The device will vibrate when transfer is initiated and completed.

Ideas

  • Turn a file into QR codes
  • Turn those QR codes into readable files
  • Create Android app to show off the technology
  • Add file type compatibility (Transmit filename)
  • base64 encoded or ensure unicode works
  • Set headers to Byte data
  • Create an iOS app to show crosscompatability
  • Convert the app into an API for others to use in their projects
  • Enable bi-directional communication
  • Speed up data transfer
    • Use bi-directional communication to discover fastest method of transfer
    • Drop frames that were successful so they are not looped again
    • Use raw pixel data for data transfer and use QR codes as an easy/fast way to talk

How can I contribute?

Please see the issues page for current bugs / features we seek to implement.

Contact

Thomas Reichel Trevor Dobbertin Matas Lauzadis Dimitar Pendurkov
tom.p.reichel(@)gmail.com trevordobbertin(@)gmail.com matas.lauzadis(@)gmail.com dimitarpendurkov(@)gmail.com

qr.io's People

Contributors

lauzadis avatar tom-p-reichel avatar tpjwm avatar trevato avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

qr.io's Issues

Remove text file only limitation

Currently, the file that is passed has a hardcoded .txt and filename. We'd like to pass the filename in the headers of the QR codes.

Also, we'd like the files to work using Unicode.

Extend data surface

QR code should now contain information about the screen dimension, then data should be stored in pixel data around the qr code.

Try to use the entire RGB color-space for maximum bandwidth.

Since screen colors and cameras aren't exactly standardized, a palette will be needed to contain examples of colors for the other phone to be calibrated to.

QR codes have built-in redundancy. This will not. It will need to have some kind of checksum.

Convert headers to Bytes

Currently, headers are plain text and split by commas. We'd like to have the headers as raw byte data so that the file doesn't break when there is a comma in the file. Also, it would make the headers smaller and easier to deal with in the future.

Implement bi-directional reading

During a transfer process, both phones should be reading each other, not just a one-way read from sender to receiver. This new link should be used to transmit information about which frames are already read to speed up the transfer process.

Receiving thread doesn't terminate properly

When the receiver gets all of the byte data from the sender, threads continue overwriting the file. The receiver should stop all polling for data right when the entire file has been received.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.