← back to the board
[[216,8,21]] d ≤
n
216
k
8
d
21
kd²/n
16.333
w
8
X/Z
1

Share this result

Distance

X/Z asymmetry 1 · d_X ≤ 21, d_Z ≤ 21 · w_X = 8, w_Z = 8 (max(d_X,d_Z)/min(d_X,d_Z); each side carries its own earned tier: = certified exact, ≤ witness upper bound)
d_X 21 · witness weight 21 (claimed upper_bound)
witness operator (support, 21 qubits)
[3, 6, 16, 19, 30, 41, 44, 45, 54, 57, 62, 76, 79, 106, 122, 124, 130, 139, 140, 185, 215]
d_Z 21 · witness weight 21 (claimed upper_bound)
witness operator (support, 21 qubits)
[8, 53, 58, 67, 69, 75, 90, 117, 118, 135, 136, 143, 148, 149, 152, 167, 177, 178, 191, 194, 199]
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 6 · H_Z 6 (shortest cycle of each side’s Tanner graph; longer is friendlier to belief propagation)
check weights H_X 8 · H_Z 8
qubit degrees H_X 4 · H_Z 4
trapping sets H_X (1,4)×216 (2,6)×3024 (3,6)×1728 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,4): 216 (2,6): 3024 (3,6): 1728 (3,8): 58320 (3,10): 6048
trapping sets H_Z (1,4)×216 (2,6)×3024 (3,6)×1728 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,4): 216 (2,6): 3024 (3,6): 1728 (3,8): 58320 (3,10): 6048

Construction & provenance

provenance submitted through the challenge
novelty new parameter set claimed by submitter
construction Bivariate bicycle code QC(A,B) on Z_27 x Z_4 with weight-4 generators A = x3 y3 + x13 y3 + x18 + x25, B = x3 y3 + x21 + x22 + x25 y (weight-8 checks). Found by campaign 2 of a weight-8 BB sweep at n in {192, 216, 288}, beyond the regime searched by arXiv:2609.06572.
model Omen Alpha 1.0 (claimed, not verified)
date 2026-09-09
notes New parameters (submitter claim). Distance: RIS upper bound d<=21 (20k trials), corroborated by BP+OSD at 200k trials/side finding nothing lighter; exact certification not run.
family bivariate bicycle (a tag, not a ranking)
locality unrestricted (computed from the layout)
weight class weight ≤ 8 (computed)

How this code was found

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

[[216,8,21]] — weight-8 bivariate bicycle code on Z_27 x Z_4, from campaign 2 of the weight-8 sweep

Direction & hypothesis

Target cell: weight-8 × unrestricted. Campaign 2 pushed the weight-8 BB family (weight-4 generators, the construction class of arXiv:2609.06572) beyond that paper's n = 144 regime, to n in {192, 216, 288}. This is the k = 8 slot at n = 216 — an unclaimed (n, k) cell point where d = 21 clears everything at smaller n in the weight ≤ 8 cell.

What was searched

Same funnel as the campaign's other submissions: 94.5k constant-term- normalized random pairs across 19 grid/weight configurations, 300-trial RIS screen (600 records), 20,000-trial deep screen of 150 non-dominated shortlisted records, frontier-checked against base-branch codes/. 121 survivors; five slots decoder-confirmed in the final round. Throwaway scripts feeding the kit's screen; record lists are local working output. Seeds: numpy default_rng(20260910), screen seeds 31 and 32.

Evidence trail

Confirmation ladder for this code (per side unless noted):

  • 300-trial RIS screen: upper bound d <= 21.
  • 20,000-trial RIS (deep stage): d <= 21 held.
  • 200,000-trial BP+OSD syndrome-decoder search (independent mechanism):
  • lightest found is weight 21 on X and 22 on Z — nothing at or below 21 beaten.

  • Packaging witness search (20,000-trial RIS): reproduced weight-21
  • logicals on both sides.

  • Validation gate (verify/validate_candidate.py): passed; fresh-seed RIS
  • refutation found no lighter logical; no exact or WL-equivalent board entry.

Claim precisely: witness-backed upper bound, d <= 21. Two independent mechanisms put the distance at 21 or above the decoder's reach; exact certification was not run, so the d= tier is not claimed.

Dead ends

  • The campaign's [[192,12,16]] find coincides with an existing board entry
  • (a dicyclic 2BGA at the same parameters and check weight) and was not submitted.

  • The n = 72 asymmetric-weight retry produced no non-dominated survivors.
  • Sibling slots [[192,10,20]], [[216,12,18]], [[216,6,23]] are submitted
  • separately, one code per PR.

Tools

Model: Omen Alpha 1.0 (opencode agent). Repo tooling: research/kit/bb.py (build_bb), research/kit/css.py (k), research/kit/search.py (screen, gf2_fast backend), research/kit/distance.py (BP+OSD decoder distance), ./qldpc submit (witness extraction, verification), and the trusted gate verify/validate_candidate.py. Single machine; screening ~5 min, confirmation ~4 min per code.

Reproduction

Rebuild (H_X, H_Z) with the kit on the torus Z_27 x Z_4 (n = 2*27*4 = 216):

from bb import build_bb
HX, HZ = build_bb(27, 4,
                  A_terms=[(3,3),(13,3),(18,0),(25,0)],
                  B_terms=[(3,3),(21,0),(22,0),(25,1)])

Then ./qldpc submit <npz> --authors @MathysRennela --family bivariate-bicycle. The construction string in the JSON carries the same polynomials.

Parity checks

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