sinter
Samples stim circuits and decodes them using pymatching.
Decision gist · record as of 2026-08-14
Yes, with conditions. Install if you are actively researching or benchmarking quantum error correction codes and have stim and a decoder like pymatching available. The high install friction (four runtime dependencies) and the requirement to structure code around multiprocessing make it less suitable for casual exploration, but the active maintenance, permissive license, and no known vulnerabilities make it safe for production research use. Verify that pymatching or your chosen decoder is available before committing to the full stack.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python >=3.7.0 and stim installed; multiprocessing-based collection must be wrapped in `if __name__ == '__main__'` to avoid child process re-execution.
- High install friction: requires four runtime dependencies (matplotlib, numpy, stim, scipy).
- Maintenance status is active with a recent release (84 days ago), but the heavy dependency footprint and compiled components in stim may add setup complexity.
License · maintenance · safety
Apache 2 (permissive) — Licensed under Apache 2, a permissive license that allows commercial and private use with minimal restrictions—suitable for most research and production contexts.
last release 2026-05-22 (84 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 92,090 downloads/mo, #13,481 on PyPI
Alternatives
Verify before relying
pip install sinter
import sinter
import stim
tasks = [sinter.Task(circuit=stim.Circuit.generated(...), json_metadata={...})]
samples = sinter.collect(num_workers=4, max_shots=1_000_000, max_errors=1000, tasks=tasks, decoders=['pymatching'])- Whether pymatching is a required dependency or optional; description mentions it as a decoder but it is not listed in runtime deps.
- Performance scaling characteristics on machines with different core counts beyond the stated testing range.
- Compatibility with decoders other than pymatching and whether custom decoders can be plugged in.
What it is and what it does
Sinter is a Python library and command-line tool for sampling quantum error correction circuits and measuring logical error rates. It takes Stim circuits annotated with noise, detectors, and logical observables, uses Stim to generate samples, applies a decoder to predict whether logical errors occurred from detector data, and records success and failure rates. The tool uses Python multiprocessing to parallelize sampling across multiple CPU cores, dynamically allocates additional samples to circuits that need them based on user-specified targets (such as a minimum error count), saves results in CSV format, and provides basic plotting utilities for visualization.
Sinter is designed for single-machine benchmarking of quantum error correction codes. It scales well across machines with varying core counts (tested on 2, 4, and 96 core systems) and achieves good resource utilization when batch sizes are tuned appropriately. The library exposes both a Python API for programmatic use and a command-line interface for batch processing of circuit files, making it suitable for researchers prototyping and analyzing error correction schemes.
Use it for
- Benchmark surface code implementations by sampling circuits at various physical error rates and measuring resulting logical error rates.
- Compare decoder performance on the same set of QEC circuits by running collection with different decoders and analyzing CSV output.
- Automate large-scale QEC sampling campaigns on a multi-core workstation, resuming interrupted runs without data loss via checkpoint files.
- Generate plots of logical error probability versus physical error rate to visualize code performance across parameter sweeps.
- Prototype and validate new quantum error correction codes by generating custom Stim circuits and collecting statistics via the Python API.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, with conditions.
Install if you are actively researching or benchmarking quantum error correction codes and have stim and a decoder like pymatching available. The high install friction (four runtime dependencies) and the requirement to structure code around multiprocessing make it less suitable for casual exploration, but the active maintenance, permissive license, and no known vulnerabilities make it safe for production research use. Verify that pymatching or your chosen decoder is available before committing to the full stack.
Install
sinter on PyPI
Before you install
High install friction: requires four runtime dependencies (matplotlib, numpy, stim, scipy). Maintenance status is active with a recent release (84 days ago), but the heavy dependency footprint and compiled components in stim may add setup complexity.
Requires Python >=3.7.0 and stim installed; multiprocessing-based collection must be wrapped in `if __name__ == '__main__'` to avoid child process re-execution.
License in practice
Licensed under Apache 2, a permissive license that allows commercial and private use with minimal restrictions—suitable for most research and production contexts.
Quickstart
pip install sinter
import sinter
import stim
tasks = [sinter.Task(circuit=stim.Circuit.generated(...), json_metadata={...})]
samples = sinter.collect(num_workers=4, max_shots=1_000_000, max_errors=1000, tasks=tasks, decoders=['pymatching'])
Verify before relying
- Whether pymatching is a required dependency or optional; description mentions it as a decoder but it is not listed in runtime deps.
- Performance scaling characteristics on machines with different core counts beyond the stated testing range.
- Compatibility with decoders other than pymatching and whether custom decoders can be plugged in.
Package facts
| License | Apache 2 permissive |
| Python support | Supports the current Python release >=3.7.0 |
| Install friction | High. Source build required |
| Runtime dependencies | 4 packagesmatplotlibnumpystimscipy |
| Maintenance | Actively maintained 84 days since the last release |
| First released | |
| Downloads | 92,090 / month, #13,481 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: sinter-1.16.0.tar.gz
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “quantum error correction sampling”
- sinterSinter performs fast Monte Carlo sampling of quantum error correction…
- stimStim is a fast simulator for quantum stabilizer circuits, providing…
- PyMatchingPyMatching is a fast Python/C++ library for decoding quantum error…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also stim · samplomatic · PyMatching · qiskit-ibm-runtime · mqt.qcec · cirq · qiskit-aer · ldpc · cirq-ionq · cirq-core