Open-Source Quantum Software Projects
There is a curated list of open-source quantum software projects available on GitHub. It is organized by type of software and the language the tool was written in and provides links to the location of the tool.  The list contains many of the tools listed below, but has even more including experimental, fun, and abandoned projects.

There is also an overview article that provides a comparison of characteristics such as documentation, discussion channels, issue tracking, version control, licenses, automated test suites, etc. in various open source quantum computing software tools that you can find on the PLOS web site here.

Microsoft Quantum Development Kit
Microsoft has released a preview version of their Quantum Development Kit that appears to supercede their earlier LIQUi|> software. This kit features a newly named quantum programming language called Q#, integration with their Visual Studio development environment, simulators that run on either a local system or their powerful Azure cloud platform, and rich libraries and code samples that can be used as building blocks.  You can down this software here.

IBM Quantum Experience
IBM has put an experimental 5 qubit gate-level quantum processor on the web and is allowing members of the public to apply to get access to it.   At the IBM Quantum Experience website there are four modules; a short tutorial that explains the basics of quantum computation and instructions on how to use it, a quantum composer that allows one to configure quantum gates for the qubits, a simulator which allows one to simulate their configuration before running it on the actual machine, and finally access to the machine itself which allows one to run their configuration and view the results.   You can access the IBM Quantum Experience website here and you can also see my “First Looks” review of it here.  IBM has also released an associated software API called QISKIT that can be used with the IBM Quantum Experience and you can access it on GitHub here.

Rigetti Forest
The Rigetti Forest suite consists of a quantum instruction language called Quil, an open source Python library for construction Quil programs called pyQuil, a library of quantum programs called Grove, and a simulation environment called QVM standing for Quantum Virtual Machine.  pyQuil and Grove are open source programs available on Github.  Users would develop their programs using pyQuil and Grove on their own computer and then submit them to QVM for simulation over a web portal that is available for registered users.  You can access the Forest home page which contains documentation, GitHub links and a workshop video on the Rigetti web site here.

CAS-Alibaba Quantum Computing Laboratory – Superconducting Quantum Computer
The CAS-Alibaba Quantum Company Laboratory is providing access to an 11-qubit superconducting quantum computing that is hosted on the Alibaba cloud.  The hardware system is available through an online interface where users can write quantum circuits, remotely execute them, and download the results over the cloud.  The website supports running a circuit on both the 11 bit quantum computer as well as a simulator.  We have not found a manual for this system yet, but it uses a graphical interface which is mostly self-explanatory.  You can view a video demo showing usage of the system here and access the sign-up page to get on the system here.

ProjectQ is an open-source software framework for quantum computing implemented in Python. It allows users to implement their quantum programs in Python using a powerful and intuitive syntax. ProjectQ can then translate these programs to any type of back-end, be it a simulator run on a classical computer or an actual quantum chip including the IBM Quantum Experience platform.   Other hardware platforms will be supported in the future.  Links to all the code and documentation as well as well as a library called FermiLib to analyze fermionic quantum simulation problems can be found at the ProjectQ web site here.

Cirq is an open source Python library for writing, manipulating, and optimizing Noisy Intermediate Scale Quantum (NISQ) circuits and running them against quantum computers and simulators.  It is currently in an alpha release state and can also be used with OpenFermion-Cirq, a platform for developing quantum algorithms for chemistry problems. Several other software companies are also working with Cirq as early adopters.  Cirq is being promoted by members of the Google AI Quantum Team, but it is not an official Google product.

CirqProject Q is a port between ProjectQ and Cirq that provides two main functions.  First, it is a ProjectQ backend that converts a ProjectQ algorithm to a cirq.Circuit.  And second, it can decompose ProjectQ common gates to native Xmon gates that can be used to simulate a Google quantum computer with ProjectQ.

PennyLane and Strawberry Fields from Xanadu
Xanadu provides two different software products for programming quantum computers.  The first is called PennyLane and is a cross-platform Python library for quantum machine learning, automatic differentiation, and optimization of hybrid quantum-classical computations. PennyLane is interesting because it not only supports Xanadu’s continuous various photonic technology, but it also has plug-ins to support gate based platforms including ProjectQ and IBM’s Qiskit. The second product is called Strawberry Fields and is a full-stack Python library for designing, simulating, and optimizing continuous variable (CV) quantum optical circuits such as the quantum hardware that Xanadu is developing.

Qulacs is a python/C++ library developed at Kyoto University and maintained by QunaSys for fast simulation of large, noisy, or parametric quantum circuits. They provide a graph on the GitHub site that shows Qulacs has better performance than Cirq, ProjectQ, pyQuil, Q#, Qiskit Terra, and QuPy due to the C/C++ backend. (At least, at the time these were tested in October 2018).  Additional documentation is available on the site.

Blueqat is a Python based software framework for universal quantum computing designed for both professionals and beginners. It is also designed to connect the Blueqat backend to the Nvidia CUDA based universal model simulator. Blueqat includes popular simulation algorithms like VQE and QAOE that are easy to use with just for a simple command. It also contains a function to convert quantum annealing QUBO/Ising model problems to Pauli operator simulations that can be run on universal gate model platforms.

