Open Source · Apache License 2.0

Documentation for
cryogenic wiring

A comprehensive suite of tools for managing and visualizing dilution refrigerator wiring configurations for quantum computing systems.

RT50K4KStillCPMXCDUTC00(Q00)10 dB20 dBLowpa20 dBEcco.RS00(Q00..Q03)10 dB10 dBRR00(Q00..Q03)+20 dB+40 dBISOControlReadout SendReadout Return

Features

Everything you need to document, validate, and visualize your dilution refrigerator wiring.

YAML-Based Configuration

Define wiring setups in human-readable YAML with reusable modules and component catalogs.

Schema Validation

JSON Schema + Pydantic v2 ensure your configurations are always correct and consistent.

Diagram Generation

Publication-quality SVG wiring diagrams suitable for academic papers and presentations.

CLI & Web UI

Full-featured CLI tool and interactive web application for every workflow preference.

Cooldown History

Organize wiring configurations by year and cooldown ID with automatic versioning and diffs.

Module System

Define reusable component templates with per-line overrides for flexible configuration.

Data Model

A standardized format for describing RF/microwave wiring inside dilution refrigerators.

Temperature Stages

RT 300 K
50K 50 K
4K 4 K
Still ~800 mK
MXC ~10 mK
CP ~10 mK

Component Types

Component Key Field Label
Attenuator value_dB 10 dB
Filter filter_type Lowpass
Isolator - ISO
Amplifier gain_dB +40 dB

Line Types

Control

Drive signals to qubits

Readout Send

Measurement stimulus

Readout Return

Amplified return signal

Diagram as a Code

Build, validate, and visualize wiring configurations programmatically with cryowire.

pip install cryowire
01

Define Components

Create typed components with Pydantic v2 models.

from cryowire import (
    CooldownBuilder, ChipConfig, CooldownMetadata,
    Attenuator, Filter, Isolator, Amplifier, Stage,
)

catalog = {
    "XMA-10dB": Attenuator(manufacturer="XMA", model="2082-6431-10", value_dB=10),
    "XMA-20dB": Attenuator(manufacturer="XMA", model="2082-6431-20", value_dB=20),
    "Eccosorb":  Filter(manufacturer="XMA", model="EF-03", filter_type="Eccosorb"),
    "K&L-LPF":  Filter(manufacturer="K&L", model="5VLF", filter_type="Lowpass"),
    "RT-AMP":   Amplifier(manufacturer="MITEQ", model="AFS3", amplifier_type="RT", gain_dB=20),
    "LNF-HEMT": Amplifier(manufacturer="LNF", model="LNC03_14A", amplifier_type="HEMT", gain_dB=40),
    "LNF-ISO":  Isolator(manufacturer="LNF", model="ISC4_12A"),
}
02

Build a Cooldown

Fluent builder API with per-line overrides.

cooldown = (
    CooldownBuilder(
        chip=ChipConfig(name="sample-8q", num_qubits=8, qubits_per_readout_line=4),
        metadata=CooldownMetadata(cryo="my-cryo", cooldown_id="cd001", date="2026-03-09"),
        catalog=catalog,
        control={
            Stage.K50:  ["XMA-10dB"],
            Stage.K4:   ["XMA-20dB"],
            Stage.MXC:  ["XMA-20dB", "Eccosorb"],
        },
        readout_send={
            Stage.K50: ["XMA-10dB"],
            Stage.K4:  ["XMA-10dB"],
        },
        readout_return={
            Stage.RT:  ["RT-AMP"],
            Stage.K50: ["LNF-HEMT"],
            Stage.CP:  ["LNF-ISO", "LNF-ISO"],
        },
    )
    .add("C00", Stage.STILL, "K&L-LPF")       # per-line override
    .remove("RR00", Stage.CP, index=1)          # remove second isolator on RR00
    .representative("C00", "RS00", "RR00")      # mark lines for diagram
    .build()
)
03

Summary & Diagram

Generate terminal tables, Markdown, HTML, and publication-quality SVG diagrams.

# Print a Rich-formatted table to the terminal
cooldown.summary()

# Export as Markdown or HTML
md = cooldown.summary(fmt="markdown")
html = cooldown.summary(fmt="html")

# Generate a publication-quality wiring diagram
cooldown.diagram(output="wiring.svg", representative=True)
Output: wiring.svg
Wiring diagram generated by cryowire
04

Export & Validate

Write YAML files and validate against the spec.

# Export as a cooldown directory
cooldown.write("output/")
# output/
# ├── metadata.yaml
# ├── chip.yaml
# ├── components.yaml
# ├── control.yaml
# ├── readout_send.yaml
# └── readout_return.yaml

# Validate existing YAML files
from cryowire import validate_wiring
validate_wiring(data)  # raises jsonschema.ValidationError on failure

Ecosystem

A modular, well-separated architecture across eight repositories.

Formal specification and JSON Schema definitions for the YAML wiring format. Defines stages, component types, and line types.

JSON SchemaSpecification

Python library and CLI providing data models, validation, diagram generation, programmatic building, and a terminal interface for wiring configurations.

PythonCLIPydanticmatplotlib

Web application with FastAPI backend and Next.js frontend for browsing, editing, and managing wiring configs.

FastAPINext.jsDocker

Read-only browser for cooldown.yaml files. Drop a file to instantly view cooldown metadata, wiring summary tables, and line details.

Try it live →
ReactViteTypeScript

GitHub template repository for creating dilution refrigerator wiring data repositories with recommended structure.

TemplateYAML

VS Code extension that previews cooldown.yaml files as interactive wiring diagrams in a side panel with auto-reload.

VS CodeTypeScript

Chrome extension that detects cooldown.yaml on GitHub and opens the cryowire viewer with one click.

ChromeReactTypeScript

GitHub Action that auto-discovers cooldown directories and runs validate + build in CI on every push and pull request.

GitHub ActionsCI/CD

Quick Start

Get up and running with cryowire in minutes.

01

Install

pip install cryowire
02

Initialize a data project

cryowire init ./my-data
cd my-data
03

Customize components & modules

vi components.yaml        # define your lab's parts
vi templates/*.yaml       # adjust standard wiring modules
04

Create a new cooldown

cryowire new your-cryo --qubits 8
05

Edit your wiring

# your-cryo/2026/cd001/control.yaml
modules:
  ctrl:
    stages:
      50K:
        - XMA-10dB
      4K:
        - XMA-20dB
      MXC:
        - XMA-20dB
        - Eccosorb

lines:
  - line_id: C00
    qubit: Q00
    module: ctrl
06

Build & validate

cryowire build your-cryo/2026/cd001/
cryowire validate your-cryo/2026/cd001/