Inspiration
Modern quantum computers are still incredibly noisy—gates, measurements, and even idle qubits can introduce bit flips, phase flips, decoherence, and energy loss. Quantum error correction (QEC) offers a way forward by encoding one logical qubit into many physical qubits and using smart measurements and decoding to recover information even when some qubits fail. However, Qiskit’s QEC tools are still under active development, and many existing QEC tutorials stay at a very abstract level, full of matrices, stabilizers, and heavyweight libraries. As students, we found it surprisingly hard to actually run noisy circuits and see, in a tangible way, how logical error rates compare to physical error rates. That gap—between beautiful theory and hands-on experimentation—is exactly what inspired our project.
What it does
- Implements Repetition, Shor, Steane, and rotated-surface codes behind a shared BaseCode interface so encoding, measurement, and decoding stay consistent.
- Ships reusable noise builders (bit-flip, phase-flip, depolarizing, amplitude damping) and helpers to sweep physical error strengths, collect logical error estimates, and plot physical vs logical curves.
- Provides a tutorial notebook covering the full workflow plus a dynamic-circuit demo that runs an active correction cycle for the 3-qubit repetition code.
How we built it
- Used Qiskit + Aer to construct circuits and inject noise via NoiseModel on every gate.
- Defined a BaseCode abstraction; each concrete code implements build_circuit and logical_error_rate_from_counts.
- Wrapped Monte Carlo experiments in experiments/sweep.py; the notebook reuses those APIs and layers Matplotlib visualizations.
- Added an active-correction helper that leverages Qiskit dynamic circuits (if_test) to map syndromes
Challenges we ran into
- One of the biggest challenges we faced came from our background: as computer science students, we are more familiar with classical bits and error models than with the rich, subtle behavior of qubits. Understanding what it actually means for a qubit to “go wrong” — the different types of errors (bit flips, phase flips, decoherence, etc.), why they occur in physical devices, how they can be detected through syndrome measurements, and how they can be corrected at the logical level — required a steep learning curve. Translating these abstract quantum error correction concepts into something we could reason about computationally was not straightforward.
- A second major challenge was getting comfortable with the Qiskit ecosystem itself. We had to learn how to build and simulate quantum circuits, how to incorporate realistic noise models, and how to visualize and interpret circuit diagrams in a way that directly supported our architecture. Figuring out how to combine Qiskit’s circuit construction, noise simulation, and visualization tools into a coherent workflow took time and experimentation, but it was essential to making our project actually work in practice.
Accomplishments that we're proud of
- Packaged multiple QEC codes, noise models, and sweep utilities into a single repo, so users can run physical/logical comparisons without heavyweight frameworks.
- Delivered a notebook that covers both passive decoding and an active correction loop, forming an end-to-end teaching path.
- Documented extension points (adding codes/noise models) so contributions stay straightforward.
What we learned
- How different stabilizer codes respond to specific noise channels, and how noise-model choices shape logical error curves.
- Practical aspects of Qiskit dynamic circuits and conditional logic when implementing simple feedback correction.
- Techniques for conveying QEC workflows with simplified decoders while leaving room for future work on higher distances and advanced decoders.
What's next for QEC Lab
- Support higher-distance surface codes (d=5, 7, ...) to study threshold behavior systematically.
- Integrate more advanced decoders such as minimum-weight matching or neural-network-based decoders.
- Build a simple web front-end so users can pick noise models / codes via sliders and generate plots instantly.
- Add richer visualizations (syndrome timelines, logical error trajectories) for classroom demos and talks.
Built With
- python
- qiskit
Log in or sign up for Devpost to join the conversation.