Pulser
Pulser is an open-source Python software package. It provides easy-to-use libraries for designing and simulating pulse sequences that act on programmable arrays of neutral atoms, a promising platform for quantum computation and simulation.
Online documentation: https://pulser.readthedocs.io
White paper: Quantum 6, 629 (2022)
Source code repository (go here for the latest docs): https://github.com/pasqal-io/Pulser
License: Apache 2.0 – see LICENSE for details
Overview
Pulser is designed to let users create experiments that are tailored to a specific device. In this way, you can have maximal flexibility and control over the behaviour of relevant physical parameters, within the bounds set by the chosen device.

Execution of a pulse sequence designed for a specific device.
Consequently, Pulser breaks free from the paradigm of digital quantum computing and also allows the creation of analog quantum simulations, outside of the scope of traditional quantum circuit approaches. Whatever the type of experiment or paradigm, if it can be done on the device, it can be done with Pulser.
Additionally, Pulser features built-in tools for classical simulation to aid in the development and testing of new pulse sequences.
To get started with Pulser, follow the instructions in Installation and check out the Programming a neutral-atom QPU page to learn what mathematical objects you are programming with Pulser and how to program them. Then, you can see examples of quantum programs written with Pulser on Tutorial: Programming with Pulser.
Getting Started
Fundamentals
Extended Usage
- Introduction to Extended Usage
- Register Layouts & Mappable Registers
- Output Modulation & EOM Mode
- Devices and Virtual Devices
- Parametrized Sequences
- Composite Waveforms
- Interpolated Waveforms
- JSON Serialization
- Local Adressability with DMM
- State preparation with the SLM mask
- XY Hamiltonian
- Phase Shifts and Virtual Z gates
API Reference