← back to the board
[[288,12,24]] d ≤
n
288
k
12
d
24
kd²/n
24.0
w
8
X/Z
1

Share this result

Distance

X/Z asymmetry 1 · d_X ≤ 24, d_Z ≤ 24 · 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 24 · witness weight 24 (claimed upper_bound)
witness operator (support, 24 qubits)
[12, 18, 53, 59, 62, 68, 72, 75, 77, 78, 83, 92, 96, 132, 137, 138, 149, 155, 174, 231, 233, 237, 242, 252]
d_Z 24 · witness weight 24 (claimed upper_bound)
witness operator (support, 24 qubits)
[32, 42, 50, 51, 53, 59, 120, 141, 146, 147, 149, 152, 188, 192, 206, 207, 209, 212, 213, 216, 222, 237, 272, 282]
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)×288 (2,6)×4032 (3,6)×2160 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_X
(1,4): 288 (2,6): 4032 (3,6): 2160 (3,8): 78192 (3,10): 8064
trapping sets H_Z (1,4)×288 (2,6)×4032 (3,6)×2160 (smallest syndrome weight at each size, connected sets of up to 3 qubits)
full (size, syndrome weight): count census for H_Z
(1,4): 288 (2,6): 4032 (3,6): 2160 (3,8): 78192 (3,10): 8064

Construction & provenance

provenance submitted through the challenge
novelty new parameter set claimed by submitter
construction Bivariate bicycle code QC(A,B) on Z_12 x Z_12 with weight-4 generators A = x y4 + x2 y3 + x3 y7 + x6 y6, B = x2 y6 + x3 y9 + x4 y7 + x9 y7 (weight-8 checks). Found by campaign 2 of a weight-8 BB sweep at n=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<=24 (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

[[288,12,24]] — weight-8 bivariate bicycle code on Z_12 x Z_12, 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}. At n = 288 the k = 12 slot had no weight-8 entries on the board at all; the target was the rate-1/24 regime where kd²/n ~ 24 would rival the published weight-8 bar ([[168,20,14]] at 23.3).

What was searched

Campaign 2 sampled 94.5k constant-term-normalized random pairs across 19 grid/weight configurations — n = 72 retry with asymmetric 3+5 / 2+6 weights (no survivors), n = 192, n = 216, n = 288 with 4+4 and 3+5 profiles. Screened at 300 RIS trials (600 records), 150 non-dominated shortlisted records deep-screened at 20,000 RIS trials, frontier-checked against the live board (base-branch codes/, so open PRs do not contaminate the comparison). 121 survivors; the three n = 288 standouts were decoder-confirmed. 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 <= 24.
  • 20,000-trial RIS (deep stage): d <= 24 held.
  • 200,000-trial BP+OSD syndrome-decoder search (independent mechanism):
  • lightest found was weight 28, nothing at or below 24 beaten.

  • Packaging witness search (20,000-trial RIS + 2M-trial accelerator):
  • reproduced weight-24 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 <= 24. Two independent mechanisms agree at 24; exact certification was not run, so the d= tier is not claimed.

Dead ends

  • The n = 72 asymmetric-weight retry produced no non-dominated survivors —
  • the [[72,10,>=11]] and [[72,12,>=9]] gaps stay open.

  • The n = 192 and n = 216 frontier slots found by this campaign are
  • decoder-unconfirmed and held locally, not submitted.

  • [[288,18,20]] is submitted separately (one code per PR); the k = 8
  • ladder point this campaign found coincides with an existing board entry ([[288,8,24]], a dicyclic 2BGA at the same parameters) and was not submitted.

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 ~5 min per code.

Reproduction

Rebuild (H_X, H_Z) with the kit on the torus Z_12 x Z_12 (n = 2*12*12 = 288):

from bb import build_bb
HX, HZ = build_bb(12, 12,
                  A_terms=[(1,4),(2,3),(3,7),(6,6)],
                  B_terms=[(2,6),(3,9),(4,7),(9,7)])

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

Parity checks

