ftqcp

Circuit

click an empty cell to add a gate · drag from the palette · click a gate to remove
in prepared as
One wire per logical qubit. A bracket names the code a block starts in; a ket is its preparation; a wire without a ket is an open input — the circuit is then a channel on it (the object a diamond-norm error is estimated for).
A code switch is a box naming both codes; gates after it come from the new code.
Gates come from the store: the menu lists what exists for the wire's current code, with its verification status. Dashed grey: not in the store yet.
Multi-wire gates (CNOT, CZ, CCZ, Toffoli) draw the quantikz control / target; a meter ends a wire and opens a classical double line.
Magic injection: a block prepared as |T⟩ is consumed by an inject box spanning it and the data block; its wire ends there with an outcome mi for the fix-up.
Classical feedback: a gate can be conditioned on an earlier outcome mi; a double line runs from that meter's wire to the gate.
Run locally · download the bundle
noise p shots

Downloads a self-contained .ftqcp.json: the drawn circuit as a store composite, a channel recipe (measure: "channel") following this page's decoding workflow above, and every referenced entry. Run it offline with pip install "ftqcp[run] @ git+https://github.com/ikim-quantum/ftqcp", then ftqcp run <file>.