← back to the board
[[225,1,15]] d ≤
n
225
k
1
d
15
kd²/n
1.0
w
4
X/Z
1
g
1
r
1.4142
layers
1
swaps
0

Share this result

Distance

X/Z asymmetry 1 · d_X ≤ 15, d_Z ≤ 15 · w_X = 4, w_Z = 4 (max(d_X,d_Z)/min(d_X,d_Z); each side carries its own earned tier: = certified exact, ≤ witness upper bound)
d_X 15 · witness weight 15 (claimed upper_bound)
witness operator (support, 15 qubits)
[12, 13, 26, 29, 40, 54, 68, 75, 82, 91, 96, 107, 110, 123, 124]
d_Z 15 · witness weight 15 (claimed upper_bound)
witness operator (support, 15 qubits)
[1, 15, 30, 46, 61, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210]
certificate none yet · distance stands as a self-certified upper bound (d ≤)

Diagnostics

computed by the verifier from the parity checks, the layout, and the stored witnesses; shown as evidence, not used for ranking
girth H_X 8 · H_Z 8 (shortest cycle of each side’s Tanner graph; longer is friendlier to belief propagation)
check weights H_X 2–4 (mean 3.75) · H_Z 2–4 (mean 3.75)
qubit degrees H_X 1–2 (mean 1.867) · H_Z 1–2 (mean 1.867)
trapping sets H_X (1,1)×30 (2,0)×14 (3,1)×166 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,1): 30 (1,2): 195 (2,0): 14 (2,1): 58 (2,2): 530 (3,1): 166 (3,2): 1461 (3,3): 28 (3,4): 336
trapping sets H_Z (1,1)×30 (2,0)×14 (3,1)×166 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,1): 30 (1,2): 195 (2,0): 14 (2,1): 58 (2,2): 530 (3,1): 166 (3,2): 1461 (3,3): 28 (3,4): 336
witness diameter X 14.5602 · Z 14.0357 (Euclidean support diameter of the stored distance witnesses in the layout; an upper bound on the exhibited logicals’ spread, not a minimum over all logicals)

Verified 2D layout

as measured by the verifier: every check drawn over the submitted coordinates; the interaction radius is the longest dashed pair
r = 1.414
X checkZ checkqubit site (225)dashed: the pair setting the interaction radiushover a check to isolate its qubits; click to pin — repeated clicks cycle through overlapping checks; click empty space to release
routing cost 0 nearest-neighbor SWAPs per round in total, at most 0 for one check (heuristic: MST lower bound on the layout, with one lattice step = the minimum qubit spacing 1; not a rank)

Construction & provenance

provenance submitted through the challenge
novelty novelty not audited
construction Rotated surface code on an open 15x15 grid: bulk 2x2 plaquette checks colored by (i+j) parity, weight-2 boundary pairs on all four sides; distance 15.
date 2026-09-20
notes Rotated surface/toric ladder fill: standard topological configuration, distance exact by construction (a row or column of plaquettes is a weight-d logical; none lighter exists). Staged for review; novelty vs the wider literature unverified beyond the cited family origin.
family topological (a tag, not a ranking)
locality 2D-local single (computed from the layout)
weight class weight ≤ 4 (computed)

How this code was found

the research note submitted with this code · raw markdown · all notes

[[225,1,15]] rotated surface code (weight-4, 2D-local single-layer)

Direction & hypothesis

The board's least populated primary-track cell is weight-4 x local-2d-single (175 of 1,126 entries at the time of writing): the surface-code-like regime that most qLDPC families (weight >= 6 checks) cannot reach. The standard topological ladders are only seeded at a few sizes on the board (rotated surface [[L^2,1,L]] at L = 5,7,9,11; rotated toric [[L^2,2,L]] at L = 4,6,8), so the hypothesis was that the missing square sizes extend this cell's Pareto frontier on d, at both k = 1 (surface) and k = 2 (toric).

What was searched

Full enumeration of both rotated ladders under the board's admission caps (n <= 700, or the extended tier n <= 1000 with w <= 8 and d <= 40; w = 4 throughout): every square L with admissible(n, 4, L) true, plus every rectangular (L1, L2) configuration -- 1,270 configurations in total. Each was packaged with the kit's own submit.make_submission (RIS witness search) and passed through the trusted gate verify/validate_candidate.py. The gate's novelty verdict split the enumeration exactly along a structural line: squares advance, rectangles never (each [[L1*L2,1,L2]] is strictly dominated by its own square [[L2^2,1,L2]]: same k, same d, same weight, strictly fewer qubits). Only board-advancing survivors were kept; this PR is one of them.

