qdk icon indicating copy to clipboard operation
qdk copied to clipboard

Circuit visualization

Open minestarks opened this issue 1 year ago • 1 comments

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.

minestarks avatar Jan 29 '24 19:01 minestarks

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

minestarks avatar May 16 '24 16:05 minestarks