Figures and sources
Every number, the script that reproduces it, and the line it prints
The figures put forward on this site are not claims to be taken on trust. Each one comes out of a script in the repository, which reads the published data and runs again in a few minutes. This page brings them together: the statement, the command, and what it prints — the lines that carry the figure, exactly as you will get them by running it yourself (the scripts print in French). Only the running time varies from one machine to another. The code is under AGPL v3, in the GitHub repository.
| Figure | What it states | Where it is checked |
|---|---|---|
| 111 | plates of the treatise | Zenodo |
| 2 | ansate crosses of order 6 | croix_ansee.py |
| 256 | solar squares of order 6, 128 per cross, complete set | enum_criteres.py, verif_protocole.py |
| 64 | magic squares of order 12 by assembly, constant 870 | verif_protocole.py |
| 360 | layers: 15 axis families × 4 natures × 6 levels | referent_360_v3.json |
| 8 of 15 | families admitted by the half-shift criterion | cube_edges.py |
| 512 / 256 / 128 | unified grids, tilings of the plane, symmetry orbits | cube_edges.py |
| 256 / 128 / 64 | among them, those that close up on the cube | cube_edges.py |
| 256 bits | Carter's key size; the geometry adds nothing | AES-256-GCM and XChaCha20-Poly1305 standards |
| 8191 / 4095 | distinct two-colour figures by XOR of 16 axis instances, triangle grain / cell grain | tools/bicolore_galerie_comptes.mjs |
| 13 / 12 | GF(2) rank of the 16 instances, triangle grain / cell grain — on C1, 12 if the figures keep the polarity the rule gives them (11 if a reference region is forced to be light, [A] §5.4); on C8 nothing depends on the convention | tools/bicolore_galerie_comptes.mjs |
| 144 | two-colour figures that close on the cube at cell grain (π = identity) | assets/bicolore-cube-c1.mjs |
| 142 | patterns of the two-colour gallery: the 144 closed ones, minus plain light and plain dark | tools/bicolore_galerie_data.mjs, data/bicolore_galerie_v1.json |
| 7 | two-colour families (YIN/mutant YIN) that close on the cube on their own, minimal chord = 1 instance — not to be confused with another “7” in the repository about mutant YANG/YANG families and an entirely different property (drawn lines vs. band systems) | tools/bicolore_galerie_comptes.mjs |
What each script prints
The two ansate crosses
The enumeration starts from the possible pairings, without assuming symmetry, and applies the criteria of plate 040. Central symmetry comes out of it as a consequence — 8 out of 8 — not as an assumption.
python tools/croix_ansee.py
choix bruts (2 paires par ligne, 6 lignes) : 64 appariements cohérents : 8 dont à symétrie centrale : 8 critères II–III sur les lignes seules : 8 critères II–III sur lignes et colonnes : 2
a few seconds — the script then draws the two crosses
The 256 solar squares
Two scripts meet here. enum_criteres.py enumerates without reading any data: it starts from the criteria and counts. verif_protocole.py starts from the 256 published squares and checks that they are magic. The two paths meet on the same number.
python tools/enum_criteres.py
jeux R/B : 48384 colorations I–IV : 1492352 ; magiques complètes : 128 ; temps 180s avec la condition (b) (…) : 128 ; magiques : 128
about three minutes; the time shown varies with the machine
The million and a half is the set under the four criteria alone. The 128 appear only when the row structure of the cross is imposed as well. These 128 are those of one cross; the second, mirror image of the first, gives the other 128 — hence 256.
python tools/verif_protocole.py— excerpt of the lines that carry the figures
§5 carrés magiques complets (lignes, colonnes, deux diagonales) : 256/256 §2 cellules diagonales complémentaires par symétrie centrale : 256/256 §5/§7 ordre 12, les 64 assemblages 2×2 (constante 870) : 64/64
a few seconds
The 360 layers
The vocabulary of patterns: 15 axis families × 4 natures make 60 images, each drawn on six levels — hence 360 layers. The number is carried by the data file itself, not by a comment.
python -c "import json; print(len(json.load(open('data/referent_360_v3.json'))['calques']))"
360
The half-shift criterion and the cube
A pattern is unified if translating it by half a period amounts to swapping its two images. The criterion keeps only 8 families out of 15 — those with exactly one diagonal base, yang or mutant yang — and exactly half of the grids obtained close up on the six faces of a cube.
python tools/cube_edges.py— excerpt of the lines that carry the figures
familles : 15 ; images : 60
couples unifiés (6 couples testés par famille) : 16 dans 8 familles
Corpus (Théorème 2)
grilles distinctes : 512
pavages distincts : 256
Règle d'arête (Théorème 3)
grilles distinctes : 256
pavages distincts : 128
Orbites de Γ (Section 4 et Remarque de la Section 6)
corpus : 128 orbites ; grilles du corpus par orbite : {4: 128}
retenues : 64 ; exclues : 64 ; orbites mixtes : 0 ✓
about forty-five seconds
The two figures without a script
The 111 plates are counted in the book itself: the four published PDFs have 111 pages each. The 256 bits are the key size of the two standard ciphers that Carter uses in cascade, without modifying them: AES-256-GCM on top of XChaCha20-Poly1305, under independent keys. The geometry adds nothing to security, and the proofs hold even if the layout is known.
To go further: the lexicon for the notions, the book online, or the documentary profile for the patents and publications. Content under CC BY-NC 4.0, code under AGPL v3.

