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.
- 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, and DoRoutes.
- 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).
QPDK ships with a broad set of ready-to-use superconducting circuit components. Browse all the components in the documentation.
| Transmon | Fluxonium |
|---|---|
| Double-pad capacitively shunted qubit | Superinductance-shunted qubit |
![]() |
![]() |
| Unimon | SQUID Junction |
|---|---|
| Resonator-embedded junction qubit | Superconducting quantum interference device |
![]() |
![]() |
| CPW Resonator | Interdigital Capacitor |
|---|---|
| Meandering coplanar waveguide resonator | Finger-style lumped-element capacitor |
![]() |
![]() |
Transmon with Resonator & Probeline — Qubit cell with coupled resonator and probeline section:
QPDK includes some complete, tapeout-ready test chip examples that demonstrate real-world design workflows.
A four-transmon test chip with coupled readout resonators, probeline routing, flux lines, and launchers. Defined entirely in YAML.
The same qubit test chip with magnetic vortex trapping holes filling the ground plane and chip edges.
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.
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- 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
- gsim example notebooks — Electromagnetic simulation examples using Palace and Meep with gdsfactory.
We recommend using uv for package management. just is used
for project-specific recipes.
Install the package with:
uv pip install qpdkOr with pip:
pip install qpdkOptional dependencies for the analytical models and simulation tools (SAX, scqubits, JAX) can be installed with:
uv pip install qpdk[models]To use the PDK in KLayout (for viewing GDS files with correct layers and technology settings), install the technology files:
python -m qpdk.install_techNote
After installation, restart KLayout to ensure the new technology appears.
For contributors, please follow the installation and development workflow instructions.
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)
We welcome contributions of all sizes: new components, improved models, bug fixes, documentation, and notebook tutorials. Please see the contributing guide to get started.
For commercial support, training, and custom PDK development, please visit gdsfactory+ (gdsfactory.com/plus).
QPDK is released under the MIT License.









