# C3 - An integrated tool-set for Control, Calibration and Characterization
[](https://codecov.io/gh/q-optimize/c3)
[](https://lgtm.com/projects/g/q-optimize/c3/context:python)
<a href="https://codeclimate.com/github/q-optimize/c3/maintainability"><img src="https://api.codeclimate.com/v1/badges/a090831b106f863dc223/maintainability" /></a>
[](https://github.com/q-optimize/c3/actions/workflows/build_package.yml)
[](https://c3-toolset.readthedocs.io/en/latest/?badge=latest)
[](https://github.com/psf/black)
[](https://pypi.python.org/pypi/c3-toolset/)
[](https://pypi.python.org/pypi/c3-toolset/)
[](https://pypi.python.org/pypi/c3-toolset/)
[](https://mybinder.org/v2/gh/q-optimize/c3/dev)
The C3 package is intended to close the loop between open-loop control optimization, control pulse calibration, and model-matching based on calibration data.
## Installation
```bash
pip install c3-toolset
```
If you want to try out the bleeding edge (possibly buggy) version under development:
```bash
pip install c3-toolset-nightly
```
There is no official support for `c3-toolset` on Apple Silicon devices, but you can check the [`CONTRIBUTING.md`](CONTRIBUTING.md#development-on-apple-silicon) for instructions on setting up an experimental version.
## Usage
C3 provides a simple Python API through which it may integrate with virtually any experimental setup.
Contact us at [c3@q-optimize.org](mailto://quantum.c3po@gmail.com).
The paper introducing C3 as a scientific concept can be found in [Wittler2021](https://arxiv.org/abs/2009.09866). Software and implementation details are described in [SahaRoy2022](https://arxiv.org/abs/2205.04829).
Documentation is available [here](https://c3-toolset.readthedocs.io) on RTD.
### Examples
The following notebooks are available in the `examples/` directory and can also be run online using the `launch|binder` badge above:
- [Model-based Optimal Control for Single Qubit Gate](examples/two_qubits.ipynb)
- [Model-based Optimal Control for Two Qubit Engtangling Gate](examples/two_qubit_entangling_gate.ipynb)
- [Model-free Calibration on Simulated Hardware](examples/Simulated_calibration.ipynb)
- [Simulated Model Learning with data from Simulated Calibration](examples/Simulated_Model_Learning.ipynb)
- [Full loop - Control, Calibration & Characterization](examples/Full_loop_single_qubit.ipynb)
- [Minimum example for using the Qiskit interface](examples/c3_qiskit.ipynb)
- [Minimum example for optimizing piece-wise constant pulses](examples/Piecewise_constant_controls.ipynb)
- [Understanding the ParameterMap](examples/Parametermap.ipynb)
- [Frequency Dependent Coupling](examples/frequency_dependent_coupling.ipynb)
## Contributing
If you wish to contribute, please check out the issues tab and also the [CONTRIBUTING.md](CONTRIBUTING.md) for useful resources.
The source code is available on Github at [https://github.com/q-optimize/c3](https://github.com/q-optimize/c3).
## Citation
If you use `c3-toolset` in your research, please cite it as below:
```
@article{Wittler2021,
title={Integrated Tool Set for Control, Calibration, and Characterization of Quantum Devices Applied to Superconducting Qubits},
volume={15},
DOI={10.1103/physrevapplied.15.034080},
number={3},
journal={Physical Review Applied},
author={Wittler, Nicolas and Roy, Federico and Pack, Kevin and Werninghaus, Max and Saha Roy, Anurag and Egger, Daniel J. and Filipp, Stefan and Wilhelm, Frank K. and Machnes, Shai},
year={2021},
month={Mar}
}
```