LiDMaS+ is an open-source CLI toolkit for reproducible quantum error-correction simulation, decoder benchmarking, and hardware-to-decoder replay. This exists to make QEC experiments reproducible, scriptable, and directly comparable across codes, decoders, and hardware data pipelines.
Current coverage:
- Correction code engines: Surface, CSS family (including custom CSS specs/matrices, repetition, and Shor), and LDPC.
- GKP support: Available in current CLI flows as hybrid/native Surface workflows (
--mode=hybridand--mode=gkp), i.e., CV/GKP behavior integrated into Surface-mode experiments. - Decoders:
mwpm,uf,bp,neural_mwpm, andstub. - Targeted hardware providers: IBM Quantum (live superconducting telemetry), Rigetti/Ankaa workflows (replay), and Xanadu datasets (Aurora/QCA/GKP replay).
- Quantum software stacks: Qiskit IBM Runtime, PennyLane, Qiskit, Cirq, and planned Qibo/Qibolab integration.
It provides:
- a unified CLI for running simulation and replay workflows,
- deterministic runs with explicit seed control,
- reusable examples for thresholds, replay, and analysis outputs.
If you need the full technical depth, use the published docs
Statement of Need
Quantum error-correction studies are often hard to reproduce across teams because workflows, decoder settings, and data formats vary across scripts and hardware sources.
LiDMaS+ addresses this by giving researchers and engineers a single CLI and repeatable workflow surface for:
- deterministic simulation runs,
- consistent decoder comparison,
- hardware-to-decoder replay and artifact generation.
Model-Exact Scope
Let a run scope be
S ∈ 𝒮, S = (C, D, M, Θ, σ, I, V)
where:
C: code family/configuration,D: decoder set,M: execution mode,Θ: algorithm/hyperparameter settings,σ: seed and stochastic controls,I: input stream or dataset identity,V: executable/version identity.
Define the run key as:
K(S) = H(ser(S))
for a canonical serializer ser and collision-resistant hash H. LiDMaS stores K(S) with each result artifact.
Proposition:
∀ S₁,S₂ ∈ 𝒮, S₁ ≠ S₂ ⇒ Pr[K(S₁) ≠ K(S₂)] ≥ 1 − ε for negligible ε.
So, except with negligible probability, artifacts from S₁ and S₂ are scope-distinct.
Proof sketch:
S₁ ≠ S₂ ⇒ ser(S₁) ≠ ser(S₂)(canonical serialization is injective on scope tuples).∀ x ≠ y, Pr[H(x)=H(y)] ≤ εby collision resistance.- Substitute
x=ser(S₁), y=ser(S₂):Pr[K(S₁)=K(S₂)] ≤ ε, hencePr[K(S₁)≠K(S₂)] ≥ 1−ε.
Design-to-Result Workflow
Let experiment design be E = (C, D, 𝒩, T, σ).
Define scoped execution and outputs as:
S = (E, M, Θ, I, V), K = H(ser(S)), R = Φ(S), A = (K, R, μ).
Pipeline:
E →[encode in CLI] S →[Φ (simulate/replay)] R →[persist with K] A →[analyze] Δ →[rerun with S] R′ →[‖R − R′‖ ≤ τ] validated results
Step map:
- Specify
E. - Encode
Sinlidmas ...arguments. - Execute
Φin the selected mode. - Persist
A=(K,R,μ). - Compute comparison/analysis outputs
Δ. - Re-run to get
R′and check‖R − R′‖ ≤ τ. - Promote validated artifacts to reports/plots/paper bundles.
UI status: under active development. For stable workflows today, use the CLI (lidmas) below.
Getting Started
Prerequisites
- C++20 compiler
- CMake >= 3.16
- Python 3.9+ (for PyPI install path and optional scripts)
- Optional: OpenMP
- Optional: CUDA toolkit (GPU sampling path)
Installation
Install from PyPI:
python -m pip install --upgrade lidmas
This installs the lidmas CLI so you can run LiDMaS+ commands directly from your shell.
Or build from source:
cmake -S . -B build
cmake --build build -j
Usage
Show available commands:
lidmas --help
Run a quick smoke check:
lidmas --smoke
Run from source build (without PyPI install):
./build/lidmas --help
./build/lidmas --smoke
For full examples and workflow guides:
Hardware Integrations
| Mode | Integration | Company / Provider | Quantum Software Stack |
|---|---|---|---|
| Live | IBM superconducting stream polling | IBM Quantum | Qiskit IBM Runtime |
| Live (planned) | Qibolab hardware backend integration | Qibo/Qibolab self-hosted labs | Qibo + Qibolab |
| Replay | Ankaa superconducting replay stream | Rigetti (Ankaa workflows) | LiDMaS adapter stream (fixture/HDF5 replay) |
| Replay | Xanadu Aurora/QCA/GKP dataset conversion + replay | Xanadu | Python converter + LiDMaS decoder_io_replay |
| Replay | Simulator framework replay | PennyLane / Qiskit / Cirq ecosystems | PennyLane, Qiskit, Cirq |
Hardware Integration examples and commands are documented here
Contributing
Bug reports, feature requests, and pull requests are welcome.
- Contribution guide: CONTRIBUTING.md
- Code of conduct: CODE_OF_CONDUCT.md
- Security policy: SECURITY.md
Citation
If you use LiDMaS+ in academic work, cite the software release used for your experiments (tag + commit hash).
Paper reference (paper_03):
@misc{wayo2026unifiedhardwaretodecoderarchitecturehybrid,
title={A Unified Hardware-to-Decoder Architecture for Hybrid Continuous-Variable and Discrete-Variable Quantum Error Correction in LiDMaS+},
author={Dennis Delali Kwesi Wayo and Chinonso Onah and Leonardo Goliatt and Sven Groppe},
year={2026},
eprint={2604.15389},
archivePrefix={arXiv},
primaryClass={quant-ph},
url={https://arxiv.org/abs/2604.15389}
}
License
This project is licensed under the MIT License.
See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lidmas-1.2.2.tar.gz.
File metadata
- Download URL: lidmas-1.2.2.tar.gz
- Upload date:
- Size: 5.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69778b4f15a98ac74d418a45db3165db99401cdf2e4366cadd10eb73175112cf
|
|
| MD5 |
45deecd864582c145348df8cbe7efaea
|
|
| BLAKE2b-256 |
3ef922d7408fa0bb8c8d65e1cf87fb9b5317397d035fcfa5f4160186300cecc3
|
Provenance
The following attestation bundles were made for lidmas-1.2.2.tar.gz:
Publisher:
pypi.yml on Gottesman-Software/lidmas_cpp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lidmas-1.2.2.tar.gz -
Subject digest:
69778b4f15a98ac74d418a45db3165db99401cdf2e4366cadd10eb73175112cf - Sigstore transparency entry: 2171953924
- Sigstore integration time:
-
Permalink:
Gottesman-Software/lidmas_cpp@16435995051effaa0ca694a0f27f72030188dc79 -
Branch / Tag:
refs/tags/v1.2.2 - Owner: https://github.com/Gottesman-Software
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@16435995051effaa0ca694a0f27f72030188dc79 -
Trigger Event:
push
-
Statement type:
File details
Details for the file lidmas-1.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: lidmas-1.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 468.2 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9caa66a2f7df7195571534f6a36dccdc1ec6891ce8ee26403a48cbeae359b1ee
|
|
| MD5 |
03faf092f24bd07f2db28bec1d2e3dc1
|
|
| BLAKE2b-256 |
10235d19367b8ac094dddd3777d9e4fda34d5b689a467b155868579e5ccd9e79
|
Provenance
The following attestation bundles were made for lidmas-1.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
pypi.yml on Gottesman-Software/lidmas_cpp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lidmas-1.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
9caa66a2f7df7195571534f6a36dccdc1ec6891ce8ee26403a48cbeae359b1ee - Sigstore transparency entry: 2171953968
- Sigstore integration time:
-
Permalink:
Gottesman-Software/lidmas_cpp@16435995051effaa0ca694a0f27f72030188dc79 -
Branch / Tag:
refs/tags/v1.2.2 - Owner: https://github.com/Gottesman-Software
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@16435995051effaa0ca694a0f27f72030188dc79 -
Trigger Event:
push
-
Statement type:
File details
Details for the file lidmas-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: lidmas-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 468.2 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bebcadd864e91d851ce3654b90c08133ebfa98dc70ad9f6d0ed613600c04896
|
|
| MD5 |
39a96d37890ca2a814fb83fa816d5978
|
|
| BLAKE2b-256 |
9b96d45f58fdc7f5d74a5c917ea4f9cfa0517f76b72d81653ec396c558f14b12
|
Provenance
The following attestation bundles were made for lidmas-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
pypi.yml on Gottesman-Software/lidmas_cpp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lidmas-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
2bebcadd864e91d851ce3654b90c08133ebfa98dc70ad9f6d0ed613600c04896 - Sigstore transparency entry: 2171953942
- Sigstore integration time:
-
Permalink:
Gottesman-Software/lidmas_cpp@16435995051effaa0ca694a0f27f72030188dc79 -
Branch / Tag:
refs/tags/v1.2.2 - Owner: https://github.com/Gottesman-Software
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@16435995051effaa0ca694a0f27f72030188dc79 -
Trigger Event:
push
-
Statement type:
File details
Details for the file lidmas-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: lidmas-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 468.2 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64785f311d5a2656dded4f43340263b20e3639dd09cea8a32cd73872f7073941
|
|
| MD5 |
6038704c572ebf9ab59c06d4bb8be19a
|
|
| BLAKE2b-256 |
eec6fa04746f773d8aa6cc05a818c5f12453ebf4d3c463729d89cc91712ef96e
|
Provenance
The following attestation bundles were made for lidmas-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
pypi.yml on Gottesman-Software/lidmas_cpp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lidmas-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
64785f311d5a2656dded4f43340263b20e3639dd09cea8a32cd73872f7073941 - Sigstore transparency entry: 2171953929
- Sigstore integration time:
-
Permalink:
Gottesman-Software/lidmas_cpp@16435995051effaa0ca694a0f27f72030188dc79 -
Branch / Tag:
refs/tags/v1.2.2 - Owner: https://github.com/Gottesman-Software
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@16435995051effaa0ca694a0f27f72030188dc79 -
Trigger Event:
push
-
Statement type:
File details
Details for the file lidmas-1.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: lidmas-1.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 468.2 kB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a47497ed6038f63a6e26c9369b788f7394089e005ea32afc9d50a68683e09f78
|
|
| MD5 |
e34f7ba3dce33c2765f80e134a157300
|
|
| BLAKE2b-256 |
187112d3c8368c5833139a1a75e4c705798eddb0b8f1ddb8a9dc74894135872d
|
Provenance
The following attestation bundles were made for lidmas-1.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
pypi.yml on Gottesman-Software/lidmas_cpp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lidmas-1.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
a47497ed6038f63a6e26c9369b788f7394089e005ea32afc9d50a68683e09f78 - Sigstore transparency entry: 2171953961
- Sigstore integration time:
-
Permalink:
Gottesman-Software/lidmas_cpp@16435995051effaa0ca694a0f27f72030188dc79 -
Branch / Tag:
refs/tags/v1.2.2 - Owner: https://github.com/Gottesman-Software
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@16435995051effaa0ca694a0f27f72030188dc79 -
Trigger Event:
push
-
Statement type: