QPDK is an open-source process design kit (PDK) for superconducting quantum RF applications built on gdsfactory. It provides a library of parametric quantum circuit components (transmon qubits, CPW resonators, Josephson junctions, etc.), analytical S-parameter models, routing utilities, and test-chip examples.
QPDK gives researchers, engineers, and students a scriptable, version-controlled foundation to go from concept to GDSII in minutes.
Key Features
- Rich component library — Transmons, fluxonium, unimon qubits, CPW resonators, interdigital capacitors, SQUID junctions, launchers, bump bonds, TSVs, and more.
- Parametric & composable — Combine Python functions (
@gf.cell) into hierarchical designs or define full chips in YAML. - Analytical circuit models — Fast, differentiable S-parameter simulations powered by SAX and JAX.
- Automated routing — CPW-aware routing strategies with auto-tapers for complex layouts.
- KLayout integration — Layer definitions, technology files, and cross sections for immediate visual inspection.
- Regression-tested — GDS regression tests, netlist checks, and model validation.
- Notebook-driven workflows — Jupyter notebooks for frequency modeling, tolerance analysis, parameter extraction, pulse-level simulation, and optimization.
- GDSFactory+ integration — Seamlessly design, verify, and validate chips with the enhanced commercial extension. Includes access to 43+ foundry PDKs, graphical layout and schematic editors directly in VSCode, an AI assistant, and comprehensive verification tools (DRC, LVS, Connectivity checks). See the QPDK graphical workflow tutorial.
Notable Components
QPDK ships with a broad set of ready-to-use superconducting circuit components. Browse all the components in the documentation.
Qubits
| Transmon | Fluxonium |
|---|---|
| Double-pad capacitively shunted qubit | Superinductance-shunted qubit |
| Unimon | SQUID Junction |
|---|---|
| Resonator-embedded junction qubit | Superconducting quantum interference device |
Passive Components
| CPW Resonator | Interdigital Capacitor |
|---|---|
| Meandering coplanar waveguide resonator | Finger-style lumped-element capacitor |
Composite Components
Transmon with Resonator & Probeline — Qubit cell with coupled resonator and probeline section:
Sample Test Chips
QPDK includes some complete, tapeout-ready test chip examples that demonstrate real-world design workflows.
Qubit Test Chip
A four-transmon test chip with coupled readout resonators, probeline routing, flux lines, and launchers. Defined entirely in YAML.
Filled Qubit Test Chip
The same qubit test chip with magnetic vortex trapping holes filling the ground plane and chip edges.
Flip-Chip (Flipmon) Test Chip
A four-flipmon test chip demonstrating flip-chip qubit integration with coupled readout resonators, interdigital capacitor inputs, probeline routing, and flux lines — shown here with ground-plane filling and chip edges.
Resonator Test Chip
A 16-resonator characterization chip with systematically varied CPW widths and gaps across two probelines. Ideal for extracting loss tangents and kinetic inductance. Also check the notebook demonstrating network model simulations and fabrication tolerance Monte Carlo.
Simulation Showcase
QPDK comes with worked examples for circuit, quantum, and electromagnetic simulation. Every figure below is taken from one of the example notebooks as rendered in the documentation. Click a title to open the full notebook.
Circuit & Network Models
| Resonator Test Chip Transmission | Fabrication Tolerance Monte Carlo |
|---|---|
| Both probelines of the 16-resonator chip, via SAX | Resonance spread from CPW width and gap variations |
Quantum Dynamics & Hamiltonians
| Flux-Tunable Transmon Spectrum | Pulse-Level Gate Simulation |
|---|---|
| Energy levels versus external flux with scQubits | X-gate populations and leakage in QuTiP-QIP |
| Dispersive Shift | Differentiable Transmon Optimization |
|---|---|
| Block-diagonalized dispersive shift with Pymablock | Circulax JAX gradients to target f and anharmonicity |
Electromagnetic Field Solvers
| COMSOL Resonator | HFSS Eigenmode | Elmer Capacitance |
|---|---|---|
| Driven E-field at resonance | Meandered CPW eigenmode field | IDC capacitance vs. FEM remeshing |
COMSOL Transmon Capacitance — Electrostatic potential and field around the double-pad transmon:
The same workflows extend to HFSS driven-modal and Q2D impedance analyses, Qucs-S model validation, and NetKet and Optuna optimization.
Quick Start
import gdsfactory as gf
from qpdk import PDK
PDK.activate()
# Create a transmon qubit
from qpdk.cells.transmon import double_pad_transmon
qubit = double_pad_transmon(pad_size=(250, 400), pad_gap=15)
qubit.plot()
# Build a complete test chip from YAML
from gdsfactory.read import from_yaml
from qpdk import tech
chip = from_yaml(
"qpdk/samples/qubit_test_chip.pic.yml",
routing_strategies=tech.routing_strategies,
)
chip.show() # Opens in KLayout
Graphical Workflow with GDSFactory+
Prefer a visual workflow? QPDK runs in GDSFactory+, where you can place components in the schematic editor, inspect the layout, and run circuit simulations without leaving VSCode. The Quantum-RF graphical workflow tutorial walks through exploring and simulating a resonator with QPDK step by step.
Examples & Notebooks
- PDK cells in the documentation — Collection of all available geometries.
qpdk/samples/— Example layouts and simulations including qubit test chips, resonator arrays, routing demos, and 3D export.notebooks/— Jupyter notebooks covering:- Resonator frequency modeling and S-parameter analysis
- Circuit simulation with SAX
- Monte Carlo fabrication tolerance analysis
- Hamiltonian parameter extraction with scqubits
- Pulse-level quantum gate simulation with QuTiP
- Capacitor geometry optimization with Optuna
- Dispersive shift calculation with Pymablock
- Transmon design optimization with NetKet
- GDSFactory+ Quantum-RF tutorial — Graphical design and simulation of a resonator with QPDK in GDSFactory+.
- gsim example notebooks — Electromagnetic simulation examples using Palace and Meep with gdsfactory.
Installation
We recommend using uv for package management. just is used
for project-specific recipes.
Installation for Users
Install the package with:
uv pip install qpdk
Or with pip:
pip install qpdk
Optional dependencies for the analytical models and simulation tools (SAX, scqubits, JAX) can be installed with:
uv pip install "qpdk[models]"
models is one of several extras — hfss, circulax, netket, pymablock, qutip, ray, scqubits and graphics
pull in the remaining simulation backends, and extras compose ("qpdk[models,netket]"). See
Installing optional extras for
what each one installs and which notebooks need it.
KLayout Technology Installation
To use the PDK in KLayout (for viewing GDS files with correct layers and technology settings), install the technology files:
python -m qpdk.install_tech
Installation for Contributors
For contributors, please follow the installation and development workflow instructions.
Project Structure
quantum-rf-pdk/
├── qpdk/ Core Python package
│ ├── cells/ Component definitions (transmons, resonators, capacitors, …)
│ ├── models/ Analytical models, mostly S-parameters
│ ├── samples/ Example layouts and complete test chips
│ ├── klayout/ KLayout technology files
│ └── tech.py Layer stack, cross sections, routing strategies
├── tests/ Regression, integration and unit tests
├── notebooks/ Jupyter notebooks for design and simulation workflows
└── docs/ Sphinx documentation (HTML + PDF)
Documentation
Contributing
We welcome contributions of all sizes: new components, improved models, bug fixes, documentation, and notebook tutorials. Please see the contributing guide to get started.
Support
For commercial support, training, and custom PDK development, please visit gdsfactory+ (gdsfactory.com/plus).
License
QPDK is released under the MIT License.
Metadata
Release files for qpdk 0.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| qpdk-0.4.1.tar.gz | 271.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qpdk-0.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 580.1 kB
Release files / qpdk-0.4.1.tar.gz
| Download URL | qpdk-0.4.1.tar.gz |
|---|---|
| Size | 271.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
57aa397696ad745750a3c2447a5c9a3b2d45a8557d2af9e5e81f1e80d2ad607f
|
|
BLAKE2b-256 checksum How to use checksums |
ab8530c95a44df3cf5271418e14e8ab0fc6d457320ce4615d0c8743f7f0a99d1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / qpdk-0.4.1-py3-none-any.whl
| Download URL | qpdk-0.4.1-py3-none-any.whl |
|---|---|
| Size | 308.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
18d55b19063d894b956960757483433b31dcd70c87595bf16f28ff95eed379a9
|
|
BLAKE2b-256 checksum How to use checksums |
e668f9f898f6294438d4dd68cce12626eff3303bdc68612944c4ebc3c4cfdf41
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency log