Version 1.2 Live
Piccolo.jl
A harmonious quantum control and calibration toolkit
Calibration Protocol.jl
1using Piccolo
2using Random
3# Define system
4H_drift = PAULIS[:Z]
5H_drives = [PAULIS[:X], PAULIS[:Y]]
6sys = QuantumSystem(H_drift, H_drives, [1.0, 1.0])
7# Create trajectory
8T, N = 10.0, 100
9times = collect(range(0, T, length=N))
10pulse = ZeroOrderPulse(0.1 * randn(2, N), times)
11qtraj = UnitaryTrajectory(sys, pulse, GATES[:X])
12# Solve
13qcp = SmoothPulseProblem(qtraj, N; Q=100.0, R=1e-2)
14solve!(qcp, max_iter=100)Calibration Protocol.py
1import pypiccolo
2import numpy as np
3# Define system
4H_drift = PAULIS['Z']
5H_drives = [PAULIS['X'], PAULIS['Y']]
6sys = QuantumSystem(H_drift, H_drives, [1.0, 1.0])
7# Create trajectory
8T, N = 10.0, 100
9times = np.linspace(0, T, N)
10pulse = ZeroOrderPulse(0.1 * np.random.randn(2, N), times)
11qtraj = UnitaryTrajectory(sys, pulse, GATES['X'])
12# Solve
13qcp = SmoothPulseProblem(qtraj, N, Q=100.0, R=1e-2)
14solve(qcp, max_iter=100)Piccolo Packages
‘Piccolo.jl is a meta-package for quantum optimal control using the Pade Integrator Collocation (Piccolo) method. This package reexports the following packages
Why Piccolo?
Precision Inspired by Robotics and Aerospace
Piccolo uses proven algorithms from robotics and aerospace fields that have mastered the design of precision control under uncertainty. These methods bring stability, adaptability, and rigor to quantum hardware control.
Real-time Software Design
Design control sequences, calibrate in situ, and compensate for drift and noise as it happens. Piccolo is built for live systems, not offline theory.
Advancing Quantum Research Together
Our work builds on robotics-grade control theory and published research. Let’s explore how Piccolo can support your experiments and future publications.