QEC circuits under realistic noise
Depolarizing, Pauli-error, and atom-loss channels through deep stabilizer circuits. Loss is a first-class concept, not bolted on after the fact.
Past state-vector limits
Both backends scale past the comfort zone of state-vector simulation. The generalized tableau handles hundreds of qubits when non-Clifford weight stays modest; Pauli propagation scales by truncating low-magnitude terms.
Matches the device
Noise models, loss channels, and gate sets mirror what QuEra's neutral-atom devices actually do — built to shorten the loop between paper circuit and machine.
§ 2Install
We recommend uv for managing your Python environment. The native extension compiles automatically on install.
uv add git+https://github.com/QuEraComputing/ppvm.git#subdirectory=ppvm-python Continue to the Python Quick Start →
Add the crates relevant to your workload. ppvm-pauli-sum
(the Pauli-propagation engine) is the usual entry point; the others
layer on top.
[dependencies]
ppvm-pauli-sum = { git = "https://github.com/QuEraComputing/ppvm" }
ppvm-tableau = { git = "https://github.com/QuEraComputing/ppvm" }
ppvm-stim = { git = "https://github.com/QuEraComputing/ppvm" }
ppvm-sym = { git = "https://github.com/QuEraComputing/ppvm" }
Requires Rust edition 2024. On x86, set
RUSTFLAGS="-C target-feature=+aes,+sse2" — gxhash needs AES.
Paste this prompt into your agent (Claude Code, Cursor, Codex, …)
before asking it to write ppvm code. The agent installs
ion if needed, fetches the
ppvm-usage skill, and confirms it's active — no manual
steps on your side.
Before you write any ppvm code for me, set up the ppvm-usage skill so you
follow the project's API conventions correctly.
1. Check whether the `ion` CLI is on PATH. If not, install it from
https://ion.rogerluo.dev and add it to PATH. ion is the skill manager
this project uses to distribute agent-facing documentation.
2. Install the ppvm-usage skill:
ion add QuEraComputing/ppvm/skills/ppvm-usage
The skill lives at https://github.com/QuEraComputing/ppvm under
skills/ppvm-usage/SKILL.md and covers the Heisenberg-picture gate
order, the Config-generic PauliSum, truncation kwargs, and the full
Python + Rust call surface for both backends.
3. Reload your available skills if your agent needs that, then confirm
that ppvm-usage is active before continuing.
4. Read the skill end-to-end before producing ppvm code. When you start
writing, read it again for the specific section you need.
Reply with the skill version you installed and a one-line summary of
what it covers, then wait for my actual task. Continue to the Quick Start, read the Developer Guide, or browse the API Reference.