Pregătești
Eliges el contenido del código o el archivo que quieres transmitir.
Herramientas en el navegador Instrument public
MEGA QR incluye un generador de códigos y una herramienta de transferencia óptica. Creas un código para un enlace, Wi‑Fi o contacto; para la transferencia, una pantalla muestra una sucesión de códigos que la cámara del otro dispositivo reconstruye en un archivo.

MEGA QR
Eliges el contenido del código o el archivo que quieres transmitir.
El generador produce la imagen QR. La transferencia óptica muestra fotogramas sucesivos.
La cámara lee el código o reúne los fotogramas hasta que puede reconstruir el archivo.
Enlace, Wi‑Fi, contacto y otros tipos de contenido; exportación PNG o SVG.
Datos transmitidos entre la pantalla y la cámara, sin una conexión de red entre dispositivos.
La generación y la reconstrucción se realizan en el navegador, sin una cuenta de usuario.
La transferencia óptica depende de la cámara, la luz, la distancia y la pantalla. El dispositivo que transmite no recibe la confirmación de recepción. Un código mostrado públicamente puede ser leído por quienes lo ven.
MEGA QR en detalle
MEGA QR son dos herramientas en el mismo dominio, y la segunda no se parece en absoluto a la primera. El generador crea códigos QR para ocho tipos de contenido: enlace, texto, WiFi, tarjeta de visita, WhatsApp, email, SMS, teléfono y coordenadas. La transferencia óptica mueve un archivo completo de una pantalla a una cámara, sin cable, sin Bluetooth, sin red entre los dos dispositivos.
Ambas funcionan íntegramente en el navegador. Las páginas no hacen ninguna solicitud a terceros, y los dos binarios WebAssembly de los que depende la transferencia se sirven desde public/wasm/, no desde un CDN; de lo contrario, la promesa de que nada sale del dispositivo sería falsa. Una contraseña de WiFi escrita en el generador nunca llega a un servidor.
La idea que merece la pena entender sobre la difusión: una pantalla emite luz, una cámara la lee, y el receptor no tiene forma de pedir nada a cambio. No existe canal de retorno. De ese hecho se deriva todo lo demás: los fotogramas se describen por sí solos, su orden no importa, cualquier subconjunto suficientemente grande reconstruye el fichero, y el remitente nunca puede saber si ha llegado algo.
Link, text, WiFi, vCard, WhatsApp, email, SMS, teléfono y geolocalización. Cuando añades un logo, el nivel de corrección de errores pasa forzosamente a H, el más alto — un logo hace un agujero en la zona de datos y el código no sobrevive de otra forma. El logo está limitado al 35% de la superficie, con aviso desde el 30%. La exportación se renderiza por separado de la vista previa, para que un PNG de 4096 px no perturbe lo que hay en pantalla.
La biblioteca de generación, qr-code-styling 1.9.2, convierte su texto con charCodeAt(i) & 0xFF y corta en silencio cada diacrítico rumano y también el cirílico: «Ștefan Țurcanu» se escaneaba de vuelta como «tefan urcanu». Nosotros codificamos en UTF-8 antes de que lo vea, para que su truncado ya no tenga nada que cortar. Los payloads WiFi y vCard también se escapan — un «;» en una contraseña o una coma en un nombre de empresa corrompían de otro modo el código, sin ninguna señal.
El archivo se empaqueta en un sobre (nombre, tipo MIME, tamaño, SHA-256), se comprime con gzip si queda más pequeño, y luego se pasa por RaptorQ (RFC 6330). Cada fotograma lleva un encabezado fijo de 20 octetos y uno o varios paquetes. No importa qué fotogramas atrapes, importa cuántos: cualquier subconjunto lo bastante grande reconstruye el archivo. Medido por píxeles renderizados reales, la sobrecarga de RaptorQ es 1,000x — los códigos LT que usan los proyectos de referencia requieren 1,15x.
El segundo modo de envío es una ronda fija que se repite sin fin, sin sesión y sin nadie que pulse start. La longitud de la ronda viaja en cada fotograma, así que un transeúnte que apunte la cámara sabe desde el primer código captado cuánto dura todo, en lugar de ver una rueda. La configuración de referencia es 36 fotogramas a 12 por segundo — una ronda de tres segundos que transporta 25 KB desde un único código blanco y negro simple. Un menú completo, o el horario completo de una estación.
El número de códigos en pantalla, el color y la versión QR son tres limitaciones distintas y se ajustan por separado. La escala de densidad tiene 29 pasos, desde v10 en una sola banda (7 KB/s a 30 fotogramas por segundo) hasta v39 en cuatro bandas en color (959 KB/s). También existe una escala completa sin color, hasta 320 KB/s, porque una cámara a la que se le muere la crominancia no debe quedarse bloqueada en una sola banda.
Datos y funcionamiento
De la exploración a la implementación
Un código QR lleva a contenido breve y, si es un enlace, a una página que luego puedes cambiar —el código impreso no cambia por sí solo de destino. La transferencia óptica mueve un archivo entre dos dispositivos que no tienen permiso o no pueden comunicarse por red. Son tareas distintas y la confusión entre ellas es la más frecuente.
Para impresión: contraste, tamaño final, zona libre alrededor, probado al tamaño al que se pegará. Para transferencia: cuánto cae un módulo sobre el sensor de la cámara. Bajo un modelo duro de lente (rejilla de crominancia desplazada un píxel más un desenfoque 3x3) el color devuelve los tres códigos a 4 píxeles de dispositivo por módulo y absolutamente nada a 2. Ese es el límite real, y por eso el color es una elección humana, no del controlador.
Nuestra suite pasa por una cadena de cámaras auténtica —los fotogramas se escriben como YUV 4:2:0 y se dan a Chrome como webcam falsa, así que el submuestreo de crominancia es real. Lo que no tiene: objetivo, reflejos, movimiento, obturador rodante. Diez minutos con un teléfono real dan la primera cifra honesta y son el siguiente paso de nuestra lista de trabajo, no un detalle.
A través de una cadena de cámara simulada, a 10 fotogramas por segundo, con los códigos llenando la mayor parte de la imagen a 3-5 píxeles de cámara por módulo, las cuatro configuraciones salieron con hash verificado: blanco y negro en una banda 15,8 KB/s, blanco y negro en cuatro bandas 37,7 KB/s, color en una banda 40,1 KB/s, color en cuatro bandas 115,7 KB/s. El color en una sola banda supera al blanco y negro en cuatro. La tasa de fallos fue cero en todas partes. Ten en cuenta de dónde salen las cifras: fotogramas geométricos perfectos, sin objetivo y sin movimiento. Un teléfono real aún no se ha puesto delante de ellos.
Se exige a la cámara 1920x1080 a 30 fotogramas por segundo, con preferencia por la trasera; si Android rechaza la restricción, se cae a cualquier cámara. Cada fotograma capturado se reduce a 1280 px en el lado largo antes de la decodificación. Lo que realmente importa no es la resolución, sino cuántos píxeles de sensor caen sobre un módulo: el blanco y negro necesita aproximadamente tres, el color aproximadamente el doble, porque la cadena de vídeo del teléfono normalmente entrega 4:2:0 y reduce a la mitad ambos planos de color en ambas direcciones. El detalle fino de color es lo primero que una cámara real destruye.
Porque lo único que el dispositivo que envía puede medir es cuántos símbolos han producido sus propios codificadores frente a cuántos se le pidieron —una afirmación sobre un procesador, no sobre una cámara a dos palmos. Un portátil nunca pierde un escalón, así que un controlador que lee «cero fallos» como «sigue» sube hasta arriba y pone en pantalla cuatro códigos que cambian treinta veces por segundo, que nada puede escanear. Eso sí se entregó una vez y una persona lo encontró en un minuto. Ahora el modo automático está limitado a una banda, blanco y negro, versión 26 y 15 fotogramas por segundo. 15 no es una cifra redonda: una cámara de teléfono registra a 30 y no está sincronizada con la pantalla, así que un fotograma debe permanecer mostrado dos exposiciones consecutivas —67 ms— para ser captado entero.
Nada especial, y ese es precisamente el punto. No hay números de orden que recuperar. El codificador produce paquetes de reparación en una proporción de 2x respecto a los símbolos fuente — medido en este código: con 60% de pérdida de frames, un conjunto de aproximadamente 2x K recupera 2 MB sin que la lista se reproduzca nunca por segunda vez. El límite absoluto es de 60.000 paquetes; por encima de él, el remitente simplemente reinicia la lista más a menudo, lo que cuesta tiempo, no memoria. Si aun así algo sale mal, el hash SHA-256 lo detecta y la transferencia falla de forma declarada en lugar de entregar un archivo corrupto.
No, y no es una omisión. No existe canal de retorno: una pantalla emite luz, y la luz no vuelve con confirmaciones. La finalización se ve en el dispositivo que recibe. Cualquier interfaz que dijera lo contrario mentiría, y ya tuvimos una vez una prueba que ofrecía exactamente esa evidencia que el producto nunca tiene: la simulación calculaba su tasa de fallos a partir de lo que la cámara simulada conseguía resolver. Ese es un canal de retorno. Cuando una prueba y el código entregado no coinciden sobre lo que se puede saber, la prueba es la que miente.
32 MB, rechazado en la selección si es mayor. El límite no viene del protocolo, sino de la memoria de una pestaña del navegador: RaptorQ materializa todos los paquetes de una vez, y un archivo de 50 MB con relación 2x implicaría 150 MB de tablas vivas, suficiente como para matar la pestaña de un teléfono. La codificación se ejecuta de forma síncrona en el hilo principal, medida en 2,5 segundos para 32 MB en el ordenador. Lo que viaja realmente no es el tamaño del archivo: el sobre se comprime con gzip antes de RaptorQ, así que una tabla de 1 MB son unos pocos kilobytes de paquetes, y una fotografía de 1 MB es un megabyte de paquetes.
Ni una cosa ni la otra. No hay cuenta y no hay suscripción. Después de la primera visita las páginas funcionan sin red, porque todo —incluidos los dos binarios WebAssembly— se sirve desde su propio dominio. También vale la pena decir lo que hemos aprendido en el camino: un service worker registrado no significa soporte offline. En la primera carga la página y sus recursos se traen antes de que el worker tome el control, así que su handler nunca los ve. La página reporta sus propios recursos mediante la Performance API en lugar de suponer.
Ejemplo ilustrativo
Un escenario de uso, sin datos de cliente ni resultados comerciales atribuidos.
Una pantalla en una estación o un escaparate debe dar a los transeúntes un archivo —el horario completo, el menú, un formulario— sin WiFi pública, sin cuenta y sin que nadie pulse nada.
La pantalla ejecuta un carrusel: 36 cuadros a 12 por segundo, una vuelta de tres segundos que se repite sin fin. La densidad es fija durante el carrusel, porque una vuelta solo es una promesa si su longitud se mantiene. La longitud de la vuelta viaja en cada cuadro, así que un teléfono que capta el primer código sabe al instante cuánto dura todo.
El transeúnte graba tres segundos y obtiene 25 KB reconstruidos en su navegador, verificados con SHA-256, a partir de un solo código blanco y negro simple. La pantalla no sabe que fue leída y no puede saberlo.
Ce este necesar:Un ecran care poate ține un cadru afișat 83 ms fără sfâșiere, lumină în care codul nu e spălat de reflexii, și o cameră care rezolvă aproximativ trei pixeli de senzor per modul. Cifra de 25 KB e derivată din aceleași funcții pe care le folosește expeditorul, nu tastată de mână alături de ele.
Posibilidades de colaboración
Códigos para acceso a información pública, instrucciones o contactos; transferencia óptica de archivos entre dispositivos compatibles, con evaluación de las políticas de seguridad de la institución.
Definimos un piloto en torno a un proceso real: usuarios, datos, integraciones, costes y criterios de aceptación. La ampliación sigue después de evaluar el resultado.
Establecemos los requisitos de accesibilidad, alojamiento, protección de datos e interoperabilidad. Cualquier conexión con servicios AGE o STISC requiere la validación de la elegibilidad, el acceso y las aprobaciones.
Estos son escenarios de adaptación, no declaraciones sobre contratos o colaboraciones existentes. Las funciones propuestas se confirman en el ámbito de trabajo del proyecto.
Habla de un pilotoonGDPR.md revisa la superficie pública de un sitio web: cookies, rastreadores, formularios y documentos informativos.
Plataforma públicaMegaforms explora la recogida de respuestas mediante formularios conversacionales, con respuestas de voz y transcripción incluidas.
Desarrollo y demostracionesConstruimos una plataforma para cartas digitales y operaciones accesibles por QR.
Desarrollo y demostracionesCuéntanos tu proceso. Juntos decidimos qué merece la pena construir, qué podemos conectar y cómo verificamos el resultado.