Skip to main content

Clifft

Unitary Foundation Docs arXiv License Discord Chat

PyPI version Downloads CI codecov Contributor Covenant

Clifft is a fast exact simulator for near-Clifford quantum circuits.

Built and maintained by the Unitary Foundation.

Clifft accepts Stim-format circuits, extends them with non-Clifford gates, and compiles them into symbolic-coordinate sampling plans. It is designed for circuits whose dominant structure is Clifford, but whose behavior depends on localized non-Clifford operations.

The dense active state has 2^k amplitudes, where k is its active width. The main simulation cost therefore scales with 2^k, rather than directly with the total number of physical qubits n. Non-Clifford operations can increase k, while measurements can reduce it.

Clifft's original design established this factored active-state architecture, described in the Clifft paper. SymFT, by Wang Fang, Huazhe Lou, and Riling Li, is the second-generation successor to SOFT. Its planner builds on SOFT's generalized-stabilizer simulation and Clifft's dense active-state representation. SymFT adds symbolic Clifford-Pauli-frame factorization, adaptive stabilizer-coordinate planning, and direct multi-coordinate kernels. Clifft's current sampler adopts these SymFT developments alongside Clifft-specific compiler, continuation, and API machinery. See the theoretical overview for the fuller lineage and implementation boundaries. The symbolic sampling update explains the migration from the original SVM and reports matched release-target benchmarks.

Why Clifft?

  • Stim-compatible format and API: parse Stim-format circuits with noise, detectors, observables, and repeat blocks, plus non-Clifford extensions.
  • Exact near-Clifford simulation: simulate localized non-Clifford effects without approximating the quantum state.
  • Optimizing compiler pipeline: resolve Clifford coordinates and symbolic dependencies once, then sample many shots from a prepared plan.
  • Active-width scaling: for low-magic circuits, runtime and memory scale with the localized active state rather than the full Hilbert space.

For QEC workflows, Clifft also supports detector-based post-selection, survivor sampling, and stratified importance sampling for rare-event estimation.

An experimental AMD HIP backend is available through an explicit source build and separate API. It is not part of the published wheels or selected automatically.

Performance

Clifft reaches millions of attempted shots per second on several complete near-Clifford circuits using one CPU core. Its compiler keeps the dense quantum state small so that exact near-Clifford simulation can approach the throughput usually associated with specialized Clifford tools.

Clifft v0.10 attempted shots per second across eight near-Clifford workloads

See the Performance guide for comparisons with other simulators, release history, dense Quantum Volume results, and measurement details.

Installation

pip install clifft
Platform / CPU family PyPI wheel
Linux x86_64 with x86-64-v2 support Supported
Linux aarch64 Supported
macOS arm64 Supported
Windows amd64 Supported

All other platforms and CPU families should build from source. See the installation docs.

Quick Start

import clifft

program = clifft.compile("""
    H 0
    CNOT 0 1
    T 2
    M 0 1 2
""")

result = clifft.sample(program, shots=1000, seed=42)
print(result.measurements[:5])

Continue with the Quick Start, or use Choose a Workflow to select an API by the result you need. You can also try Clifft in the web-based interactive playground.

Circuit Inputs

Starting point Path
Stim circuits with Clifft extensions Use the native clifft API for the broadest feature support.
OpenQASM 2 text Pass input_format="qasm2" for supported unitary circuits.
Qiskit QuantumCircuit Use clifft-qiskit, a Qiskit BackendV2 provider.
Cirq cirq.Circuit Use clifft-cirq, a converter and Cirq-style sampler.

See Circuit Inputs for installation commands, minimal examples, and current limitations.

Citation

If you use Clifft in your work, please cite the arXiv preprint below.

