https://github.com/asimakiskydros/quacide
An intuitive, user-friendly quantum circuit designer made in HTML/TS/CSS/Python. A simplistic UI that connects to IBM's Qiskit backend to return quick, accurate results, no coding required.
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.2%) to scientific vocabulary
Repository
An intuitive, user-friendly quantum circuit designer made in HTML/TS/CSS/Python. A simplistic UI that connects to IBM's Qiskit backend to return quick, accurate results, no coding required.
Basic Info
Statistics
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
QuaCiDe
QuaCiDe (pronounced *cassidy*) is an intuitive, user-friendly quantum circuit designer made in HTML/TS/CSS/Python. Its simplistic design but powerful foundation aims to enable learning in the field of Quantum Computing and ease research and experimentation by liberating the user from technical demands, such as program installations, coding, scaling restrictions etc.
Local Installation
The present product is still in Alpha development phase, therefore to access it you'll have to run its files in a controlled IDE environment that offers and/or supports servers for HTML execution. Visual Studio Code running Node.js and Live Server is recommended.
You can install this package directly from the terminal:
npm install asimakiskydros/QuaCiDe
Both interface.html and qiskit-qasm.py need to be running for the designer to be fully functional. Make sure Python 3, Node.js and all listed languages are supported by your system.
The first time you install and every time you make a change in the TypeScript code, run the following so your changes take effect:
npm run build
Usage
The UI offers a variety of user-friendly actions:
* All the mainstream one- and two-qubit gates are offered by default, along with measurements and controls, to be dragged and dropped on any qubit.
* SHIFT+click on a gate to spawn a copy next to it. CTRL+click on it to spawn a copy below it. Right-click it to delete it instantly.
* Shove gates between other placed gates to spawn new steps on command.
* New qubits spawn at the bottom of the register each time a gate is picked up.
* A set amount of initial qubits can also be spawned on demand by setting the Min Qubits variable on the toolbar.
* Redundant qubits and steps are detected and deleted automatically.
* Qubits are interactable threefold: Click their state display to shuffle between the Bloch sphere edges |0⟩, |1⟩, |+⟩, |-⟩, |+i⟩, |-i⟩; CTRL+click it to shuffle between color-coded registers. Neihboring registers with the same color get unified into one; Double-click on their name display to give it a different alias. Press SHIFT while doing any of the above to reset to the default value.
* Undo and Redo actions on each circuit through the relevant toolbox buttons, or by pressing CTRL+Z and CTRL+Y respectively.
* Clear everything on the current circuit through the relevant toolbox button or by pressing CTRL+C.
* See the resources and the specifications of each circuit on the toolbar: #Qubits, #Gates and #Steps are updated on every change; #Shots, Endian Order and Min Qubits are set by the user.
* Create and moderate multiple circuits at a time by spawning new Tabs. This can also be done by invoking CTRL+Q.
* Turn valid circuits into custom gates through the relevant toolbox button or by pressing CTRL+A.
* Customize the designer to your liking by changing the global Settings.
Outputs
Execute the current circuit instance to get the output you desire: currently, two output kinds are offered: counts and statevector, with three more underway. All outputs can be found on the right-hand sidebar. Execution currently uses Qiskit and Qiskit-Aer to run the experiment, with more options to come.
Outputs are displayed as text but also as interactable charts. Text can be copied directly and charts are readily downloadable as PNGs.
About
This project started as my Bachelor's Thesis, but quickly grew beyond that scope. While still being in Alpha stage and thus, not ready for F/OSS distribution, it is meant to become completely open to everyone in the near future. In the meantime, any suggestions are very welcome.
Owner
- Name: Asimakis Kydros
- Login: asimakiskydros
- Kind: user
- Location: Thessalonica, Greece
- Repositories: 1
- Profile: https://github.com/asimakiskydros
I study Computer Science at the Aristotle University of Thessalonica
GitHub Events
Total
- Push event: 1
Last Year
- Push event: 1
Dependencies
- 407 dependencies
- @types/jquery ^3.5.30 development
- terser-webpack-plugin ^5.3.10 development
- ts-loader ^9.5.1 development
- typescript ^5.5.4 development
- webpack ^5.94.0 development
- webpack-cli ^5.1.4 development
- @types/plotly.js ^2.33.4
- jquery ^3.7.1
- plotly.js ^2.35.2