Each line is a data qubit. A chain from the left edge to the right edge is a logical error the checks cannot see.
Logical failure rate versus physical error rate for three code sizes. Below the crossing, bigger codes win.
Imagine a message copied many times so a few smudges don't matter. Each dot checks its neighbors and lights up if something looks off. The decoder connects lit dots with the shortest lines it can find. If the smudges form a path all the way across, the decoder is fooled and the message is lost.
Planar surface code, bit-flip sector: each check measures the parity of its adjacent data qubits. Errors are only visible at the ends of error chains. Correction pairs defects (or a defect and a boundary); success means correction plus error forms no left–right chain. Below a threshold error rate, increasing the distance d suppresses logical errors exponentially.
Code-capacity noise (perfect measurements) with a greedy nearest-pair decoder, chosen because it animates in real time. Greedy matching has a lower threshold than minimum-weight perfect matching (about 10.3% for this noise). The Python package uses exact matching via PyMatching with measurement errors and NV-specific link and readout rates (chapter E6, Figure 27).

Sources: [kitaev2003] [dennis2002] [fowler2012] [edmonds1965] [higgott2022] [google2025]