TLcube

Le QR se lit bien.
Il n'a simplement jamais été beau

Code cube True 3D H sur le damier de transparence — aller à la carte H

Affiches, emballages, cartes de visite — le QR est partout, et poser un carré noir et blanc sur un design longuement travaillé a toujours laissé un regret. Mais s'il a cette allure, c'est pour une raison : c'est ce qu'on construit quand une caméra et un processeur de 1994 doivent pouvoir le lire.

Ces contraintes se sont largement levées. Les caméras de téléphone et la puissance de calcul ont de la marge. Alors, plutôt que de courir après la seule reconnaissance, nous avons dépensé cette marge du côté du plaisir des yeux. Il ne s'agit pas de remplacer le QR, mais de lui ajouter un siège voisin. Le résultat est un code-barres 3D — imprimé à plat, mais perçu en relief.

Types

Choisissez selon l'endroit où il sera posé. Les types plans partagent le même contrat de données et ne diffèrent que par la silhouette ; True 3D H est l’extension en cube réel du groupe Y, avec son propre format. Tous les codes ci-dessous encodent https://tl.estre.so.

Type Y — cube unique

Type Y — cube unique

Trois faces n×n. Une marque d'un seul tenant, adaptée à la signalétique et aux objets.

n = 13 / 21 / 25 · charge utile nette 31 / 98 / 141 B

True 3D H — extension en cube réel du groupe Y

Un format à part pour un vrai cube, avec des données distinctes sur 1…6 faces. Le générateur exporte aussi une vidéo de rotation (MP4), des patrons papier et des fichiers d’impression 3D.

H0…H8 · n = 13…45 · charge utile nette 3 faces 3…333 B · 6 faces 6…666 B (ECC-M, 3 tons)
Type O — champ hexagonal

Type O — champ hexagonal

La forme de base. Les cellules en losange se déploient autour d'un repère central.

k = 6 / 8 / 10 / 12 · charge utile nette 18 / 39 / 65 / 97 B
Type C — ultra-haute capacité à encoche

Type C — ultra-haute capacité à encoche

L’encoche à 3 h fixe l’orientation et le type dans la silhouette elle-même. La gamme C0–C3 est réservée au scan rapproché ; à partir de C1, rapprochez le code ou zoomez.

k = 14 / 16 / 18 / 20 · charge utile nette 130 / 172 / 220 / 255 B
Type A — silhouette triangulaire

Type A — silhouette triangulaire

Un cœur hexagonal complété de pièces d'angle, formant un triangle équilatéral.

k = 6 / 8 / 10 · charge utile nette 31 / 62 / 101 B
Type K — Hexagramme

Type K — Hexagramme

Un triangle uni à son image à 180°. Charge utile la plus grande à k égal.

k = 6 / 8 / 10 · charge utile nette 43 / 86 / 138 B

La charge utile nette est donnée pour ECC-M. Tous les types, H compris, peuvent porter un QR de secours à côté, si bien qu'il reste un chemin là où un code TL ne peut pas être lu. Pour H, il se place par défaut dans le coin supérieur gauche.

Pourquoi maintenant

Le QR était la bonne réponse à son époque. Deux valeurs, des modules carrés, de grands motifs de repérage — chacun de ces choix existait pour qu'une caméra faible puisse tout de même lire. Sous ces contraintes, renoncer à l'esthétique était rationnel.

Cette prémisse a changé. Les caméras de téléphone d'aujourd'hui n'ont plus rien à voir, et le traitement vidéo en temps réel tourne dans un navigateur. Cette marge pouvait aller à la densité — ou à l'apparence. C'est la raison d'être de ce format.

La densité, elle, a été sacrifiée. Les cellules en losange sont moins efficaces en surface que les modules carrés. Ce format ne concourt pas sur la densité. S'il faut transporter beaucoup, le QR reste l'outil adapté.

Fonctionnement

1. Cellule = trois losanges

Un pavage rhombille divise chaque cellule hexagonale en faces T, L et R.

2. Ordre = symbole

Classer les trois luminances donne 3! = 6 résultats — un chiffre en base 6.

3. 3 chiffres = 1 symbole

Un Reed–Solomon sur le corps premier GF(211) corrige les erreurs.

Ce que cela libère

Invariant par transformation monotone. Les changements d'éclairage global, le gamma et la table tonale d'une imprimante sont monotones — ils ne peuvent pas changer un ordre. Si l'ordre survit, la valeur survit.

