2023-08-03 20:40:10 +00:00
|
|
|
# Cuttle, a flasher with a message
|
2023-08-01 21:59:21 +00:00
|
|
|
|
2023-08-03 20:40:10 +00:00
|
|
|
Cuttle is a desktop application for transfering data from one computer to another by displaying a
|
|
|
|
[possibly endless] stream of [QR encoded](https://en.wikipedia.org/wiki/QR_code) [Raptor
|
|
|
|
codes](https://en.wikipedia.org/wiki/Raptor_code), so that a camera-equipped different computer can
|
|
|
|
read the QR codes and turn them back into the original content.
|
2023-08-01 21:59:21 +00:00
|
|
|
|
2023-08-03 20:40:10 +00:00
|
|
|
## Tell me more!
|
2023-08-01 21:59:21 +00:00
|
|
|
|
|
|
|
Raptor codes are a type of [fountain code](https://en.wikipedia.org/wiki/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!
|
|
|
|
|
2023-08-03 20:40:10 +00:00
|
|
|
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
|
2023-08-01 21:59:21 +00:00
|
|
|
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!
|
|
|
|
|
2023-08-03 20:40:10 +00:00
|
|
|
# Current status
|
2023-08-01 21:59:21 +00:00
|
|
|
|
2023-08-03 20:40:10 +00:00
|
|
|
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!
|
2023-08-01 21:59:21 +00:00
|
|
|
|
|
|
|
# about the name
|
|
|
|
|
2023-08-03 20:40:10 +00:00
|
|
|
[Cuttlefish](https://en.wikipedia.org/wiki/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.
|