TLcube

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

Código cubo True 3D H sobre o xadrez de transparência — ir para o cartão H

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. O resultado é um código de barras 3D — impresso em plano, mas percebido em relevo.

Tipos

Escolha consoante o sítio onde vai ficar. Os tipos planos partilham o mesmo contrato de dados e diferem apenas na silhueta; True 3D H é a extensão de cubo real do grupo Y, com um formato próprio. 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

True 3D H — extensão de cubo real do grupo Y

Um formato próprio para um cubo real, com dados diferentes em 1…6 faces. O gerador também exporta um vídeo de rotação (MP4), moldes de papel e ficheiros de impressão 3D.

H0…H8 · n = 13…45 · carga útil líquida 3 faces 3…333 B · 6 faces 6…666 B (ECC-M, 3 tons)
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 / 12 · carga útil líquida 18 / 39 / 65 / 97 B
Type C — capacidade ultra com entalhe

Type C — capacidade ultra com entalhe

O entalhe das 3 horas fixa a orientação e o tipo na própria silhueta. A gama C0–C3 destina-se a leitura de perto; a partir de C1, aproxime o código ou amplie a imagem.

k = 14 / 16 / 18 / 20 · carga útil líquida 130 / 172 / 220 / 255 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
Type K — Hexagrama

Type K — Hexagrama

Um triângulo unido à sua imagem de 180°. Maior carga útil com o mesmo k.

k = 6 / 8 / 10 · carga útil líquida 43 / 86 / 138 B

A carga útil líquida é para ECC-M. Todos os tipos, incluindo H, podem levar ao lado um QR de reserva, de modo que reste um caminho onde um código TL não possa ser lido. Em H fica, por predefinição, no canto superior esquerdo.

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.

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 quatro 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 único9 / 16≈ 1.8 sfaltam mais medições
Type O — campo hexagonal29 / 48≈ 1.9 sfaltam mais medições
Type A — silhueta triangular18 / 19≈ 2.4 sfaltam mais medições
Type K — hexagrama18 / 27≈ 3.1 sfaltam mais medições
Variante QR central (os quatro tipos) · 2026-08-138 / 9—faltam mais medições

Uma descodificação de uma única foto fixa. O Type O é agora o mais rápido; A, K e Y ficam próximos atrás. ⚠ Uma versão anterior desta página dizia que o Type Y era o mais rápido: era uma amostra de 9 fotos e, com uma amostra mais ampla, a ordem inverteu-se. Não leia isto como tempo de primeiro engate em direto.

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. Por predefinição, o QR continua a ser uma reserva com uma ligação para o leitor; a carga útil fica no corpo TL. Desde 2026-08-28, o gerador usa por predefinição, nos tipos O, C, A e K, o localizador TL central com um QR de reserva exterior no canto superior esquerdo; o QR central continua a ser uma das opções de localizador. A linha do QR central da tabela acima mede essa variante (ronda de 2026-08-13).

O Type C e o True 3D H não constam da tabela acima; para o H não são garantidas taxas de reconhecimento nem FPS com câmaras reais. O scanner tem dois motores: o R1 lê os tipos TL planos um fotograma de cada vez e o R2, o predefinido, reúne os tipos Y e H ao longo de vários fotogramas. No H só apresenta o resultado depois de as faces necessárias passarem na validação RS/CRC. Nos navegadores com BarcodeDetector, o R2 também lê códigos QR comuns; uma ligação lida de um código QR nunca é aberta automaticamente — confirme o endereço e depois toque nela.

Medido a 2026-08-27 · amostra de 110 fotos (cada uma tentada a 960 · 1440 px de lado curto). ⚠ A maior parte da amostra está fotografada a partir de um ecrã: não são números de impressão nem de colocação real. Além disso, 123 dos 233 fotogramas do corpus são capturas-limite guardadas precisamente por ainda não descodificarem — ficam aqui excluídas. Só a linha do QR central vem da ronda anterior de 2026-08-13.

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, scripts de compilação Node.js no repositório, 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