Open Source

QR animado transfere arquivos entre celulares sem rede ou pareamento

Projeto usa tela e câmera para enviar arquivos por luz, sem servidor, conexão entre aparelhos ou aplicativo dedicado.

licença livreReprodução · site do decimen-optical-transfer

O Decimen Optical Transfer é um projeto em TypeScript criado por Evan Crawley, identificado no README como Bash Alarmist. Ele transforma uma tela em uma sequência contínua de QR Codes animados e usa a câmera de outro dispositivo para reconstruir o arquivo. O repositório ganhou 3.463 estrelas no período informado e aparece em 17º lugar no ranking mensal do Trendshift, em um momento de interesse por transferências offline e dispositivos sem conexão direta.

Dados rápidos

O problema que o projeto resolve

Transferir um arquivo entre dois dispositivos normalmente exige internet, rede local, cabo, Bluetooth, pareamento ou a instalação de um aplicativo. O Decimen propõe outro caminho: um aparelho exibe os dados visualmente e o outro os captura com a câmera, sem estabelecer uma rota de rede entre eles.

O método pode ser útil em cenários nos quais a conectividade está indisponível ou não deve ser usada. Também elimina etapas como descobrir dispositivos próximos, conceder permissões de armazenamento ou configurar uma conta.

O projeto funciona pelo navegador. O site pode ser aberto em ambos os aparelhos, sem instalação, e continua funcionando offline depois da primeira visita. O README também informa que a página pode ser instalada como aplicativo na tela inicial de dispositivos iOS e Android.

Como a transferência funciona

O remetente divide o arquivo em partes e exibe uma sequência de QR Codes. Como a câmera pode perder quadros por movimento, foco ou iluminação, o projeto usa códigos fountain, uma técnica de transmissão na qual o receptor não precisa receber os blocos em uma ordem específica.

Na implementação descrita, o remetente gera quadros baseados em códigos Luby transform. O receptor coleta aproximadamente K × 1,15 quadros distintos, em qualquer ordem, e então reconstrói o conteúdo. Quadros perdidos aumentam o tempo da operação, mas não alteram a correção do arquivo recuperado.

O fluxo básico é:

npm install
npm run dev

Depois, o servidor de desenvolvimento é aberto em https://localhost:5173/send/. O README orienta acessar, no dispositivo receptor, a URL de rede impressa pelo servidor e aceitar o certificado autoassinado uma vez. Também há comandos para gerar a versão de produção e páginas independentes:

npm run build
npm run build:standalone

O sistema aceita arquivos de até 64 MB ou um trecho de texto colado. Nome do arquivo e tipo de mídia são preservados, a compressão gzip é usada apenas quando ajuda, e um hash SHA-256 é verificado antes da disponibilização do conteúdo. Vídeos recebidos podem ser reproduzidos na própria página.

Casos de uso práticos

  • Transferir um documento entre um computador e um celular quando não há rede disponível.
  • Enviar um trecho de texto para outro aparelho sem digitação manual ou serviço de mensagens.
  • Copiar arquivos entre dispositivos em um ambiente no qual não se deseja criar uma conexão de rede.
  • Compartilhar um vídeo curto preservando o tipo de mídia e reproduzindo-o no navegador receptor.
  • Usar a página instalada como aplicativo em aparelhos iOS ou Android, depois do primeiro acesso.

O README cita uma experiência maior que alcançou 128 KB/s em uma transferência entre telefones. Esse número pertence ao experimento de origem; o repositório não informa uma velocidade garantida para todos os aparelhos, câmeras ou condições de iluminação.

O que diferencia o Decimen

A proposta combina QR Codes animados com códigos fountain e dispensa um canal de retorno entre remetente e receptor. Isso o diferencia de soluções que enviam blocos sequenciais e precisam repetir uma ordem fixa quando há perdas.

O próprio projeto cita alternativas com abordagens distintas: o airgapped-qr-code-transfer, baseado em QR Codes sequenciais e compressão; o txqr, de 2018, que também usa QR animado e códigos fountain em Go; e o libcimbar, que abandona o QR em favor de um código colorido de maior densidade. O README afirma que essas ideias foram desenvolvidas de forma independente.

Limitações e cuidados

A transferência não é criptografada. Qualquer câmera apontada para a tela pode ler o conteúdo exibido, portanto o benefício oferecido é a ausência de rede, não a confidencialidade. O hash SHA-256 confirma a integridade antes da entrega, mas não substitui criptografia.

O repositório foi criado em 30 de julho de 2026, teve seu último commit em 7 de agosto e registra a release v0.3.0, publicada em 4 de agosto. Esses dados indicam um projeto recente; informações sobre suporte prolongado, desempenho por modelo de aparelho e compatibilidade detalhada não são informadas no repositório.

A instalação local depende do ecossistema npm e utiliza node-qrcode e zxing-wasm, conforme o README. A descrição oficial e os tópicos do repositório não são informados. O código está sob licença MIT.

Resumo rápido

  • Projeto: transferência de arquivos por QR Codes animados
  • Licença: MIT
  • Linguagem: TypeScript
  • Estrelas: 5.377
  • Ranking: Trendshift mensal #17
  • Risco principal: exposição do conteúdo, pois a transmissão não é criptografada

Fontes

Fontes

TypeScriptMITOpen SourceTrendshift
Como fazemos: nossa equipe monitora diariamente os repositórios de código aberto em maior alta e produz esta cobertura com apoio de modelos de linguagem, sempre a partir de dados verificados na fonte primária — repositório, documentação oficial e ranking público. Os números de estrelas e a posição no ranking refletem o momento da coleta. Entenda o método.