Un desarrollador consigue tranferir archivos entre móviles mediante códigos QR parpadeantes y sin usar ninguna red
por Edgar OteroUn desarrollador ha compartido esta semana en el subreddit r/vibecoding, dedicado a la programación asistida por IA, un proyecto capaz de enviar un archivo de un móvil a otro sin ninguna conexión de red de por medio. Lo logra sin WiFi, sin Bluetooth y sin que los dispositivos estén conectados al mismo router. La transferencia se hace solo con una pantalla y una cámara. Un dispositivo muestra el archivo como una secuencia de códigos QR en movimiento, y el otro lo reconstruye apuntando con su cámara. El proyecto, llamado Decimen Optical Transfer, ya está disponible como código abierto.
La idea surgió mientras su autor, que publica bajo el nombre de Alstroph, desarrollaba un reproductor de MP3 para web con caché local, buscando evitar los anuncios y la pérdida de calidad de las plataformas de streaming habituales. Quiso añadir una función para transferir archivos entre dos teléfonos sin que ambos estuvieran en la misma red, y se dio cuenta de que una sucesión de códigos QR parpadeando rápidamente podía resolver el problema. La prueba de concepto, según explica, la completó en una sola noche con ayuda de Claude Code.
Tuve una idea para la transferencia de archivos sin aislamiento de red, logrando 120 KB/s
gracias a u/Alstroph en vibecoding.
Por qué los códigos QR normales no bastan
Un enlace de pantalla a cámara solo funciona en una dirección. El receptor no puede pedir que se repita un fotograma perdido por un desenfoque, un parpadeo de la pantalla o un fallo de enfoque, así que repetir la secuencia en bucle resultaría muy lento: cada fotograma perdido obligaría a esperar un ciclo completo para volver a verlo.
La solución son los llamados fountain codes, es decir, códigos de fuente, en concreto una variante conocida como codificación Luby Transform. En lugar de enviar los bloques del archivo tal cual, cada fotograma contiene el resultado de una operación XOR sobre un subconjunto aleatorio de esos bloques, calculado de forma determinista a partir de su número de secuencia. El receptor solo necesita capturar un número suficiente de fotogramas distintos, sin importar el orden ni cuáles en concreto, para reconstruir el archivo completo.
Perder fotogramas por el camino solo cuesta tiempo, nunca la integridad del archivo. Cada fotograma incluye además una cabecera con el identificador de sesión, el número de secuencia y un hash de verificación, lo que permite que el receptor se enganche a la transmisión en cualquier momento sin necesidad de un proceso de emparejamiento previo.
Velocidad de transferencia y proyectos similares
En esta versión reducida, el sistema transfiere archivos de 512 KB o 2 MB a una velocidad cercana a los 129 KB/s. El experimento original del que deriva este proyecto, con fotogramas más densos, varios códigos QR mostrados a la vez y un canal adicional de color, llegó hasta 128 KB/s con el móvil sujeto a mano y 186 KB/s con el teléfono apoyado sobre una superficie estable, usando una pantalla con 120 Hz de refresco.
El propio autor reconoce que la idea no es del todo nueva. Proyectos como txqr, publicado en 2018 y escrito en Go, ya combinaban códigos QR animados con fountain codes por el mismo motivo, y airgapped-qr-code-transfer aplica una lógica de compresión y fragmentación secuencial similar desde el navegador.
Existe incluso Libcimbar, que sustituye el código QR por un formato propio de códigos de color de alta densidad para exprimir todavía más el ancho de banda de este canal. El código de Decimen Optical Transfer está disponible públicamente en GitHub para quien quiera probarlo o revisarlo.
Fin del Artículo. ¡Cuéntanos algo en los Comentarios!




