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 tool

Where the intuition starts: how a single qubit actually lives on the Bloch sphere, and what gates and measurements do to it.

Interactive Visualizer

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.

3D Interactive Animated Gates Measurement Preset States Keyboard Shortcuts
Launch Tool

Error-Correcting Codes

2 tools

Sandboxes 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.

Topological Code

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.

Matching Decoder Logical Errors Depolarizing Noise Live Syndromes Up to \(d=9\)
Launch Sandbox
qLDPC Code

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.

Bivariate Bicycle \(k=12\) Logicals Weight-6 Checks Tanner Graph Depolarizing Noise
Launch Sandbox

Decoding Algorithms

3 tools

The 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.

Graph Matching

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.

Exact Blossom Boundary Escapes MWPM vs Greedy Logical Error Rate Step by Step
Launch Decoder
⊥
Near-Linear Time

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.

Cluster Growth Peeling Decoder Erasures vs Exact Matching Step by Step
Launch Decoder
Message Passing

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.

Belief Propagation BP + OSD BP + LSD Quantum Codes Step by Step
Launch Decoder

More Tools Coming Soon

I'm always tinkering with new ideas. More interactive tools are on the way. Stay tuned!