Every module so far lived on the surface code, a flat grid you can click. The gross code is the frontier: it stores 12 logical qubits in 144 physical ones, where a surface code would need thousands. The price is that its stabilizers reach across the whole code, not just to neighbors, so it cannot honestly be drawn as a tidy grid. Here it is two ways: as the Tanner graph its decoder actually sees, and as a live decode lab where you inject real errors and watch real BP-OSD clean them up.
To protect 12 logical qubits this well, a surface code would need roughly:
That order-of-magnitude saving is the whole point of qLDPC, and the price is the long-range wiring you see in the graph.
Bravyi et al., Nature 627 (2024). Everything here is computed live in qldpc-core.js, the same engine the decode lab uses.
Belief propagation passes reliabilities along the Tanner graph you just explored. On qLDPC codes BP alone often stalls, so OSD-0 post-processing solves the syndrome equations exactly over GF(2). The result always returns to the codespace.
But returning to the codespace is not the same as being right: the correction can differ from the true error by a logical operator, which no syndrome-only decoder can detect. The lab reports that honestly.
This code has distance 12, so it is guaranteed to fix any error of weight up to 5. Past that, even a perfect decoder starts to guess. Try the Heavy (w=8) preset a few times and you will eventually see a logical error slip through, which is real, not a bug.
The surface code is easy to build because every check is local: neighboring qubits, short wires, a clean 2D chip. The gross code throws that away. Its checks are long-range, which is why it looks like a web instead of a grid, and why it needs long-distance connections that are hard to fabricate. In exchange, it protects the same information with roughly ten times fewer qubits.
That is the central bet of the qLDPC program: if the hardware can be built, the qubit savings are enormous. The decoder does not care about geometry at all. BP-OSD reads the Tanner graph directly, which is exactly why the same algorithm you saw win the surface-code race also drives the frontier codes. The physics on this page is computed live from the code's defining polynomials, and checked against its invariants in the test suite.
If this site helped you understand quantum error correction, or helped someone you shared it with, we would love to hear about it. Your stories help us make it better and show that open learning tools like this matter.
Want a high-quality, research-faithful simulation like the gross-code simulation you see in Module 4, built for your own class, club, or project? Just ask and we will make one.
qecexplorer@gmail.com