Welcome to SpinPulse’s documentation!¶
We introduce SpinPulse, an open-source python package for simulating spin qubit-based quantum computers at the pulse-level.
SpinPulse models the specific physics of spin qubits, particularly through the inclusion of classical non-Markovian noise. This enables realistic simulations of native gates and noise-accurate quantum circuits, in order to support hardware development.
In SpinPulse, a quantum circuit defined in Qiskit is first transpiled into the native gate set of our model (see (1) in Fig. 1) and then converted to a pulse sequence (see (2) in Fig. 1).
This pulse sequence is subsequently integrated numerically in the presence of a simulated noisy experimental environment (see (3) in Fig. 1), which can account for non-Markovian noise, a key noise feature of spin qubits.
We showcase workflows including transpilation, pulse-level compilation, hardware benchmarking, quantum error mitigation, and large-scale simulations via integration with the tensor-network library Quimb.
We expect SpinPulse to be a valuable open-source tool for the quantum computing community, fostering efforts to devise
high-fidelity quantum circuits and improved strategies for quantum error mitigation and correction, and we encourage people to join this effort and to propose improvement and feature tailored to spin-qubit technology.
This documentation provides comprehensive guides, API references, and examples to help you get started with SpinPulse. The documentation is complemented by a paper published in arxiv.
Fig. 1 SpinPulse working scheme.¶
Package Modules¶
The transpilation module provides a set of classes that enable the simulation of quantum circuits defined in Qiskit on silicon-based spin-qubit hardware models.
The environment module provides a set of classes for defining and configuring a quantum experimental environment tailored to spin-qubit systems.
The characterizationmodule provides a set of functions for characterizing spin-qubit control operations and quantifying noise strength.
Installation¶
To install the package, consult the installation page.
Package tutorials¶
The following tutorial notebooks, generated from the notebooks in docs/source/customapi/tutorials,
illustrate the usage of the SpinPulse package steps by steps.
BasicUsage Introduces the core workflow of
SpinPulse, from environment definition to pulse-level simulation.TimeTracesExamples Shows the generation and analysis of noise time traces used in pulse-level simulations.
ParametrizingfromQPUSpecs Explains how to parametrize SpinPulse simulations directly from hardware (QPU) specifications.
RamseySpinEcho Illustrates Ramsey and spin-echo experiments for characterizing dephasing and coherence properties of spin qubits.
AverageSuperoperatorsNoisyGates Shows how to compute average quantum channels for noisy native gates under stochastic noise realizations.
BernsteinVazirani Demonstrates the execution of the Bernstein–Vazirani algorithm within the
SpinPulsepackage.QuimbSimulation Presents an example of integrating
SpinPulsewithQuimbfor tensor-network-based circuit simulation.
API documentation¶
The API documentation provides a detailed description of the SpinPulse package architecture, including its core modules, classes and functions.
Citing¶
If you use SpinPulse in your research work, please cite our publication
@misc{vermersch2025spinpulse,
title={The SpinPulse library for transpilation and noise-accurate simulation of spin qubit quantum computers},
author={Beno\^it Vermersch, Oscar Gravier, Nathan Miscopein, Julia Guignon, Carlos Ramos Marim\'on, Jonathan Durandau, Matthieu Dartiailh, Tristan Meunier and Valentin Savin},
year={2026},
eprint={2601.10435},
archivePrefix={arXiv},
primaryClass={quant-ph},
url={https://arxiv.org/abs/2601.10435},
}
Contents