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. When the store has none, you can still place a placeholder — amber
dashed with a small ? badge — to sketch the circuit and submit a
protocol for it later.
Multi-wire gates (CNOT, CZ, CCZ, Toffoli) draw the quantikz control / target; a meter
ends a wire and opens a classical double line.
A syndrome round (SE) can be the X round, the Z round, or the joint round SEXZ
(one X round then one Z round) — offered only when the store has both. It repeats: set its
Rounds (1–20) in its popover; the box shows the count as a superscript, e.g. SEX2.
Classical feedback: a gate can be conditioned on an earlier outcome
mi; a double line runs from that meter's wire to the gate.
Every entry in the store has its logical action verified; fault distance is shown
separately and is blank until computed.
in
prepared as
Run locally
noise
p
shots
Downloads a self-contained .ftqcp.json: the drawn
circuit as a store composite, a channel recipe (measure: "channel") following the page's
decoding workflow (decoding workflow ▸, below the circuit), and every referenced entry.
Or run it offline:
Python ≥ 3.12 and a C++ compiler (xtim builds on install).
pip install "ftqcp[run] @ git+https://github.com/ikim-quantum/ftqcp"
ftqcp run <file>