Quantum User Interface (QUI)
The University of Melbourne has developed an intuitive programming and simulation environment called QUI which is designed to enable users to visualize and understand the inner workings of a quantum computer. It has a very easy-to-use interface that allows a user to drag-and-drop quantum gates for creating a circuit. One of the key features of the program is its ability to display visualizations of the quantum computer’s state at every stage in the program.  The program appears to support up to five qubits, has very good graphics and allows a user to see results using Bloch spheres, tables, and probability graphs.  QUI is hosted on a remote cluster of servers at the university and is openly available to anyone who registers to be a user.

Quirk is a drag-and-drop simulator that runs in your web browser. It continuously re-simulates as you edit the circuit, providing immediate feedback. It is very good at small-scale iterative experimentation and provides excellent, intuitive graphics for a maximum of 16 qubits.

Qibo is an open-source high-level API provided by Qilimanjaro, written in Python and capable of running a quantum algorithms on top of different quantum computers and simulators. It currently supports the IBM real and virtual machines, the Rigetti virtual machine, and Qilimanjaro’s virtual machine called VQMlite.  A key goal is to provide a standard interface that can be applied to many different backends and we expect other backends to be supported in the future. Qibo is currently in an Alpha release and you can apply to get access to it here.  For more details, you can view Qilimanjaro’s blog posting here.

XACC (eXtreme-scale ACCelerator) is a programming model and software framework that enables quantum acceleration within standard or HPC software workflows. XACC follows a coprocessor machine model that is independent of the underlying quantum computing hardware, thereby enabling quantum programs to be defined and executed on a variety of QPUs types through a unified application programming interface. XACC currently supports the IBM, Rigetti, and D-Wave quantum processors, as well as a number of quantum computer simulators.  You can download XACC from GitHub here, read the documentation here and view a paper posted on arXiv here.

QuTiP: Quantum Toolbox in Python
QuTiP is open-source software for simulating the dynamics of open quantum systems. The QuTiP library depends on the excellent Numpy, Scipy, and Cython numerical packages. In addition, graphical output is provided by Matplotlib QuTiP aims to provide user-friendly and efficient numerical simulations of a wide variety of Hamiltonians, including those with arbitrary time-dependence, commonly found in a wide range of physics applications such as quantum optics, trapped ions, superconducting circuits, and quantum nanomechanical resonators. QuTiP is freely available for use and/or modification on all major platforms such as Linux, Mac OSX, and Windows. Being free of any licensing fees, QuTiP is ideal for exploring quantum mechanics and dynamics in the classroom.

OpenFermion is an open source chemistry package for quantum computers.  It can be used as a tool for generating and compiling physics equations which describe chemical and material systems into representations which can be interpreted by a quantum computer. The most effective quantum algorithms for these problems build upon and extend the power of classical chemistry packages such as Psi4 and PySCF used and developed by research chemists across government, industry and academia. The software includes several plug-ins to run on these packages and also is able to run on the Rigetti Forest and ProjectQ frameworks to run on a variety of different quantum computers.  You can download the software from GitHub here.

QX Quantum Computing Simulator
The QX Simulator is a universal quantum computer simulator developed at QuTech. The QX allows quantum algorithm designers to simulate the execution of their quantum circuits on a quantum computer. The simulator defines a low-level quantum assembly language namely Quantum Code which allows the users to describe their circuits in a simple textual source code file. The source code file is then used as the input of the simulator which executes its content.

Quantum Algorithm Zoo
Stephen Jordan from NIST has cataloged dozens of different algorithms that could theoretically offer substantial speedup when run on a quantum computer.   Each algorithm is described in a single paragraph that also includes an estimate of the speedup and links to references and technical papers that described the algorithm in more detail.   The link to this comprehensive catalog is here.

ScaffCC is a compiler and scheduler for the Scaffold programing language. It is written using the LLVM open-source infrastructure for the purpose of writing and analyzing code for quantum computing applications. It enables users to compile quantum applications written in Scaffold to a low-level quantum assembly format (QASM), apply error correction, and generate time and area metrics. ScaffCC is written to be scalable up to problem sizes where quantum algorithms outperform classical ones, and provides valuable insight into the overheads involved and possible optimizations for a realistic implementation on a future quantum device.  ScaffCC includes one of the most extensive quantum application benchmark suites and the beta release can be found on GitHub here.

Qbsolv from D-Wave
D-Wave has released a tool that takes large Quadratic Unconstrained Binary Optimization (QUBO) problems and partitions them into smaller sub-QUBOs.   The sub-QUBOs are sized to fit into the capacity and topological constraints of the D-Wave quantum processor.  The sub-QUBOs can also be solved classically using a tabu search algorithm built into the Qbsolv.   Since the D-Wave processor is currently limited to 1000 qubits moving to 2000 qubits later in 2017, this program helps users tackle problems that are many times larger than would fit in a single D-Wave quantum processor.   D-Wave has made this software open source so that users can modify it for their own needs.   The software along with source code and a technical manual are available from GitHub here.

