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.0.tar.gz (2.7 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.0-cp312-abi3-win_amd64.whl (815.3 kB view details)

Uploaded CPython 3.12+Windows x86-64

clifft-0.10.0-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.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl (999.4 kB view details)

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

clifft-0.10.0-cp312-abi3-macosx_14_0_arm64.whl (780.4 kB view details)

Uploaded CPython 3.12+macOS 14.0+ ARM64

File details

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

File metadata

  • Download URL: clifft-0.10.0.tar.gz
  • Upload date:
  • Size: 2.7 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.0.tar.gz
Algorithm Hash digest
SHA256 f7819d18677c94f6ad6f10b53ee573ab7d977d14eb2588f16377fece85ac118c
MD5 d300b6c84def33237f6b0d8636219013
BLAKE2b-256 ed4de240ccc94e546f08fad0183f58fe046683c41681b9e7f73e8090d96c81df

See more details on using hashes here.

Provenance

The following attestation bundles were made for clifft-0.10.0.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.0-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: clifft-0.10.0-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.0-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0dea3118235181576d3e476388f7bc6fa6ab784ca02a01ee50de28c0ec225415
MD5 7291cec9b769944f00eca256866513be
BLAKE2b-256 a83c3b53f1a10ab99b571803240b98ce61a3fe6dcdf1720d2901589e8d0f391b

See more details on using hashes here.

Provenance

The following attestation bundles were made for clifft-0.10.0-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.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for clifft-0.10.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d5807243551a3039a04dd6df62c28065525c4b67ccda4a87a73a2bbfc7283a29
MD5 6b4db6aa520a6694bbd18332f658ef62
BLAKE2b-256 283dd8b7012618bb175a49603bc6fb14fa1cde04e8897fbe44bcee0df0f9cbf4

See more details on using hashes here.

Provenance

The following attestation bundles were made for clifft-0.10.0-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.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for clifft-0.10.0-cp312-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fcbd938d659eb33826e4bf297d7138bbbe76fc26c5bd3efe7f68501bae76f016
MD5 f878c0206c69aed57d5a8b741481e94c
BLAKE2b-256 1878b838fa700962a4d1bf83f3a126e102229e5c34d8713399261a294cb86fc2

See more details on using hashes here.

Provenance

The following attestation bundles were made for clifft-0.10.0-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.0-cp312-abi3-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for clifft-0.10.0-cp312-abi3-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e63a4a928def665a4d61fba30e125068336e5dc8d88419e5374ad2d41ed9ca65
MD5 7ff900db7b8e25033cc921b49f2c2500
BLAKE2b-256 92b59c4afff4a23e4c68445e96d62cb7c35497579c782a3a9ba696feb2a90732

See more details on using hashes here.

Provenance

The following attestation bundles were made for clifft-0.10.0-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

0.10.1

5 files

This release

0.10.0 This release

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