qdk
qdk copied to clipboard
Circuit visualization
We'd like to add the ability to generate circuit diagrams from a Q# program.
These can appear in:
- VS Code
- Python notebooks
- Python command line (ascii art)
Small programs without classical constructs (e.g. the Bell State sample) are fairly easy to generate diagrams for, but we'll have to figure how best to visualize more complex cases.
Design considerations:
- How to represent classical constructs, such as loops, visually
- Whether the circuit should map to the hardware behavior (i.e. closer to the generated QIR, showing auxiliary qubits, unrolled loops etc), or to the high level input Q# program
- UI to visually map parts of the circuit to source code
For reference, Q# notebooks in the classic QDK had the ability to generate diagrams using the %trace magic and the quantum_viz Python package.
More bells and whistles after v1:
- [ ] Allow specifying qubit register width for operation circuits (instead of hardcoded 2)
- [ ] State annotations on the circuit
- [ ] Q# variable names for qubit wire labels instead of q0, q1, etc.
- [ ] When running with simulator, annotate measurement results on circuit
- [ ] Run multiple shots for dynamic circuits and display multiple outcomes in some way