{"id":13776350,"url":"https://github.com/Quandela/Perceval","last_synced_at":"2025-05-11T10:31:02.883Z","repository":{"id":37096380,"uuid":"475939585","full_name":"Quandela/Perceval","owner":"Quandela","description":"An open source framework for programming photonic quantum computers","archived":false,"fork":false,"pushed_at":"2025-05-09T15:28:39.000Z","size":16073,"stargazers_count":170,"open_issues_count":6,"forks_count":70,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-05-09T15:39:32.628Z","etag":null,"topics":["physics-simulation","quantum","quantum-computing"],"latest_commit_sha":null,"homepage":"https://perceval.quandela.net","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Quandela.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-03-30T15:25:34.000Z","updated_at":"2025-05-08T13:04:11.000Z","dependencies_parsed_at":"2023-12-18T10:53:08.208Z","dependency_job_id":"c1541f59-409d-4690-a8cd-7e01199eda21","html_url":"https://github.com/Quandela/Perceval","commit_stats":{"total_commits":324,"total_committers":30,"mean_commits":10.8,"dds":0.7006172839506173,"last_synced_commit":"b9e7eaa7e7f560a95d1c26c2f29156629a157ba0"},"previous_names":[],"tags_count":41,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quandela%2FPerceval","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quandela%2FPerceval/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quandela%2FPerceval/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Quandela%2FPerceval/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Quandela","download_url":"https://codeload.github.com/Quandela/Perceval/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253551526,"owners_count":21926310,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["physics-simulation","quantum","quantum-computing"],"created_at":"2024-08-03T18:00:23.612Z","updated_at":"2025-05-11T10:30:57.866Z","avatar_url":"https://github.com/Quandela.png","language":"Python","funding_links":[],"categories":["Quantum full-stack libraries"],"sub_categories":[],"readme":"[![GitHub release](https://img.shields.io/github/v/release/Quandela/Perceval.svg?style=plastic)](https://github.com/Quandela/Perceval/releases/latest)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/perceval-quandela?style=plastic)\n[![CI](https://github.com/Quandela/Perceval/actions/workflows/python-publish.yml/badge.svg)](https://github.com/Quandela/Perceval/actions/workflows/python-publish.yml)\n\n[![CI](https://github.com/Quandela/Perceval/actions/workflows/autotests.yml/badge.svg)](https://github.com/Quandela/Perceval/actions/workflows/autotests.yml)\n[![CI](https://github.com/Quandela/Perceval/actions/workflows/build-and-deploy-docs.yml/badge.svg)](https://github.com/Quandela/Perceval/actions/workflows/build-and-deploy-docs.ym)\n\n# Perceval \u003ca href=\"https://perceval.quandela.net\" target=\"_blank\"\u003e \u003cimg src=\"https://perceval.quandela.net/img/Perceval_logo_white_320X320.png\" width=\"50\" height=\"50\"\u003e \u003c/a\u003e\n\n\n\nThrough a simple object-oriented python API, Perceval provides tools for building a circuit with linear optics components,\ndefining single-photon sources and their error model, manipulating Fock states, running simulations, reproducing published experimental papers results,\nand experimenting with a new generation of quantum algorithms.\n\nIt is interfaced with the available QPUs on\nthe [Quandela cloud](https://cloud.quandela.com/webide/), so it is possible to run computations on an\nactual photonic computer.\n\nPerceval aims to be a companion tool for developing discrete-variable photonics circuits\n- while simulating their design, modelling their ideal and real-life behaviour;\n- and proposing a normalized interface to control photonic quantum computers;\n- while using powerful simulation backends to get state-of-the-art simulation;\n- and also allowing direct access to the QPUs of Quandela.\n\nPerceval has been developed as a complete toolkit for physicists and quantum computational students, researchers and\npractitioners.\n\n# Key Features\n\n* Powerful Circuit designer making use of predefined components\n* Simple python API and powerful simulation backends optimized in C\n* Misc technical utilities to manipulate State Vector, Unitary Matrices, and circuit Parameters\n* Transversal tools for visualization compatible with notebooks or local development environments\n* Numerical and symbolical computation\n* Modular architecture welcoming contributions from the community\n\n# Installation\n\nPerceval requires:\n\n* Above Python 3.8 and below Python 3.12\n\n## PIP\nWe recommend installing it with `pip`:\n\n```bash\npip install --upgrade pip\npip install perceval-quandela\n```\n\nIf you are looking to use our qiskit, qutip or myqlm bridges you can specify it:\n```bash\npip install perceval-quandela[qiskit_bridge] #install qiskit and seaborn\npip install perceval-quandela[qutip_bridge] #install qutip\npip install perceval-quandela[myqlm_bridge] #install myqlm\npip install perceval-quandela[qiskit_bridge, qutip_bridge, myqlm_bridge] #install all above\n```\n\n## GitHub\n```bash\ngit clone https://github.com/quandela/Perceval\n```\nthen to install Perceval:\n```bash\npip install .\n```\nOr for developers:\n```bash\npip install -e .\n```\nOr to use converters:\n```bash\npip install .[qiskit_bridge,qutip_bridge,myqlm_bridge,cqasm_bridge]\n```\n\n# Running tests and benchmarks\n\nUnit tests files are part of the repository in `tests/` and can be run with:\n\n```\npip install -r tests/requirements.txt\npytest\n```\n\nAdditionally, you can see a coverage report with the command:\n\n```\npytest --cov=perceval\n```\n\nBenchmark tests for computing-intensive functions are in `benchmark/` and can be run with:\n\n```\npytest benchmark/benchmark_*.py\n```\n\nComparison benchmarks for different platforms are also committed in `.benchmarks/` - see [pytest-benchmark documentation](https://pytest-benchmark.readthedocs.io/en/stable/usage.html) for more information.\n\n# Documentation and Forum\n\n* The [documentation](https://perceval.quandela.net/docs)\n* The [Community Forum](https://perceval.quandela.net/forum)\n\n#\n[\u003cimg src=\"https://www.quandela.com/wp-content/themes/quandela/img/logo-QUANDELA.svg\" width=\"300\" height=auto\u003e](https://www.quandela.com/)\n\n[![Twitter Follow](https://img.shields.io/twitter/follow/Quandela_SAS?style=social)](https://twitter.com/Quandela_SAS)\n[![YouTube Channel Subscribers](https://img.shields.io/youtube/channel/subscribers/UCl5YMpSqknJ1n-IT-XWfLsQ?style=social)](https://www.youtube.com/channel/UCl5YMpSqknJ1n-IT-XWfLsQ)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FQuandela%2FPerceval","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FQuandela%2FPerceval","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FQuandela%2FPerceval/lists"}