Evidence trail

  • Witness search (kit surrogate, RIS): <= 3,000 trials/side scaled with n;
  • the lightest logical found on each side has weight 15 (a row or column of plaquettes), matching the exact-by-construction distance.

  • Trusted gate (verify/validate_candidate.py): verify ok, distance not
  • refuted (independent fresh-seed RIS search found nothing lighter), not a board duplicate (fingerprint and WL signature checked against the whole board), and board-advancing in the weight-4 x local-2d-single cell.

  • Claim carried: witness-backed upper bound, d <= 15. The distance is exact
  • by construction (no logical lighter than a minimum non-contractible chain exists on the open planar lattice), but it is submitted as an upper bound; a maintainer can run verify/certify.py to upgrade it.

Dead ends

  • Rectangular rotated surface/toric codes: all dominated by their own square
  • (see above) -- generated and gate-checked, then discarded.

  • [[9,1,3]] (dominated by the seeded [[7,1,3]]) and [[8,2,2]] (dominated by
  • [[4,2,2]]): gate-flagged as not board-advancing, discarded.

  • Rotated toric L = 10,12,14: parameter sets already on the board
  • ([[100,2,10]] generalized-bicycle, [[144,2,12]] trivariate-bicycle, [[196,2,14]] bivariate-bicycle), skipped as parameter duplicates.

  • An initial torus layout used a ring fold with a seam gap of 3 grid units,
  • which pushed the measured interaction radius past the single-layer cap for L >= 10 (demoting those codes to local-2d-bilayer). The seeded entries' fold convention (seam gap 1) keeps every plaquette diameter at 2*sqrt(2) for every L; that is what this submission uses.

  • Unrotated surface [[2d^2-2d+1,1,d]] and 2D color codes were attempted for a
  • companion fill but their from-scratch constructions failed self-checks; deferred until built from published constructions.

Tools

GLM 5.3 Flash (Zed coding agent); repo kit only (research/kit/submit.py, verify/validate_candidate.py, qldpc_verify), numpy-only constructions. Constructions were verified bit-for-bit (check-support set equality) against the board's own seeded codes/25-1-5.json (L = 5,7,9) and codes/16-2-4.json (L = 4,6,8) before scaling to new sizes.

Reproduction

Rotated surface code [[L^2,1,L]], L = 15 (odd):

  • qubits q = (i, j) -> q = i*L + j on an open L x L grid, unit-spaced layout
  • coordinates (i, j), single layer;

  • for each (i, j) in {0..L-2}^2 the 2x2 plaquette
  • {(i,j), (i,j+1), (i+1,j), (i+1,j+1)} (clipped to the grid) is an X check when i+j is even and a Z check when i+j is odd;

  • boundary pairs: plaquettes at (i, -1) for odd i and (i, L-1) for even i are
  • X checks; plaquettes at (-1, j) for even j and (L-1, j) for odd j are Z checks (each clips to a weight-2 pair);

  • (i+j) parity swapped gives the X<->Z-conjugated variant, an equivalent code.
  • Distance: a full row or column of plaquettes is a weight-L logical; none lighter exists (standard surface-code result).

Parity checks

