TLcube

El QR se lee bien.
Solo que nunca ha sido bonito

Carteles, envases, tarjetas de visita — el QR está en todas partes, y colocar un cuadrado en blanco y negro sobre un diseño trabajado durante semanas siempre ha dolido. Pero el QR tiene ese aspecto por una razón: es lo que se construye cuando una cámara y un procesador de 1994 tienen que poder leerlo.

Esas restricciones se han levantado en buena parte. Las cámaras de los teléfonos y la potencia de cálculo van sobradas. Así que, en lugar de perseguir solo el reconocimiento, ese margen se ha gastado en que merezca la pena mirarlo. No es un sustituto del QR: es un asiento a su lado.

Por qué ahora

El QR fue la respuesta correcta para su momento. Dos valores, módulos cuadrados, patrones localizadores grandes — cada una de esas decisiones existía para que una cámara débil pudiera leerlo igualmente. Con esas restricciones, renunciar a la estética era razonable.

Esa premisa ha cambiado. Las cámaras de los teléfonos de hoy no se parecen en nada a aquellas, y el procesado de vídeo en tiempo real corre dentro de un navegador. Ese margen podía ir a la densidad — o podía ir a cómo se ve. Por eso existe este formato.

A cambio se renunció a la densidad. Las celdas romboidales aprovechan peor la superficie que los módulos cuadrados. Este formato no compite en densidad. Si hay que llevar mucho, la herramienta adecuada es el QR.

Tres tipos

Elija según dónde vaya a ir. Los tres comparten el mismo contrato de datos y solo se diferencian en la silueta. Todos los códigos de abajo contienen https://tl.estre.so.

Type Y — cubo único

Type Y — cubo único

Tres caras n×n. Una marca de una sola pieza, buena para rotulación y merchandising.

n = 13 / 21 / 25 · carga útil neta 31 / 98 / 141 B
Type O — campo hexagonal

Type O — campo hexagonal

La forma base. Las celdas romboidales se extienden alrededor de un patrón localizador central.

k = 6 / 8 / 10 · carga útil neta 18 / 39 / 65 B
Type A — silueta triangular

Type A — silueta triangular

Un núcleo hexagonal más parches de esquina, que forman un triángulo equilátero.

k = 6 / 8 / 10 · carga útil neta 31 / 62 / 101 B

La carga útil neta es con ECC-M. Los tres tipos pueden llevar al lado un QR de respaldo, de modo que quede una vía donde un código TL no se pueda leer.

Cómo funciona

1. Celda = tres rombos

Un teselado rhombille divide cada celda hexagonal en las caras T, L y R.

2. Orden = símbolo

Ordenar las tres luminancias da 3! = 6 resultados — un dígito en base 6.

3. 3 dígitos = 1 símbolo

Reed–Solomon sobre el cuerpo primo GF(211) corrige los errores.

Qué se libera

Invariante ante transformaciones monótonas. Los cambios de iluminación global, el gamma y el mapeo tonal de una impresora son monótonos: no pueden alterar un orden. Si el orden sobrevive, el valor sobrevive.

El renderizador queda libre. El contrato de datos es solo «el orden entre las caras, más una separación mínima». Dentro de eso, el color, la textura, los degradados por cara y la animación están abiertos. Esa libertad es el sentido del formato.

Pero nada se vuelve bonito por sí solo. Lo que se abre es el contrato, no el resultado. Lo que dibuje dentro sigue siendo su trabajo.

Escáner — dónde estamos

El decodificador funciona. Los tres tipos se leen en fotos de dispositivos reales; queda subir la precisión y la velocidad. Cada tiempo de abajo es una decodificación de una foto fija tomada con un teléfono real, no el tiempo hasta el primer enganche ni una tasa de acierto en directo.

TipoFotos reales decodificadasUna decodificación en foto fijaValidación en directo
Type Y — cubo único3 / 3≈ 0.1 sfaltan más medidas
Type O — campo hexagonal3 / 3≈ 1.8 sfaltan más medidas
Type A — silueta triangular3 / 3≈ 0.86 sfaltan más medidas
Variante de QR central (los tres tipos)8 / 9faltan más medidas

Con el criterio de una decodificación de una foto fija, el Type Y es el más corto y O y A tardan más. El rediseño de los patrones localizadores y los reintentos de formato ampliaron el conjunto de fotos reales que se decodifican, a costa de más trabajo en algunos caminos; Y prueba primero un camino barato y solo hace un barrido completo tras un fallo. Estas cifras no deben leerse como tiempo hasta el primer enganche en directo.

El tiempo de una decodificación en foto fija no predice cómo se siente el escaneo en directo. En las primeras medidas sobre un dispositivo real, un fotograma rápido podía dar aun así un primer enganche lento cuando hacían falta muchos fotogramas antes de uno acertado, y el orden de los tipos difería de esta tabla de foto fija. Esa traza cubre un solo dispositivo y una muestra pequeña, así que todavía no asignamos una nota de uso en directo.

Las condiciones de captura también pesan. En la medición, 9 píxeles por celda fue el suelo de decodificación y, a la misma distancia, un objetivo ultra gran angular encuadra el código más pequeño y baja de esa línea (ultra gran angular 7.6 px falló / gran angular 9.1 px acertó). Por eso el escáner ofrece un selector de objetivo.

En la variante de QR central, un bloque QR sustituye al patrón localizador central. Sus patrones aportan el punto de entrada de posición y orientación con el que se decodifica el cuerpo TL de alrededor. El generador usa ya esta vía validada de forma predeterminada para los tipos O y A. Por defecto el QR sigue siendo un respaldo con un enlace al lector; la carga útil se queda en el cuerpo TL.

Medido el 2026-08-13 · muestra de 9 fotos con tres sensores de teléfono (ultra gran angular, gran angular, teleobjetivo) · lado corto 1440 px. La muestra es pequeña: léalo como un estado actual, no como una tasa de acierto.

Especificación e implementación

La especificación del formato y la implementación de referencia se publican bajo la Licencia Apache 2.0. JavaScript puro, sin cadena de compilación, cero dependencias en ejecución — funciona como un único archivo HTML.

Implementar solo el decodificador ya cuenta como implementación conforme. La adopción empieza por el lado que lee.

SitioFunciónEstado
tlcube.estre.soGeneradoractivo
tlscan.estre.soEscáneractivo — estado ›
tl.estre.soSitio de presentaciónestá aquí