The Boulder Opal Toolkits are currently in beta phase of development. Breaking changes may be introduced.

The Boulder Opal Toolkits provide convenience nodes, classes, and functions that can simplify developing and deploying workflows in Boulder Opal.

The toolkits are built on top of the existing Boulder Opal functions and graph operations, and are designed for a particular physical system, or system-agnostic tasks. For example, the superconducting toolkit contains functionalities to simulate and optimize superconducting qubit systems, and the pulse library provides various forms of commonly used control signals.

Each toolkit provides convenience functions, which can be accessed through its corresponding namespace from the Qctrl object. For example, all functions in the utility toolkit live in the namespace of utils of the Qctrl object. For ease of use, some toolkits also define classes for creating abstractions for the physical system. For example, the Cavity class in the superconducting toolkit. These classes also live in the corresponding superconducting namespace of the Qctrl object.

Finally, toolkits may also host convenience graph nodes, which can be used together with other nodes for defining a general computation graph for your task. These operations live in the corresponding namespace of a Graph object. For example, you can access the nodes for defining pulses from the pulses namespace of a Graph object.

For more context on the role of toolkits and their usage in Boulder Opal, see the Boulder Opal Toolkits topic.

Following is a list of toolkits in Boulder Opal:


Toolkit for closed-loop optimizations.


Toolkit for trapped ion systems.


Toolkit for pulse library.


Toolkit for superconducting qubits.


Toolkit for system-agnostic functionality.