Welcome to the documentation and tutorials for the exploratory release of dynamic circuits! Dynamic circuits are quantum circuits (or programs!) with not just the ability to apply gates and measurements to your qubits, but also, within the coherence time of your qubits, apply operations that are conditional on classical computations and measurement results. We aim to provide access to real-time classical control and compute integrated in a seamless way with your quantum algorithm based on the feature roadmap provided by OpenQASM 3. Dynamic circuits are a critical component of the IBM Quantum hardware roadmap. To see what features of OpenQASM 3 are currently supported in hardware, please see the feature support table here.

Adding support for these new quantum hardware and software capabilities is a large effort that spans through Qiskit, the cloud, Qiskit Runtime, kernel-level compiler (more details coming soon!), hardware runtimes, and control systems. Development is still ongoing and feedback/discussion is encouraged in our Slack channel #dynamic-circuits in the Qiskit workspace. Development is happening at a rapid pace and we expect to incorporate feedback quickly. Note: As this is beta software and hardware, changes may be rapid and possibly breaking. Performance may also be worse in some areas compared with the existing production stack.


These five tutorial notebooks will get you started. Be sure to start with the Hello Dynamic Circuits notebook, which includes installation instructions. You can read the tutorials here in IBM Quantum Platform, or you can open them as interactive Jupyter notebooks in IBM Quantum Lab (requires sign-in).


If you have a question, visit the FAQ page. If you can’t find the answer there, please ask in our Slack channel #dynamic-circuits in the Qiskit workspace.