Le rendu reste libre. Le contrat de données se réduit à « l'ordre entre les faces, plus un écart minimal ». À l'intérieur, la couleur, la matière, les dégradés par face et l'animation sont ouverts. Cette liberté est le cœur du format.

Cela ne rend rien beau tout seul. Ce qui s'ouvre, c'est le contrat, pas le résultat. Ce que vous dessinez à l'intérieur reste votre travail.

Scanner — où nous en sommes

Le décodeur fonctionne. Les quatre types se lisent sur des photos prises avec de vrais appareils ; reste à faire monter la précision et la vitesse. Chaque temps ci-dessous correspond à un décodage d'une photo fixe prise avec un vrai téléphone — ce n'est ni un temps de premier accrochage ni un taux de réussite en direct.

TypePhotos réelles décodéesUn décodage sur photo fixeValidation en direct
Type Y — cube unique9 / 16≈ 1.8 smesures en cours
Type O — champ hexagonal29 / 48≈ 1.9 smesures en cours
Type A — silhouette triangulaire18 / 19≈ 2.4 smesures en cours
Type K — hexagramme18 / 27≈ 3.1 smesures en cours
Variante QR central (les quatre types) · 2026-08-138 / 9—mesures en cours

Un décodage d’une seule photo fixe. Le Type O est désormais le plus rapide ; A, K et Y sont proches derrière. ⚠ Une version antérieure de cette page annonçait le Type Y comme le plus rapide : c’était un échantillon de 9 photos, et sur un échantillon élargi l’ordre s’est inversé. Ne lisez pas ces valeurs comme des temps de premier verrouillage en direct.

Le temps d'un décodage sur photo fixe ne prédit pas le ressenti d'un scan en direct. Lors des premières mesures sur appareil réel, une image rapide pouvait tout de même donner un premier accrochage lent lorsqu'il fallait beaucoup d'images avant une réussite, et le classement des types différait de ce tableau sur photo fixe. Ces relevés portent sur un seul appareil et un petit échantillon : nous n'attribuons donc pas encore de note d'usage en direct.

Les conditions de prise de vue comptent aussi. À la mesure, 9 pixels par cellule était le plancher de décodage, et à distance égale un objectif ultra grand-angle cadre le code plus petit et passe sous cette ligne (ultra grand-angle 7.6 px en échec / grand-angle 9.1 px en réussite). C'est pourquoi le scanner propose un choix d'objectif.

Dans la variante QR central, un bloc QR remplace le repère central. Ses motifs de repérage fournissent le point d'entrée en position et en orientation qui sert à décoder le corps TL environnant. Par défaut, le QR reste un secours qui porte un lien de lecture ; la charge utile, elle, reste dans le corps TL. Depuis le 2026-08-28, le générateur utilise par défaut, pour les types O, C, A et K, le repère TL central avec un QR de secours extérieur dans le coin supérieur gauche ; le QR central reste l'un des repères au choix. La ligne QR central du tableau ci-dessus mesure cette variante (campagne du 2026-08-13).

Le Type C et le True 3D H ne figurent pas dans le tableau ci-dessus ; pour H, ni taux de reconnaissance ni FPS en caméra réelle ne sont garantis. Le scanner a deux moteurs : R1 lit les types TL plans une image à la fois, et R2, le moteur par défaut, collecte les Types Y et H sur plusieurs images. Pour H, il ne livre le résultat qu’une fois les faces requises validées par RS/CRC. Dans les navigateurs dotés de BarcodeDetector, R2 lit aussi les codes QR ordinaires ; un lien lu dans un code QR ne s’ouvre jamais automatiquement — vérifiez l’adresse, puis touchez-le.

Mesuré le 2026-08-27 · échantillon de 110 photos (chacune essayée en 960 · 1440 px de petit côté). ⚠ L’essentiel de l’échantillon est photographié sur un écran : ce ne sont pas des chiffres d’impression ni de mise en situation. Et 123 des 233 images du corpus sont des prises limites conservées justement parce qu’elles ne se décodent pas encore — elles sont exclues ici. Seule la ligne QR central provient de la campagne du 2026-08-13.

Spécification et implémentation

La spécification du format et l'implémentation de référence sont publiées sous licence Apache 2.0. JavaScript vanilla, scripts de build Node.js dans le dépôt, zéro dépendance à l'exécution — cela tourne dans un seul fichier HTML.

N'implémenter que le décodeur suffit à être une implémentation conforme. L'adoption commence par le côté lecture.

SiteRôleÉtat
tlcube.estre.soGénérateuren ligne
tlscan.estre.soScanneren ligne — état ›
tl.estre.soSite de présentationvous êtes ici