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.