Skip to main content

Qiskit Metal | for quantum device design & analysis

Project description

Qiskit Metal

LicenseReleasejoin slackDOI

Welcome to Qiskit Metal! Qiskit Metal is an open-source framework for engineers and scientists to design superconducting quantum devices with ease.


We encourage installing Qiskit Metal via the pip tool (a python package manager).

pip install qiskit-metal

PIP will handle all dependencies automatically and you will always install the latest (and well-tested) version.

It is also recommended that you make a new conda environment before installing:

conda env create -n <env_name> environment.yml
conda activate <env_name>
python -m pip install --no-deps -e .

Source Code Installation

To edit the code and truly customize the experience, if PyPI gives you trouble, or to install from source, follow the instructions in the documentation and/or the installation instructions for developers.

Creating Your First Quantum Component in Qiskit Metal:

Now that Qiskit Metal is installed, it's time to begin working with it. We are ready to try out a quantum chip example, which is simulated locally using the Qiskit MetalGUI element. This is a simple example that makes a qubit.

$ python
>>> from qiskit_metal import designs, draw, MetalGUI, Dict, open_docs
>>> design = designs.DesignPlanar()
>>> design.overwrite_enabled = True
>>> design.chips.main
>>> design.chips.main.size.size_x = '11mm'
>>> design.chips.main.size.size_y = '9mm'
>>> gui = MetalGUI(design)

Launch the Qiskit Metal GUI to interactively view, edit, and simulate a QDesign:

>>> gui = MetalGUI(design)

Let's create a new qubit (a transmon) by creating an object of this class.

>>> from qiskit_metal.qlibrary.qubits.transmon_pocket import TransmonPocket
>>> q1 = TransmonPocket(design, 'Q1', options=dict(connection_pads=dict(a=dict())))
>>> gui.rebuild()
>>> gui.edit_component('Q1')
>>> gui.autoscale()

Change options.

>>> q1.options.pos_x = '0.5 mm'
>>> q1.options.pos_y = '0.25 mm'
>>> q1.options.pad_height = '225 um'
>>> q1.options.pad_width  = '250 um'
>>> q1.options.pad_gap    = '50 um'

Update the component geoemtry, since we changed the options.

>>> gui.rebuild()

Get a list of all the qcomponents in QDesign and then zoom on them.

>>> all_component_names = design.components.keys()
>>> gui.zoom_on_components(all_component_names)

Closing the Qiskit Metal GUI.

>>> gui.main_window.close()

A script is available here, where we also show the overview of Qiskit Metal.

Community and Support

Watch the recorded tutorials

Video Tutorials

The streaming will also be recorded and made available here for offline review.

Take part in the live tutorials and discussion

Through June 2021 we are offering live tutorials and Q&A. Sign up to receive an invite to the upcoming sessions. The streaming will also be recorded and made available for offline review. Find here more details on schedule and use the Slack channel to give us feedback and to request the most relevant content to you.

Get help: Slack

join slack

Use the slack channel. Join qiskit slack and then join the #metal channel to communicate with the developers and other participants. You may also use this channel to inquire about collaborations.

Contribution Guidelines

If you'd like to contribute to Qiskit Metal, please take a look at our contribution guidelines. This project adheres to Qiskit's code of conduct. By participating, you are expected to uphold this code. We use GitHub issues for tracking requests and bugs. Please join the Qiskit Slack community and use our Qiskit Slack channel for discussion and simple questions. For questions that are more suited for a forum we use the Qiskit tag in the Stack Exchange.

Next Steps

Now you're set up and ready to check out some of the other examples from our Qiskit Metal Tutorials repository or Qiskit Metal Documentation.

Authors and Citation

Qiskit Metal is the work of many people who contribute to the project at different levels. Metal was conceived and developed by Zlatko Minev at IBM; then co-led with Thomas McConkey. If you use Qiskit Metal, please cite as per the included BibTeX file. For icon attributions, see here.

Changelog and Release Notes

The changelog for a particular release is dynamically generated and gets written to the release page on Github for each release. For example, you can find the page for the 0.0.4 release here: The changelog for the current release can be found in the releases tab: Releases The changelog provides a quick overview of notable changes for a given release. Additionally, as part of each release detailed release notes are written to document in detail what has changed as part of a release. This includes any documentation on potential breaking changes on upgrade and new features.


Apache License 2.0

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qiskit_metal-0.0.4.tar.gz (2.2 MB view hashes)

Uploaded source

Built Distribution

qiskit_metal-0.0.4-py3-none-any.whl (2.4 MB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page