X-checks 144 (max weight 8) · Z-checks 144 (max weight 8)
H_X (144 checks, sparse supports)
[16, 27, 43, 78, 174, 189, 199, 259] [17, 28, 44, 79, 175, 190, 200, 260] [18, 29, 45, 80, 176, 191, 201, 261] [19, 30, 46, 81, 177, 180, 202, 262] [20, 31, 47, 82, 178, 181, 203, 263] [21, 32, 36, 83, 179, 182, 192, 252] [22, 33, 37, 72, 168, 183, 193, 253] [23, 34, 38, 73, 169, 184, 194, 254] [12, 35, 39, 74, 170, 185, 195, 255] [13, 24, 40, 75, 171, 186, 196, 256] [14, 25, 41, 76, 172, 187, 197, 257] [15, 26, 42, 77, 173, 188, 198, 258] [28, 39, 55, 90, 186, 201, 211, 271] [29, 40, 56, 91, 187, 202, 212, 272] [30, 41, 57, 92, 188, 203, 213, 273] [31, 42, 58, 93, 189, 192, 214, 274] [32, 43, 59, 94, 190, 193, 215, 275] [33, 44, 48, 95, 191, 194, 204, 264] [34, 45, 49, 84, 180, 195, 205, 265] [35, 46, 50, 85, 181, 196, 206, 266] [24, 47, 51, 86, 182, 197, 207, 267] [25, 36, 52, 87, 183, 198, 208, 268] [26, 37, 53, 88, 184, 199, 209, 269] [27, 38, 54, 89, 185, 200, 210, 270] [40, 51, 67, 102, 198, 213, 223, 283] [41, 52, 68, 103, 199, 214, 224, 284] [42, 53, 69, 104, 200, 215, 225, 285] [43, 54, 70, 105, 201, 204, 226, 286] [44, 55, 71, 106, 202, 205, 227, 287] [45, 56, 60, 107, 203, 206, 216, 276] [46, 57, 61, 96, 192, 207, 217, 277] [47, 58, 62, 97, 193, 208, 218, 278] [36, 59, 63, 98, 194, 209, 219, 279] [37, 48, 64, 99, 195, 210, 220, 280] [38, 49, 65, 100, 196, 211, 221, 281] [39, 50, 66, 101, 197, 212, 222, 282] [52, 63, 79, 114, 151, 210, 225, 235] [53, 64, 80, 115, 152, 211, 226, 236] [54, 65, 81, 116, 153, 212, 227, 237] [55, 66, 82, 117, 154, 213, 216, 238] [56, 67, 83, 118, 155, 214, 217, 239] [57, 68, 72, 119, 144, 215, 218, 228] [58, 69, 73, 108, 145, 204, 219, 229] [59, 70, 74, 109, 146, 205, 220, 230] [48, 71, 75, 110, 147, 206, 221, 231] [49, 60, 76, 111, 148, 207, 222, 232] [50, 61, 77, 112, 149, 208, 223, 233] [51, 62, 78, 113, 150, 209, 224, 234] [64, 75, 91, 126, 163, 222, 237, 247] [65, 76, 92, 127, 164, 223, 238, 248] [66, 77, 93, 128, 165, 224, 239, 249] [67, 78, 94, 129, 166, 225, 228, 250] [68, 79, 95, 130, 167, 226, 229, 251] [69, 80, 84, 131, 156, 227, 230, 240] [70, 81, 85, 120, 157, 216, 231, 241] [71, 82, 86, 121, 158, 217, 232, 242] [60, 83, 87, 122, 159, 218, 233, 243] [61, 72, 88, 123, 160, 219, 234, 244] [62, 73, 89, 124, 161, 220, 235, 245] [63, 74, 90, 125, 162, 221, 236, 246] [76, 87, 103, 138, 175, 234, 249, 259] [77, 88, 104, 139, 176, 235, 250, 260] [78, 89, 105, 140, 177, 236, 251, 261] [79, 90, 106, 141, 178, 237, 240, 262] [80, 91, 107, 142, 179, 238, 241, 263] [81, 92, 96, 143, 168, 239, 242, 252] [82, 93, 97, 132, 169, 228, 243, 253] [83, 94, 98, 133, 170, 229, 244, 254] [72, 95, 99, 134, 171, 230, 245, 255] [73, 84, 100, 135, 172, 231, 246, 256] [74, 85, 101, 136, 173, 232, 247, 257] [75, 86, 102, 137, 174, 233, 248, 258] [6, 88, 99, 115, 187, 246, 261, 271] [7, 89, 100, 116, 188, 247, 262, 272] [8, 90, 101, 117, 189, 248, 263, 273] [9, 91, 102, 118, 190, 249, 252, 274] [10, 92, 103, 119, 191, 250, 253, 275] [11, 93, 104, 108, 180, 251, 254, 264] [0, 94, 105, 109, 181, 240, 255, 265] [1, 95, 106, 110, 182, 241, 256, 266] [2, 84, 107, 111, 183, 242, 257, 267] [3, 85, 96, 112, 184, 243, 258, 268] [4, 86, 97, 113, 185, 244, 259, 269] [5, 87, 98, 114, 186, 245, 260, 270] [18, 100, 111, 127, 199, 258, 273, 283] [19, 101, 112, 128, 200, 259, 274, 284] [20, 102, 113, 129, 201, 260, 275, 285] [21, 103, 114, 130, 202, 261, 264, 286] [22, 104, 115, 131, 203, 262, 265, 287] [23, 105, 116, 120, 192, 263, 266, 276] [12, 106, 117, 121, 193, 252, 267, 277] [13, 107, 118, 122, 194, 253, 268, 278] [14, 96, 119, 123, 195, 254, 269, 279] [15, 97, 108, 124, 196, 255, 270, 280] [16, 98, 109, 125, 197, 256, 271, 281] [17, 99, 110, 126, 198, 257, 272, 282] [30, 112, 123, 139, 151, 211, 270, 285] [31, 113, 124, 140, 152, 212, 271, 286] [32, 114, 125, 141, 153, 213, 272, 287] [33, 115, 126, 142, 154, 214, 273, 276] [34, 116, 127, 143, 155, 215, 274, 277] [35, 117, 128, 132, 144, 204, 275, 278] [24, 118, 129, 133, 145, 205, 264, 279] [25, 119, 130, 134, 146, 206, 265, 280] [26, 108, 131, 135, 147, 207, 266, 281] [27, 109, 120, 136, 148, 208, 267, 282] [28, 110, 121, 137, 149, 209, 268, 283] [29, 111, 122, 138, 150, 210, 269, 284] [7, 42, 124, 135, 153, 163, 223, 282] [8, 43, 125, 136, 154, 164, 224, 283] [9, 44, 126, 137, 155, 165, 225, 284] [10, 45, 127, 138, 144, 166, 226, 285] [11, 46, 128, 139, 145, 167, 227, 286] [0, 47, 129, 140, 146, 156, 216, 287] [1, 36, 130, 141, 147, 157, 217, 276] [2, 37, 131, 142, 148, 158, 218, 277] [3, 38, 120, 143, 149, 159, 219, 278] [4, 39, 121, 132, 150, 160, 220, 279] [5, 40, 122, 133, 151, 161, 221, 280] [6, 41, 123, 134, 152, 162, 222, 281] [3, 19, 54, 136, 150, 165, 175, 235] [4, 20, 55, 137, 151, 166, 176, 236] [5, 21, 56, 138, 152, 167, 177, 237] [6, 22, 57, 139, 153, 156, 178, 238] [7, 23, 58, 140, 154, 157, 179, 239] [8, 12, 59, 141, 155, 158, 168, 228] [9, 13, 48, 142, 144, 159, 169, 229] [10, 14, 49, 143, 145, 160, 170, 230] [11, 15, 50, 132, 146, 161, 171, 231] [0, 16, 51, 133, 147, 162, 172, 232] [1, 17, 52, 134, 148, 163, 173, 233] [2, 18, 53, 135, 149, 164, 174, 234] [4, 15, 31, 66, 162, 177, 187, 247] [5, 16, 32, 67, 163, 178, 188, 248] [6, 17, 33, 68, 164, 179, 189, 249] [7, 18, 34, 69, 165, 168, 190, 250] [8, 19, 35, 70, 166, 169, 191, 251] [9, 20, 24, 71, 167, 170, 180, 240] [10, 21, 25, 60, 156, 171, 181, 241] [11, 22, 26, 61, 157, 172, 182, 242] [0, 23, 27, 62, 158, 173, 183, 243] [1, 12, 28, 63, 159, 174, 184, 244] [2, 13, 29, 64, 160, 175, 185, 245] [3, 14, 30, 65, 161, 176, 186, 246]
H_Z (144 checks, sparse supports)
[41, 101, 111, 126, 222, 257, 273, 284] [42, 102, 112, 127, 223, 258, 274, 285] [43, 103, 113, 128, 224, 259, 275, 286] [44, 104, 114, 129, 225, 260, 264, 287] [45, 105, 115, 130, 226, 261, 265, 276] [46, 106, 116, 131, 227, 262, 266, 277] [47, 107, 117, 120, 216, 263, 267, 278] [36, 96, 118, 121, 217, 252, 268, 279] [37, 97, 119, 122, 218, 253, 269, 280] [38, 98, 108, 123, 219, 254, 270, 281] [39, 99, 109, 124, 220, 255, 271, 282] [40, 100, 110, 125, 221, 256, 272, 283] [53, 113, 123, 138, 152, 234, 269, 285] [54, 114, 124, 139, 153, 235, 270, 286] [55, 115, 125, 140, 154, 236, 271, 287] [56, 116, 126, 141, 155, 237, 272, 276] [57, 117, 127, 142, 144, 238, 273, 277] [58, 118, 128, 143, 145, 239, 274, 278] [59, 119, 129, 132, 146, 228, 275, 279] [48, 108, 130, 133, 147, 229, 264, 280] [49, 109, 131, 134, 148, 230, 265, 281] [50, 110, 120, 135, 149, 231, 266, 282] [51, 111, 121, 136, 150, 232, 267, 283] [52, 112, 122, 137, 151, 233, 268, 284] [6, 65, 125, 135, 153, 164, 246, 281] [7, 66, 126, 136, 154, 165, 247, 282] [8, 67, 127, 137, 155, 166, 248, 283] [9, 68, 128, 138, 144, 167, 249, 284] [10, 69, 129, 139, 145, 156, 250, 285] [11, 70, 130, 140, 146, 157, 251, 286] [0, 71, 131, 141, 147, 158, 240, 287] [1, 60, 120, 142, 148, 159, 241, 276] [2, 61, 121, 143, 149, 160, 242, 277] [3, 62, 122, 132, 150, 161, 243, 278] [4, 63, 123, 133, 151, 162, 244, 279] [5, 64, 124, 134, 152, 163, 245, 280] [3, 18, 77, 137, 149, 165, 176, 258] [4, 19, 78, 138, 150, 166, 177, 259] [5, 20, 79, 139, 151, 167, 178, 260] [6, 21, 80, 140, 152, 156, 179, 261] [7, 22, 81, 141, 153, 157, 168, 262] [8, 23, 82, 142, 154, 158, 169, 263] [9, 12, 83, 143, 155, 159, 170, 252] [10, 13, 72, 132, 144, 160, 171, 253] [11, 14, 73, 133, 145, 161, 172, 254] [0, 15, 74, 134, 146, 162, 173, 255] [1, 16, 75, 135, 147, 163, 174, 256] [2, 17, 76, 136, 148, 164, 175, 257] [5, 15, 30, 89, 161, 177, 188, 270] [6, 16, 31, 90, 162, 178, 189, 271] [7, 17, 32, 91, 163, 179, 190, 272] [8, 18, 33, 92, 164, 168, 191, 273] [9, 19, 34, 93, 165, 169, 180, 274] [10, 20, 35, 94, 166, 170, 181, 275] [11, 21, 24, 95, 167, 171, 182, 264] [0, 22, 25, 84, 156, 172, 183, 265] [1, 23, 26, 85, 157, 173, 184, 266] [2, 12, 27, 86, 158, 174, 185, 267] [3, 13, 28, 87, 159, 175, 186, 268] [4, 14, 29, 88, 160, 176, 187, 269] [17, 27, 42, 101, 173, 189, 200, 282] [18, 28, 43, 102, 174, 190, 201, 283] [19, 29, 44, 103, 175, 191, 202, 284] [20, 30, 45, 104, 176, 180, 203, 285] [21, 31, 46, 105, 177, 181, 192, 286] [22, 32, 47, 106, 178, 182, 193, 287] [23, 33, 36, 107, 179, 183, 194, 276] [12, 34, 37, 96, 168, 184, 195, 277] [13, 35, 38, 97, 169, 185, 196, 278] [14, 24, 39, 98, 170, 186, 197, 279] [15, 25, 40, 99, 171, 187, 198, 280] [16, 26, 41, 100, 172, 188, 199, 281] [29, 39, 54, 113, 150, 185, 201, 212] [30, 40, 55, 114, 151, 186, 202, 213] [31, 41, 56, 115, 152, 187, 203, 214] [32, 42, 57, 116, 153, 188, 192, 215] [33, 43, 58, 117, 154, 189, 193, 204] [34, 44, 59, 118, 155, 190, 194, 205] [35, 45, 48, 119, 144, 191, 195, 206] [24, 46, 49, 108, 145, 180, 196, 207] [25, 47, 50, 109, 146, 181, 197, 208] [26, 36, 51, 110, 147, 182, 198, 209] [27, 37, 52, 111, 148, 183, 199, 210] [28, 38, 53, 112, 149, 184, 200, 211] [41, 51, 66, 125, 162, 197, 213, 224] [42, 52, 67, 126, 163, 198, 214, 225] [43, 53, 68, 127, 164, 199, 215, 226] [44, 54, 69, 128, 165, 200, 204, 227] [45, 55, 70, 129, 166, 201, 205, 216] [46, 56, 71, 130, 167, 202, 206, 217] [47, 57, 60, 131, 156, 203, 207, 218] [36, 58, 61, 120, 157, 192, 208, 219] [37, 59, 62, 121, 158, 193, 209, 220] [38, 48, 63, 122, 159, 194, 210, 221] [39, 49, 64, 123, 160, 195, 211, 222] [40, 50, 65, 124, 161, 196, 212, 223] [53, 63, 78, 137, 174, 209, 225, 236] [54, 64, 79, 138, 175, 210, 226, 237] [55, 65, 80, 139, 176, 211, 227, 238] [56, 66, 81, 140, 177, 212, 216, 239] [57, 67, 82, 141, 178, 213, 217, 228] [58, 68, 83, 142, 179, 214, 218, 229] [59, 69, 72, 143, 168, 215, 219, 230] [48, 70, 73, 132, 169, 204, 220, 231] [49, 71, 74, 133, 170, 205, 221, 232] [50, 60, 75, 134, 171, 206, 222, 233] [51, 61, 76, 135, 172, 207, 223, 234] [52, 62, 77, 136, 173, 208, 224, 235] [5, 65, 75, 90, 186, 221, 237, 248] [6, 66, 76, 91, 187, 222, 238, 249] [7, 67, 77, 92, 188, 223, 239, 250] [8, 68, 78, 93, 189, 224, 228, 251] [9, 69, 79, 94, 190, 225, 229, 240] [10, 70, 80, 95, 191, 226, 230, 241] [11, 71, 81, 84, 180, 227, 231, 242] [0, 60, 82, 85, 181, 216, 232, 243] [1, 61, 83, 86, 182, 217, 233, 244] [2, 62, 72, 87, 183, 218, 234, 245] [3, 63, 73, 88, 184, 219, 235, 246] [4, 64, 74, 89, 185, 220, 236, 247] [17, 77, 87, 102, 198, 233, 249, 260] [18, 78, 88, 103, 199, 234, 250, 261] [19, 79, 89, 104, 200, 235, 251, 262] [20, 80, 90, 105, 201, 236, 240, 263] [21, 81, 91, 106, 202, 237, 241, 252] [22, 82, 92, 107, 203, 238, 242, 253] [23, 83, 93, 96, 192, 239, 243, 254] [12, 72, 94, 97, 193, 228, 244, 255] [13, 73, 95, 98, 194, 229, 245, 256] [14, 74, 84, 99, 195, 230, 246, 257] [15, 75, 85, 100, 196, 231, 247, 258] [16, 76, 86, 101, 197, 232, 248, 259] [29, 89, 99, 114, 210, 245, 261, 272] [30, 90, 100, 115, 211, 246, 262, 273] [31, 91, 101, 116, 212, 247, 263, 274] [32, 92, 102, 117, 213, 248, 252, 275] [33, 93, 103, 118, 214, 249, 253, 264] [34, 94, 104, 119, 215, 250, 254, 265] [35, 95, 105, 108, 204, 251, 255, 266] [24, 84, 106, 109, 205, 240, 256, 267] [25, 85, 107, 110, 206, 241, 257, 268] [26, 86, 96, 111, 207, 242, 258, 269] [27, 87, 97, 112, 208, 243, 259, 270] [28, 88, 98, 113, 209, 244, 260, 271]
Code ID 288-12-24 · download JSON · raw on GitHub