TLcube

O QR lê-se bem.
Só nunca foi bonito

Cartazes, embalagens, cartões de visita — o QR está em todo o lado, e pousar um quadrado a preto e branco sobre um design trabalhado durante semanas sempre custou. Mas o QR tem este aspeto por uma razão: é o que se constrói quando uma câmara e um processador de 1994 têm de conseguir lê-lo.

Essas restrições caíram em grande parte. As câmaras dos telemóveis e o poder de cálculo têm folga. Por isso, em vez de perseguir apenas o reconhecimento, essa folga foi gasta em valer a pena olhar. Não é um substituto do QR: é um lugar ao lado.

Porquê agora

O QR foi a resposta certa para o seu tempo. Dois valores, módulos quadrados, padrões localizadores grandes — cada uma dessas escolhas existia para que mesmo uma câmara fraca conseguisse ler. Com essas restrições, abdicar da estética era racional.

Essa premissa mudou. As câmaras dos telemóveis de hoje não se comparam, e o processamento de vídeo em tempo real corre dentro de um navegador. Essa folga podia ir para a densidade — ou podia ir para o aspeto. É por isso que este formato existe.

Em troca, abdicou-se da densidade. As células em losango aproveitam pior a área do que os módulos quadrados. Este formato não compete em densidade. Se for preciso levar muito, a ferramenta certa é o QR.

Três tipos

Escolha consoante o sítio onde vai ficar. Os três partilham o mesmo contrato de dados e diferem apenas na silhueta. Todos os códigos abaixo contêm https://tl.estre.so.

Type Y — cubo único

Type Y — cubo único

Três faces n×n. Uma marca de uma só peça, boa para sinalética e merchandising.

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

Type O — campo hexagonal

A forma base. As células em losango estendem-se à volta de um padrão localizador central.

k = 6 / 8 / 10 · carga útil líquida 18 / 39 / 65 B
Type A — silhueta triangular

Type A — silhueta triangular

Um núcleo hexagonal mais remendos de canto, formando um triângulo equilátero.

k = 6 / 8 / 10 · carga útil líquida 31 / 62 / 101 B

A carga útil líquida é para ECC-M. Os três tipos podem levar ao lado um QR de reserva, de modo que reste um caminho onde um código TL não possa ser lido.

Como funciona

1. Célula = três losangos

Uma pavimentação rhombille divide cada célula hexagonal nas faces T, L e R.

2. Ordem = símbolo

Ordenar as três luminâncias dá 3! = 6 resultados — um dígito em base 6.

3. 3 dígitos = 1 símbolo

Reed–Solomon sobre o corpo primo GF(211) corrige os erros.

O que isto liberta

Invariante a transformações monótonas. As variações de iluminação global, o gama e o mapeamento tonal de uma impressora são monótonos: não conseguem trocar uma ordem. Se a ordem sobrevive, o valor sobrevive.

O renderizador fica livre. O contrato de dados é apenas «a ordem entre as faces, mais uma separação mínima». Dentro disso, a cor, a textura, os gradientes por face e a animação estão todos abertos. É essa liberdade que dá sentido ao formato.

Mas nada fica bonito sozinho. O que se abre é o contrato, não o resultado. O que desenhar lá dentro continua a ser trabalho seu.

Scanner — ponto de situação

O descodificador funciona. Os três tipos leem-se a partir de fotos de dispositivos reais; falta subir a precisão e a velocidade. Cada tempo abaixo é uma descodificação de uma foto fixa tirada com um telemóvel real, não o tempo até à primeira fixação nem uma taxa de êxito ao vivo.

TipoFotos reais descodificadasUma descodificação em foto fixaValidação ao vivo
Type Y — cubo único3 / 3≈ 0.1 sfaltam mais medições
Type O — campo hexagonal3 / 3≈ 1.8 sfaltam mais medições
Type A — silhueta triangular3 / 3≈ 0.86 sfaltam mais medições
Variante de QR central (os três tipos)8 / 9faltam mais medições

No critério de uma descodificação de uma foto fixa, o Type Y é o mais curto e O e A demoram mais. A reformulação dos padrões localizadores e as novas tentativas de formato alargaram o conjunto de fotos reais que se descodificam, à custa de mais trabalho em alguns caminhos; o Y tenta primeiro um caminho barato e só faz uma varredura completa depois de falhar. Estes números não devem ser lidos como tempo até à primeira fixação ao vivo.

O tempo de uma descodificação em foto fixa não prevê a sensação da leitura ao vivo. Nas primeiras medições em dispositivo real, um fotograma rápido podia ainda assim dar uma primeira fixação lenta quando eram precisos muitos fotogramas antes de um bem-sucedido, e a ordem dos tipos diferia desta tabela de foto fixa. Esse registo abrange um só dispositivo e uma amostra pequena, pelo que ainda não atribuímos uma classificação de uso ao vivo.

As condições de captura também pesam. Na medição, 9 píxeis por célula foi o limite inferior de descodificação e, à mesma distância, uma objetiva ultra grande-angular enquadra o código mais pequeno e desce abaixo dessa linha (ultra grande-angular 7.6 px falhou / grande-angular 9.1 px conseguiu). É por isso que o scanner oferece a escolha da objetiva.

Na variante de QR central, um bloco QR substitui o padrão localizador central. Os seus padrões dão o ponto de entrada de posição e orientação com que se descodifica o corpo TL em redor. O gerador usa agora este caminho validado por predefinição nos tipos O e A. Por predefinição, o QR continua a ser uma reserva com uma ligação para o leitor; a carga útil fica no corpo TL.

Medido a 2026-08-13 · amostra de 9 fotos com três sensores de telemóvel (ultra grande-angular, grande-angular, teleobjetiva) · lado curto 1440 px. A amostra é pequena — leia isto como um estado atual, não como uma taxa de êxito.

Especificação e implementação

A especificação do formato e a implementação de referência estão publicadas sob a Licença Apache 2.0. JavaScript simples, sem cadeia de compilação, zero dependências em execução — funciona como um único ficheiro HTML.

Implementar apenas o descodificador já conta como implementação conforme. A adoção começa pelo lado que lê.

SitePapelEstado
tlcube.estre.soGeradorativo
tlscan.estre.soScannerativo — estado ›
tl.estre.soSite de apresentaçãoestá aqui