Small useful tools
Volt
Transfer exact file bytes through a screen and a camera.
Recorded result
Explore the exampleWhy I’m interested
Two devices don't need a shared network to exchange data if one has a screen and the other has a camera. Volt uses that visual channel for file transfer. The challenge is reconstructing the original bytes from the frames the receiver gets, so the checksum matters as much as the image.
Progress
The native Rust encoder and decoder recovered all 32 bytes of a text sample with the same SHA-256 digest. The example shows the input, an encoded QR frame, and the recovered file. The next device test captures a frame through a camera instead of reading the generated PNG.
Follow the bytes through a frame
Follow the file from text to a QR frame and back to the original bytes.
32 bytes to preserve
The file starts as 32 bytes of text. Volt's native Rust encoder turns it into three QR frames.
- File size
- 32 bytes
- Frames
- 3
- Mode
- Volt QR
Input
Small experiments, exact bytes.
The encoded QR frame
The native Rust encoder produced this PNG. The decoder reads the generated image to recover the file.

The original bytes returned
One accepted frame was enough for the native Rust decoder to recover the file. Every byte matches the original input.
- Accepted frames
- 1
- Byte comparison
- Equal
Input
SHA-256
1f616d44328815fcf2cabb78bf3ebf33803c1337ab963bd983f76bf9b77ec85dResult
Small experiments, exact bytes.
Volt's native Rust commands encode and decode this recorded example. The input to the decoder is the generated PNG. The next device test uses a camera capture.
What comes next
Display an encoded frame, capture it with a camera, and compare the recovered file with the original.
Implementation and credits
How do bytes survive a trip through an encoded visual frame?
A native Volt QR encode/decode run recovers a 32-byte text file from a generated image.
Follow the text into a QR frame, then compare the recovered bytes and checksum.
The shared native Rust core encodes and decodes the file. Rust publishes the recorded frame and result.
A personal visual file-transfer experiment.