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 Edmonds' blossom algorithm find the exact minimum-weight perfect matching (each defect free to escape to a boundary instead). Then the correction goes down and the run ends on the real question: is \(E \oplus C\) a harmless loop, or a logical error? Tap qubits to build your own errors, load worked examples, or estimate logical error rates against a greedy baseline.
Union-Find Decoder
The almost-linear-time decoder of Delfosse and Nickerson, run step by step on a planar surface code (distance 3 to 11) with Pauli errors and erasures, or on your own parity-check matrix. Odd clusters of defects grow by half an edge per round and merge in a union-find forest until every cluster is neutral; then the peeling decoder reads the correction \(\hat e\) off a spanning forest, leaf by leaf. Every round, disjoint-set array and peel is shown, the result is checked for a logical error, and an exact minimum-weight matching is there to compare, including a preset where Union-Find gets it wrong.
BP / OSD / LSD Decoder
Run quantum-LDPC decoding end to end on a Tanner graph, on real codes (Steane, Shor, surface, toric, the [[15,7,3]] quantum Hamming code) or your own matrices. Watch belief propagation, sum-product or min-sum, pass messages between checks \(C_i\) and qubits \(q_j\); when BP stalls on a degenerate error, finish with OSD (a solve on the qubits most likely to be flipped) or LSD (clusters grown around the unsatisfied checks and solved locally). The result is judged against the stabilizer group and the exact maximum-likelihood answer, with worked examples of where and why BP fails.
More Tools Coming Soon
I'm always tinkering with new ideas. More interactive tools are on the way. Stay tuned!