Welcome to SpinPulse’s documentation!

License

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.

_images/global_fig.png

Fig. 1 SpinPulse working scheme.

Package Modules

Transpilation

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.

Noise Environment

The environment module provides a set of classes for defining and configuring a quantum experimental environment tailored to spin-qubit systems.

Qubits Characterization

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 SpinPulse package.

  • QuimbSimulation Presents an example of integrating SpinPulse with Quimb for 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.XXXX},
      archivePrefix={arXiv},
      primaryClass={quant-ph},
      url={https://arxiv.org/abs/2601.XXXX},
}