Interactive Tools
I build these interactive tools just for fun — small visualizers and simulators that bring quantum computing concepts to life. They're meant to make abstract ideas tangible, whether you're a researcher, a student, or just curious about the quantum world.
Qubits and States
1 toolWhere the intuition starts: how a single qubit actually lives on the Bloch sphere, and what gates and measurements do to it.
Interactive Bloch Sphere
Explore single-qubit pure states on the Bloch sphere in full 3D. Apply gates (\(X\), \(Y\), \(Z\), \(H\), \(S\), \(T\), \(R_{x,y,z}\)) as animated rotations about their axis, read live measurement probabilities and collapse the state, drag \(\theta\)/\(\phi\) sliders — or drive it all from the keyboard.
Error-Correcting Codes
2 toolsSandboxes for the codes themselves. Inject noise into a real code patch, watch the stabilizers flag it, and see how the code's structure decides what it can protect.
Surface Code Sandbox
Learn Quantum Error Correction end to end. Inject Pauli \(X\), \(Y\), \(Z\) errors — or depolarizing noise — on a distance-\(d\) (up to \(d=9\)) surface-code patch, watch the stabilizers flag syndromes live, then run a minimum-weight matching decoder to correct them and see whether a logical error slipped through.
Gross Code Sandbox
Step beyond the surface code into qLDPC territory. The \([[144,12,12]]\) gross code packs 12 logical qubits into 144 physical ones using weight-6 non-local stabilizers. Inject Pauli errors, then hover any check to trace the six qubits it reaches across the torus.
Decoding Algorithms
3 toolsThe algorithms that turn a syndrome back into a correction, in the order the field discovered them. Each one runs end to end, one step at a time, with every matrix, message and cluster drawn as it happens.
MWPM Decoder
The original surface-code decoder, from Dennis, Kitaev, Landahl and Preskill. Every data qubit is an edge of the matching graph and every stabilizer a node, so an error chain is invisible except at its two endpoints: the defects. Watch breadth-first search measure the distance between every pair, the weighted matching graph get assembled, and an exact minimum-weight perfect matching pick the lightest pairing (each defect free to escape to a boundary instead). Then the correction chains go down one at a time and the run ends on the real question: is \(E \oplus C\) a harmless loop, or a logical error?
Union-Find Decoder
Follow the near-linear-time Union-Find decoder run end to end on a random parity-check matrix. Inject an erasure, grow odd clusters by half-edges until every cluster is neutral, then peel the spanning forest leaf by leaf to read off the correction \(\hat e\) — with \(H\), the syndrome \(s = He\), the disjoint-set parent[] array and the residual \(H(e\oplus\hat e)\) all shown live at every step.
BP / OSD / LSD Decoder
Run a quantum-LDPC decoder end to end on a Tanner graph. Watch belief propagation pass soft messages between checks \(C_i\) and qubits \(q_j\) to build per-qubit log-likelihood ratios, then — when BP stalls on a trapping set — finish with OSD (a global most-reliable-basis solve) or LSD (clusters grown around the unsatisfied checks and solved locally). Every message, belief \(\Lambda_j\) and solve of \(H\hat e = s\) is drawn and written out, step by step.
More Tools Coming Soon
I'm always tinkering with new ideas. More interactive tools are on the way — stay tuned!