A 61-pattern catalog of quantum software patterns, introduced in Mining Quantum Software Patterns in Open-Source Projects (arXiv:2601.06281).
Browse the rendered catalog at https://qpa-quantum-patterns.web.app.
This repository is the research artifact for the catalog itself. It does
not contain a copy of the Pattern Atlas
pattern content. Instead, catalogs/qpa-extended-quantum-patterns.json is a
delta manifest describing how the extended catalog is derived from the
original 59-pattern Quantum Computing Patterns language:
| Section | Count | Meaning |
|---|---|---|
retained_patterns |
52 | Patterns kept from the original language, referenced by name |
consolidations |
2 | Original patterns merged into a single broader pattern |
additions |
9 | Full pattern definitions contributed by this work |
52 retained + 9 added = 61 patterns.
Of the nine additions, two are consolidations of existing material and seven are new patterns:
- Data Encoding — consolidates six encoding-specific patterns (amplitude, angle, basis, matrix, QuAM, and QRAM encoding)
- Basis Change — generalizes Quantum Fourier Transformation
- New: Quantum Amplitude Estimation · Linear Combination of Unitaries · Quantum Arithmetic · Quantum Logical Operators · Circuit Construction Utility · Domain Specific Application · Hamiltonian Simulation
Each addition is a complete pattern with Intent, Alias, Context, Forces,
Solution, Result, Examples, Related Patterns, and Known Uses, plus an
illustration in catalogs/icons/.
The original Quantum Computing Patterns language is never modified. The importer only ever creates or updates a separate pattern language.
catalogs/
qpa-extended-quantum-patterns.json the catalog manifest
icons/ illustrations for the nine entries
scripts/build_qpa_catalog.py read-only validator / importer
tests/ unit tests for the importer
firebase.json, .firebaserc Firebase Hosting config for the site
DEPLOYMENT.md build, deploy, and backup procedure
The importer runs read-only by default and requires no Pattern Atlas instance for its unit tests:
python3 -m unittest discover -s tests -vTo validate against a running local Pattern Atlas:
python3 scripts/build_qpa_catalog.pyApplying changes is explicit, repeatable, and blocked while any entry is still
a draft (review_status other than approved):
python3 scripts/build_qpa_catalog.py --applyAuthentication, when the Atlas requires it, is read from the
PATTERN_ATLAS_TOKEN environment variable and is never committed.
Rendering uses a separate static-site generator, kept in its own repository so that this artifact stays free of tooling:
git clone https://github.com/ramalhoneilson/pattern-atlas-static.git
cd pattern-atlas-static
python3 -m static_patternatlas \
--atlas-url='http://localhost:1977/patternatlas' \
--language='Extended Quantum Computing Patterns' \
--catalog-icons=../extended-quantum-computing-patterns/catalogs/icons \
--planqk \
--out siteSee DEPLOYMENT.md for the full deploy procedure.
If you use this catalog, please cite the paper. Machine-readable metadata is in CITATION.cff.
@misc{qpa-extended-quantum-patterns,
title = {Mining Quantum Software Patterns in Open-Source Projects},
author = {Ramalho, Neilson C. L. and da Silva, Erico A. and
Accioly, Anthony and de Souza, Higor Amario and
Chaim, Marcos Lordello},
year = {2026},
eprint = {2601.06281},
archivePrefix = {arXiv}
}- Code (
scripts/,tests/) — Apache License 2.0 - Catalog content (
catalogs/) — CC BY 4.0
The catalog manifest references pattern names from the Quantum Computing Patterns language by Pattern Atlas; their pattern text is not redistributed here.