@misc{chase2026clifftfastexactsimulation,
      title={Clifft: Fast Exact Simulation of Near-Clifford Quantum Circuits},
      author={Bradley A. Chase and Farrokh Labib},
      year={2026},
      eprint={2604.27058},
      archivePrefix={arXiv},
      primaryClass={quant-ph},
      url={https://arxiv.org/abs/2604.27058},
}

Development

See the building from source guide for build instructions.

AI Acknowledgement

We used generative AI tools during parts of the research, software-development, and writing workflow for this project. These tools assisted with code generation and review, implementation analysis, documentation editing, and checks of selected derivations or arguments. All substantive design, validation, and release decisions were made by the human contributors.

Funding

This work was supported by the U.S. Department of Energy, Office of Science, Office of Advanced Scientific Computing Research, Accelerated Research in Quantum Computing under Award Number DE-SC0025336.

This material is also based upon work supported by the U.S. Department of Energy, Office of Science, National Quantum Information Science Research Centers, Quantum Science Center.

License

Apache-2.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clifft-0.10.1.tar.gz (2.9 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

clifft-0.10.1-cp312-abi3-win_amd64.whl (815.3 kB view details)

Uploaded CPython 3.12+Windows x86-64

clifft-0.10.1-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

clifft-0.10.1-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.26+ ARM64manylinux: glibc 2.28+ ARM64

clifft-0.10.1-cp312-abi3-macosx_14_0_arm64.whl (781.1 kB view details)

Uploaded CPython 3.12+macOS 14.0+ ARM64

File details

Details for the file clifft-0.10.1.tar.gz.

File metadata

  • Download URL: clifft-0.10.1.tar.gz
  • Upload date:
  • Size: 2.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for clifft-0.10.1.tar.gz
Algorithm Hash digest
SHA256 567cb7b88a6ffc00471145b8aae7fd596f887e389bc1a11bfa26dc0c427d1e61
MD5 93fb780ef8f26a1476d658e0a66bdc73
BLAKE2b-256 ea05d19bd06f51043006a7fb86a052f92e6b5da8752c774930b5b52dca879eba

See more details on using hashes here.

Provenance

The following attestation bundles were made for clifft-0.10.1.tar.gz:

Publisher: release.yml on unitaryfoundation/clifft

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file clifft-0.10.1-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: clifft-0.10.1-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 815.3 kB
  • Tags: CPython 3.12+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for clifft-0.10.1-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0804d388e57c1a59c526dad5a97d5a86c2233adcb3b4256296f28a6344bfa635
MD5 e294b04076a71805ee3c5bcbad33ff4c
BLAKE2b-256 bf2a695821eb137d996e9547c33d4c15c5d2ae17109fb63e30c9a13781962c4a

See more details on using hashes here.

Provenance

The following attestation bundles were made for clifft-0.10.1-cp312-abi3-win_amd64.whl:

Publisher: release.yml on unitaryfoundation/clifft

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file clifft-0.10.1-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for clifft-0.10.1-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3977240d9efd218b19e96bc4e8fc4f7cad879ec4a70cefa4085668b808a54d7d
MD5 3f19d7cc2eee62cffa5a958108ebe108
BLAKE2b-256 73c5a834563188bc30a5a6904160ec9407ae3f322aade3adbc394b09e92759bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for clifft-0.10.1-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: release.yml on unitaryfoundation/clifft

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file clifft-0.10.1-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for clifft-0.10.1-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7358c355ff628edd28f09acfaedd1bfbd9bf118bb32d8ec9ef9ab34f8bc0ec15
MD5 afff3583ac468c895e836c2420df8970
BLAKE2b-256 2d7e6f09b30dcf396b31e836e39b0f75fb28b009efa8b6f06b8a80211856b8b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for clifft-0.10.1-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl:

Publisher: release.yml on unitaryfoundation/clifft

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file clifft-0.10.1-cp312-abi3-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for clifft-0.10.1-cp312-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 ff1a15843fd8a59fc49e140804240a5ad6801e68cd41483c66330a3509f9bb90
MD5 8027614315806f96f4adb1fe41f19272
BLAKE2b-256 2cae9c78501555f1a5f41a3c8989fb0393cc20db3924b18b9e363b4e0afe7818

See more details on using hashes here.

Provenance

The following attestation bundles were made for clifft-0.10.1-cp312-abi3-macosx_14_0_arm64.whl:

Publisher: release.yml on unitaryfoundation/clifft

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.10.1 This release

5 files

0.10.0

5 files

0.9.0

5 files

0.8.0

5 files

0.7.0

5 files

0.6.0

5 files

0.5.0

5 files

0.4.1

5 files

0.4.0

5 files

0.3.0

5 files

0.2.0

5 files

0.1.0

5 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page