Go to file
Joe Ardent 02d5e57eed Complete UI for desktop transmission.
This is now a working version of a desktop transmission program; it can't yet receive data. The code
is more than a little ugly, though, so it's not done by any means, it's just that it works.
2023-08-07 12:41:54 -07:00
examples got the streamed content data model correct 2023-08-07 09:33:35 -07:00
mobile fix metadata etc. 2023-08-04 13:03:17 -07:00
src Complete UI for desktop transmission. 2023-08-07 12:41:54 -07:00
.gitignore takes an input string and converts it to v40 qr code 2023-08-01 13:11:42 -07:00
.rustfmt.toml Dynamically choose static or streaming based on size. 2023-08-04 17:17:14 -07:00
Cargo.lock Displays either a static qr code or a stream of raptor-encoded ones. 2023-08-03 13:40:10 -07:00
Cargo.toml buncha stuff 2023-08-05 13:16:56 -07:00
LICENSE.md add version, license, and readme 2023-08-01 14:59:21 -07:00
README.md Displays either a static qr code or a stream of raptor-encoded ones. 2023-08-03 13:40:10 -07:00
VERSION add version, license, and readme 2023-08-01 14:59:21 -07:00
VERSIONING.md add version, license, and readme 2023-08-01 14:59:21 -07:00

README.md

Cuttle, a flasher with a message

Cuttle is a desktop application for transfering data from one computer to another by displaying a [possibly endless] stream of QR encoded Raptor codes, so that a camera-equipped different computer can read the QR codes and turn them back into the original content.

Tell me more!

Raptor codes are a type of fountain code; fountain codes are a way to encode data as a stream of error-correcting pieces of that data; as long as you can read some number of pieces, you can reconstruct the original data. They're named like that because you can think of them as like a fountain of water that is just pouring out. Anyone can come drink from it, and then they'll have the water. So something can just be transmitting fountain codes and not care if anyone is receiving, and receivers don't have to worry about missing something they needed; they're guaranteed to get everything they need as long as they listen long enough. I think that's pretty cool!

So the idea here is to give it a file (or short string of text) that you want transferred to a different computer (like a mobile phone running a little companion app), and it will start producing Raptor codes for that file. Each piece of Raptor code then gets encoded as a QR code, and then displayed for a period of time on the screen. The user then holds up the receiving computer's camera in order to receive the QR encoded raptor codes, and, voila, the file has been transferred!

Current status

The desktop transmitting application is nearly done; already it can convert text input into QR codes (either a single static one if the data is small enough, otherwise it will stream a never ending loop of them), and the mobile app has been started. Even without the mobile app, it's still already useful for transmitting short text strings to the phone, since the Android camera app will decode any detected QR codes.

The mobile app has been started, and I hope to have it decoding QR streams soon!

about the name

Cuttlefish are small but very intelligent cephalopods whose bodies are covered in a 15hz multi-color, multi-polarity, pixel-mapped display that they use to visually communicate with other cuttlefish, as well as to dazzle predators and prey.