ppvm (Pauli Propagation and Virtual Machine) is a fast quantum circuit simulator with Python bindings backed by a high-performance Rust core.
We recommend using uv to manage your Python environment. Install directly from git:
uv add git+https://github.com/QuEraComputing/ppvm.git#subdirectory=ppvm-pythonOr clone and install locally:
git clone https://github.com/QuEraComputing/ppvm
cd ppvm
uv sync --project ppvm-pythonfrom ppvm import PauliSum
state = PauliSum.new(n_qubits=2, terms=["ZZ"])
# Backwards-propagate through a GHZ circuit
state.cnot(0, 1)
state.h(0)
print(state) # 1.000 * IZ
print(state.overlap_with_zero())from ppvm import GeneralizedTableau
tab = GeneralizedTableau(n_qubits=2)
tab.h(0)
tab.cnot(0, 1)
r0 = tab.measure(0)
r1 = tab.measure(1)
print(f"Qubit 0: {r0}, Qubit 1: {r1}") # always correlatedFull documentation is available at the ppvm docs site.
- Trotter simulation -- Trotterized time evolution of the XZZ Ising chain
- Magic State Distillation -- 85-qubit MSD circuit with the generalized stabilizer tableau
- demo/ -- Benchmarking scripts