Skip to main content

[!WARNING] quchip is an alpha-stage 0.x project. Minor releases may change public APIs. Pin an exact version when reproducibility matters.

quchip

Website · Documentation · Paper

PyPI version Project status: alpha Python 3.11 or newer CI status Documentation build status

quchip is an open-source Python toolkit for modelling superconducting quantum chips.

A predictive chip model needs more than a Hamiltonian. Device physics, control-line transformations, frames, approximations, dissipation, and measured observables all need explicit places in the model. Gain, delay, and crosstalk remain properties of the control chain instead of being folded into Hamiltonian coefficients by hand.

Declare the chip once, then use the same model for dressed-state analysis, model reduction, control sequences, open-system simulation, parameter sweeps, and JAX gradients.

quchip pipeline from declared devices and control parameters through model resolution, simulation, observables, and gradients

QuTiP is the default simulation backend. The optional dynamiqs backend is JAX-native and keeps declared device and control parameters differentiable through a solve. The scqubits integration imports and exports selected device and composite models.

quchip uses GHz for ordinary frequencies, ns for time, and mK for temperature. The implemented conventions and approximations are documented in the physics guide.

Install

quchip requires Python 3.11 or newer.

python -m pip install quchip

Install optional support for dynamiqs, graph visualization, or scqubits as needed:

python -m pip install 'quchip[dynamiqs]'
python -m pip install 'quchip[viz]'
python -m pip install 'quchip[scqubits]'

Extras can be combined. To install the current source instead:

git clone https://github.com/quchip/quchip.git
cd quchip
python -m pip install .

Define and inspect a chip

from quchip import RWA, Capacitive, Chip, DuffingTransmon, Resonator

qubit = DuffingTransmon(
    freq=5.0,
    anharmonicity=-0.30,
    levels=6,
    label="q",
)
readout = Resonator(
    freq=6.8,
    levels=10,
    quality_factor=6800,
    label="r",
)
coupling = Capacitive(qubit, readout, g=0.060, label="qr")

chip = Chip(
    [qubit, readout],
    couplings=[coupling],
    frame="rotating",
    approximation=RWA(),
)

authored_hamiltonian = chip.unresolved_hamiltonian()
resolved_hamiltonian = chip.hamiltonian()

f01 = chip.freq(qubit)
f12 = chip.transition_frequency(qubit, 1, 2)
fr0 = chip.freq(readout, when={qubit: 0})
fr1 = chip.freq(readout, when={qubit: 1})
chi = (fr1 - fr0) / 2

unresolved_hamiltonian() preserves the local device and coupling expressions you declared. hamiltonian() applies the chip's basis, frame, and approximation. Both return inspectable symbolic expressions; call .matrix(t=...) when a resolved expression is time-dependent and you need its numerical array.

The remaining calls read dressed transition frequencies and the resonator frequency conditioned on the qubit state. Their half-difference gives the dispersive shift $\chi$.

The defining and inspecting a chip guide continues from this example with LaTeX output, term inspection, frame transformations, projections, and graph views.

Add dynamics and readout

The dynamics guide adds control lines and pulse sequences to the chip above. It compares short and selective Gaussian qubit drives in the full multilevel model, then simulates conditional resonator readout.

Short and long Gaussian pulses with multilevel qubit populations

Conditional resonator IQ paths with emphasized final points

Guides

Project status and contributing

Report bugs and model requests through GitHub Issues. Use Discussions for questions and open-ended proposals. Read the contributing guide before making code or physics changes.

Paper and citation

The accompanying paper is quchip: A Differentiable Toolkit for Modeling Quantum Devices (arXiv:2607.17081).

The interactive walkthrough follows one five-device model through declaration, crosstalk identification and correction, adiabatic reduction from 576 to 16 dimensions, and gradient-based recovery of four directed crosstalk parameters.

If you use quchip in your work, please cite:

@misc{alyousef2026quchip,
      title={quchip: A Differentiable Toolkit for Modeling Quantum Devices},
      author={Ibraheem AlYousef},
      year={2026},
      eprint={2607.17081},
      archivePrefix={arXiv},
      primaryClass={quant-ph},
      doi={10.48550/arXiv.2607.17081},
      url={https://arxiv.org/abs/2607.17081},
}

Citation metadata for the software is also available in CITATION.cff.

License

quchip is distributed under the Apache License 2.0. See LICENSE.

Download files

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

Source Distribution

quchip-0.2.1.tar.gz (4.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quchip-0.2.1-py3-none-any.whl (461.4 kB view details)

Uploaded Python 3

File details

Details for the file quchip-0.2.1.tar.gz.

File metadata

  • Download URL: quchip-0.2.1.tar.gz
  • Upload date:
  • Size: 4.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for quchip-0.2.1.tar.gz
Algorithm Hash digest
SHA256 72ed26c9dd9e67bb41474b81645dad19f8bf86b7f997cf61893afa40f6258d14
MD5 d4980a522cb871da7f2e7d25a6067cc4
BLAKE2b-256 5590f3fd1d24cb9b13ad61ce9633f673cc6409f0044c66e7dce4bf2e15a26eab

See more details on using hashes here.

Provenance

The following attestation bundles were made for quchip-0.2.1.tar.gz:

Publisher: release.yml on quchip/quchip

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file quchip-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: quchip-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 461.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for quchip-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a0519cb9edfa67840f12381ba56d89506888805b959399e890fc9aac5b2c9aa2
MD5 75b06e87432a881437de8c937a7e8e3f
BLAKE2b-256 50823fbc5e5a48064c5e5aec1d05abd46e4014053bba608a0883887eea5c60d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for quchip-0.2.1-py3-none-any.whl:

Publisher: release.yml on quchip/quchip

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page