X-checks 112 (max weight 4) · Z-checks 112 (max weight 4)
H_X (112 checks, sparse supports)
[0, 1, 15, 16] [2, 3, 17, 18] [4, 5, 19, 20] [6, 7, 21, 22] [8, 9, 23, 24] [10, 11, 25, 26] [12, 13, 27, 28] [16, 17, 31, 32] [18, 19, 33, 34] [20, 21, 35, 36] [22, 23, 37, 38] [24, 25, 39, 40] [26, 27, 41, 42] [28, 29, 43, 44] [30, 31, 45, 46] [32, 33, 47, 48] [34, 35, 49, 50] [36, 37, 51, 52] [38, 39, 53, 54] [40, 41, 55, 56] [42, 43, 57, 58] [46, 47, 61, 62] [48, 49, 63, 64] [50, 51, 65, 66] [52, 53, 67, 68] [54, 55, 69, 70] [56, 57, 71, 72] [58, 59, 73, 74] [60, 61, 75, 76] [62, 63, 77, 78] [64, 65, 79, 80] [66, 67, 81, 82] [68, 69, 83, 84] [70, 71, 85, 86] [72, 73, 87, 88] [76, 77, 91, 92] [78, 79, 93, 94] [80, 81, 95, 96] [82, 83, 97, 98] [84, 85, 99, 100] [86, 87, 101, 102] [88, 89, 103, 104] [90, 91, 105, 106] [92, 93, 107, 108] [94, 95, 109, 110] [96, 97, 111, 112] [98, 99, 113, 114] [100, 101, 115, 116] [102, 103, 117, 118] [106, 107, 121, 122] [108, 109, 123, 124] [110, 111, 125, 126] [112, 113, 127, 128] [114, 115, 129, 130] [116, 117, 131, 132] [118, 119, 133, 134] [120, 121, 135, 136] [122, 123, 137, 138] [124, 125, 139, 140] [126, 127, 141, 142] [128, 129, 143, 144] [130, 131, 145, 146] [132, 133, 147, 148] [136, 137, 151, 152] [138, 139, 153, 154] [140, 141, 155, 156] [142, 143, 157, 158] [144, 145, 159, 160] [146, 147, 161, 162] [148, 149, 163, 164] [150, 151, 165, 166] [152, 153, 167, 168] [154, 155, 169, 170] [156, 157, 171, 172] [158, 159, 173, 174] [160, 161, 175, 176] [162, 163, 177, 178] [166, 167, 181, 182] [168, 169, 183, 184] [170, 171, 185, 186] [172, 173, 187, 188] [174, 175, 189, 190] [176, 177, 191, 192] [178, 179, 193, 194] [180, 181, 195, 196] [182, 183, 197, 198] [184, 185, 199, 200] [186, 187, 201, 202] [188, 189, 203, 204] [190, 191, 205, 206] [192, 193, 207, 208] [196, 197, 211, 212] [198, 199, 213, 214] [200, 201, 215, 216] [202, 203, 217, 218] [204, 205, 219, 220] [206, 207, 221, 222] [208, 209, 223, 224] [14, 29] [15, 30] [44, 59] [45, 60] [74, 89] [75, 90] [104, 119] [105, 120] [134, 149] [135, 150] [164, 179] [165, 180] [194, 209] [195, 210]
H_Z (112 checks, sparse supports)
[1, 2, 16, 17] [3, 4, 18, 19] [5, 6, 20, 21] [7, 8, 22, 23] [9, 10, 24, 25] [11, 12, 26, 27] [13, 14, 28, 29] [15, 16, 30, 31] [17, 18, 32, 33] [19, 20, 34, 35] [21, 22, 36, 37] [23, 24, 38, 39] [25, 26, 40, 41] [27, 28, 42, 43] [31, 32, 46, 47] [33, 34, 48, 49] [35, 36, 50, 51] [37, 38, 52, 53] [39, 40, 54, 55] [41, 42, 56, 57] [43, 44, 58, 59] [45, 46, 60, 61] [47, 48, 62, 63] [49, 50, 64, 65] [51, 52, 66, 67] [53, 54, 68, 69] [55, 56, 70, 71] [57, 58, 72, 73] [61, 62, 76, 77] [63, 64, 78, 79] [65, 66, 80, 81] [67, 68, 82, 83] [69, 70, 84, 85] [71, 72, 86, 87] [73, 74, 88, 89] [75, 76, 90, 91] [77, 78, 92, 93] [79, 80, 94, 95] [81, 82, 96, 97] [83, 84, 98, 99] [85, 86, 100, 101] [87, 88, 102, 103] [91, 92, 106, 107] [93, 94, 108, 109] [95, 96, 110, 111] [97, 98, 112, 113] [99, 100, 114, 115] [101, 102, 116, 117] [103, 104, 118, 119] [105, 106, 120, 121] [107, 108, 122, 123] [109, 110, 124, 125] [111, 112, 126, 127] [113, 114, 128, 129] [115, 116, 130, 131] [117, 118, 132, 133] [121, 122, 136, 137] [123, 124, 138, 139] [125, 126, 140, 141] [127, 128, 142, 143] [129, 130, 144, 145] [131, 132, 146, 147] [133, 134, 148, 149] [135, 136, 150, 151] [137, 138, 152, 153] [139, 140, 154, 155] [141, 142, 156, 157] [143, 144, 158, 159] [145, 146, 160, 161] [147, 148, 162, 163] [151, 152, 166, 167] [153, 154, 168, 169] [155, 156, 170, 171] [157, 158, 172, 173] [159, 160, 174, 175] [161, 162, 176, 177] [163, 164, 178, 179] [165, 166, 180, 181] [167, 168, 182, 183] [169, 170, 184, 185] [171, 172, 186, 187] [173, 174, 188, 189] [175, 176, 190, 191] [177, 178, 192, 193] [181, 182, 196, 197] [183, 184, 198, 199] [185, 186, 200, 201] [187, 188, 202, 203] [189, 190, 204, 205] [191, 192, 206, 207] [193, 194, 208, 209] [195, 196, 210, 211] [197, 198, 212, 213] [199, 200, 214, 215] [201, 202, 216, 217] [203, 204, 218, 219] [205, 206, 220, 221] [207, 208, 222, 223] [0, 1] [211, 212] [2, 3] [213, 214] [4, 5] [215, 216] [6, 7] [217, 218] [8, 9] [219, 220] [10, 11] [221, 222] [12, 13] [223, 224]
Code ID 225-1-15 · download JSON · raw on GitHub