QEC ExplorerDecoder Race
Part of QEC Explorer · Module 2 · Decoding
Interactive · Four real decoders · Runs in your browser

Watch four decoders race to fix it

Inject an error, then hit Run race. The same syndrome goes to four different decoding algorithms (a lookup table, minimum-weight matching, belief propagation, and research-grade BP-OSD), and each guesses a correction on its own. See where they agree, where they diverge, and which ones actually return the code to safety.

Paint error
Distance
Actions
Share
Export
Import
Learn
 
Famous patterns: ⚠️ The boundary trap (Z@1,2) 👻 Full-column logical error ✅ A clean single-error fix (X@1,1)
Same error, same syndrome, four guesses. Click qubits on any panel below to paint the error; all four panels share the identical injected error and resulting syndrome. The colored dashed rings each decoder adds are its proposed correction.
X error
Z error
Y error
Lit syndrome
Proposed correction (dashed ring)

Lookup

Exhaustive syndrome table
Idle
Press “Run race”.

MWPM

Min-weight perfect matching
Idle
Press “Run race”.

Belief propagation

Iterative message passing
Idle
Press “Run race”.

BP + OSDresearch-grade

Belief propagation, then ordered-statistics cleanup
Idle
Press “Run race”.

Agreement

Run the race to compare the three corrections.
The point worth understanding

A decoder can never be sure it's right

Every decoder sees only the syndrome, never the actual error. But many different errors produce the same syndrome. A decoder picks the most likely explanation (usually the lowest-weight one), and most of the time that's correct. But when the real error is large, for instance a chain spanning the whole code, its syndrome can look identical to "nothing happened," and no decoder can tell the difference using syndrome information alone. That irreducible ambiguity is exactly why a code has a finite threshold: push the error rate too high and even a perfect decoder starts guessing wrong. Try a full-column X error below and watch all three "succeed" on the syndrome while a logical error silently slips through.

Where this is going

Next: when does protection actually break?