Quantum Computing Playground
Quantum Computing Playground was developed in 2014 by a group of Google engineers as a browser-based WebGL Chrome Experiment. It features a GPU-accelerated gate level quantum computer with a simple IDE interface, and its own scripting language with debugging and 3D quantum state visualization features. Quantum Computing Playground can efficiently simulate quantum registers up to 22 qubits, run Grover’s and Shor’s algorithms, and has a variety of quantum gates built into the scripting language itself.    You can access this program by clicking here but it does assume that the user is already familiar with quantum computers and programming techniques.    There is a Help page that provides some documentation and a Step-by-step Demo button that gives you a quick video demo of how to use it.   The web page strongly recommends that you run Quantum Playground with the Google Chrome browser.

Microsoft LIQUi|>
Microsoft has released a software architecture and tool suite for quantum computing.  This tool suite is available without charge and it includes a programming language, optimization and scheduling algorithms, and quantum simulators.   The tool is called LIQUi|> which stands for Language-Integrated Quantum Operations (and yes, the last two characters are the ket symbol).   LIQUi|> can be used to translate a quantum algorithm written in the form of a high-level program into the low-level machine instructions for a quantum device.   Microsoft has this overview Help page that describes the basic functionality of LIQUi|>.    The overview web page also contains an excellent video tutorial that shows you how to install and operate LIQUi|>.    The software suite itself can be downloaded from the GitHub site here.  Although LIQUi|> is still available on GitHub, it appears to have been superseded by the Microsoft Quantum Development kit mentioned above.

Quantum in the Cloud
The University of Bristol will make available access to a four qubit photonic quantum computer.   You can start by using their web interface available here to create a configuration, simulate your configuration and then run the configuration on their four qubit photonic chip.    The simulator is available to everyone, but in order to get access to the actual hardware you will need to request an Access Token.   Once it is granted, you can then run your configuration on their hardware.    Additional documentation on this tool is available here and here.

Raytheon BBN Open Source Software
Raytheon BBN is make available three open source software programs related to Quantum Computing.   You can access them through the Raytheon BBN gibhub site.

@ 10:05 am

Which ones are the most advanced or easier to design new algorithms and simulate them?

    @ 11:21 am

    This is a hard question to answer because it would depend upon your specific problem, what level of quantum expertise you already have, and whether you are concerned about using a quantum software tool that targets a specific quantum hardware machine.

    Doug Finke
    Managing Editor

      @ 9:07 pm

      We have added a new comparison paper in the Scorecards sections that compares four gate level quantum simulator. I would refer you to that paper to better understand the strengths and weaknesses of each of the quantum software platforms listed.

      Doug Finke
      Managing Editor

@ 3:59 pm

You may find Quirk ( ) to be list-worthy. It is a drag-and-drop simulator that runs in your web browser. It continuously re-simulates as you edit the circuit, providing immediate feedback. It is very good at small-scale iterative experimentation.

I’m admittedly biased, but I see Quirk as a small example of what is being gestured towards in the presentation “Media for thinking the unthinkable” (!/MediaForThinkingTheUnthinkable ). I’ve used Quirk to find several novel circuit constructions.

    @ 9:05 pm

    Thanks for letting us know about Quirk. I think our readers will find it quite useful for understanding the operation of small quantum circuits. I have added it to the list of Tools.

    Doug Finke
    Managing Editor

@ 10:32 pm

Hi Doug,

I guess IBM and D-wave designed their interface (including GUI) themselves. Do you know any vendors that design quantum computing interface for other companies?


    @ 9:01 am

    There are a few organizations that have developed software that has a common front-end with different back-ends that support different hardware architectures which can be added as a plug-in. Three organizations that I can think of off-hand that have such software include ProjectQ, Cambridge Quantum Computing, and QCWare. And I’m sure there are others. You might want to check the listing of Software Partners that we have in the Scorecards section of this web site and contact the companies listed if you want to review this more deeply.

    Doug Finke
    Managing Editor

      @ 9:00 pm

      Thanks, Doug. I will look into the listed companies.

      So it seems like there is some degree of standardization in terms of graphic user interface and the companies design their own interface based on that. I wonder why those gate-level interfaces mostly look like IBM Q Composer and the quantum annealing interfaces are like D-wave’s one. Are there any software startups designing a new GUI for their software/middleware?

@ 12:20 pm

fyi – Xanadu’s software is open / git:


    @ 3:14 pm

    Thank-you for your comment. We have added both Xanadu’s PennyLane and also Strawberry Fields software products to this list.

    Doug Finke
    Managing Editor

@ 2:30 am

We have made Qulacs. It’s a library to simulate large, noisy, or parametric quantum circuits.
With C/C++ backend we achieved the fastest quantum circuit simulator!

    @ 7:45 pm

    Thank-you for letting us know about Qulacs. We have added them to this Tools list. The graph you show on GitHub comparing the performance of Qulacs versus other simulators is quite interesting!

    Doug Finke
    Managing Editor


Leave a Reply

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.