Inspiration

After reading an article by Google on their advancements in quantum computing, I decided to research more into quantum computers and how they actually work. After watching many YouTube videos and reading many books, I finally understood the core concepts, but this required a lot of struggle to reach. If I had an interactive application where I could test my knowledge, or run a simulation of a Bloch sphere, it would have been much easier for me to understand these difficult concepts in quantum computing. Having a Bloch sphere simulation would have been particularly useful for gaining a hands-on experience of how different gates transform qubits on a Bloch sphere and in a circuit.

What it does

QircuitCraft is an interactive game with two modes. One mode allows learners to test their knowledge by having a drag-and-drop circuit building system to complete circuit challenges. These questions are currently for single qubits and double qubits but can be expanded very easily. There is an auto-fidelity calculator for learners to see how close they are to the answer. The second mode is more closely related to sandbox modes in a game, as it is a Bloch sphere simulator called "Bloch Playground" where learners can simulate the effects of different gates on the qubits in the Bloch sphere. This allows for enhanced visual learning and a more hands-on approach as to how gates in quantum computing alter qubits.

How we built it

Initially market research was conducted into how various platforms for learning subjects like languages or Mathematics function, and how they look. As much as the functionality is important, the GUI was just as important as users appreciate consistent and clean design. To start off with, single qubit and two qubit questions were implemented as more code was required for higher qubit questions, so as a first prototype this would be good for testing. The program is coded in Python, with the GUI built using PyQt5. The formatting of the GUI uses CSS and was designed through QtDesigner. Qiskit was the main library used with Python for the quantum computing logic gates and qubits calculations. Initial prototypes focused only on functionality with final prototypes focused more on the GUI. There is also version control implemented in this project through the use of GitHub commits.

Challenges we ran into

A challenge that I ran into was coding the Bloch Playground mode, as it required important calculations of 3D vectors for accurate representations, and the NumPy library proved to be useful for solving these issues. Furthermore, another issue faced was formatting of the quantum circuits and how they are displayed as text in the GUI. The representation of the gates was initially complex and not beginner-friendly, so using a table-based drag-and-drop approach as well as a text version above the table to see how the circuit is being built was useful and allows for the learners to have two different ways to view the circuit they are building.

Accomplishments that we're proud of

Having a Bloch sphere simulation within the GUI which accurately depicts the transformations of different gates on qubits in the sphere is an accomplishment I am very proud of, as coding a 3D vector space to allow for accurate representations of angles and magnitudes of vectors is very complicated. Additionally, implementing a consistent, clean, and aesthetically pleasing design for the GUI is an accomplishment I am proud of as many developers neglect the GUI design entirely, and in the industry of interactive and educational applications, having an eye-catching GUI design is very important.

What we learned

I have gained knowledge in using the Qiskit library in Python for quantum computing calculations and programs which I can apply when making future simulations or applications. Making the GUI in PyQt5 meant new knowledge of CSS stylesheets which I learned when developing this project. Manipulating 3D vectors and the mathematics behind 3D vector space is another skill I have learned, and using NumPy to aid with programming these calculations was very useful to have learnt.

What's next for QircuitCraft

QircuitCraft can be easily scalable. Questions can be easily added, with just a few extra lines of code required for each higher number of qubit circuit questions (the maximum is 2 right now). There is also the opportunity to embed useful YouTube videos and notebooks on the basics of quantum computing as learners can begin their journey learning quantum computing through the application itself. More advanced simulations can also be made, such as simulating how qubits would look like in a trapped ion quantum computing circuit. This will allow learners to delve deeper into the Physics side of quantum computing. There can also be other lessons that can be implemented such as learning about Shor's algorithm or Grover's algorithm, both of which are key foundational algorithms for quantum computing.

Built With

Share this project:

Updates

Submission history