How bashalarmistalt/decimen-optical-transfer works
Decimen Optical Transfer moves a file or text snippet from one device’s screen to another device’s camera without networking. The sender packs and fountain-encodes payload blocks, renders self-describing QR frames, and displays an endless stream or exports an animation. The receiver captures video, dispatches frames to WASM QR workers, parses and peels the fountain stream, verifies the hash, then offers or plays the result. The graph also shows localization and live diagnostics. Build, test, and PWA infrastructure is omitted; several unsampled integrations are therefore not expanded.
Main entry points: receive/main.ts Receive Controller · send/main.ts Send Controller · export.ts Animation Exporter · protocol.ts Frame Protocol
Components 20
User Entry
- Send Controller
send/main.ts - Receive Controller
receive/main.ts
Sender Pipeline
- File Or Snippet
send/main.ts - Fountain Encoder
shared/fountain.ts - QR Renderer
send/qr-frame.ts - Live QR Stream
send/main.ts - Animation Exporter
send/export.ts - Animation Artifact
send/export.ts
Transfer Protocol
- Frame Protocol
shared/protocol.ts
Receiver Pipeline
- Camera Capture
receive/main.ts - Decode Worker Pool
shared/worker-pool.ts - Worker Factory
receive/worker-factory.ts - WASM QR Decoder
receive/worker.ts - Fountain Decoder
shared/fountain.ts - Verified File
receive/main.ts - Media Display
shared/display.ts
Shared Runtime
- Localization Runtime
shared/i18n/index.ts - Status Diagnostics
shared/status-line.ts
Other components
- Sender User
- Receiving User
Connections 28
- Sender User → Send Controller: selects payload
- Send Controller → File Or Snippet: reads input
- Send Controller → Frame Protocol: packs payload
- Send Controller → Fountain Encoder: encodes blocks
- Send Controller → QR Renderer: renders frames
- Send Controller → Live QR Stream: displays stream
- Send Controller → Animation Exporter: starts export
- Animation Exporter → Fountain Encoder: encodes frames
- Animation Exporter → Frame Protocol: packs frames
- Animation Exporter → QR Renderer: renders frames
- Animation Exporter → Animation Artifact: writes animation
- Live QR Stream → Camera Capture: transfers light
- Animation Artifact → Camera Capture: transfers light
- Receiving User → Receive Controller: starts camera
- Camera Capture → Receive Controller: supplies frames
- Receive Controller → Decode Worker Pool: submits frames
- Receive Controller → Worker Factory: creates workers
- Worker Factory → WASM QR Decoder: loads decoder
- Decode Worker Pool → WASM QR Decoder: dispatches frames
- Receive Controller → Frame Protocol: parses frames
- Receive Controller → Fountain Decoder: peels blocks
- Receive Controller → Frame Protocol: unpacks verifies
- Receive Controller → Verified File: offers result
- Receive Controller → Media Display: plays media
- Send Controller → Localization Runtime: loads language
- Receive Controller → Localization Runtime: loads language
- Send Controller → Status Diagnostics: reports status
- Receive Controller → Status Diagnostics: reports status