Skip to main content

MIMIQ

MIMIQ Circuits Python

Build Status Documentation PyPI version Python versions License

MIMIQ Circuits is a comprehensive Python library for building, simulating, and executing quantum circuits on QPerfect's MIMIQ Virtual Quantum Computer. Design quantum algorithms, test them locally, and scale them on high-performance cloud simulators.

Part of the MIMIQ ecosystem by QPerfect.

Features

  • 🔧 Build quantum circuits with a Pythonic, intuitive API
  • ☁️ Execute on MIMIQ cloud with automatic job management
  • 🔄 Import/Export OpenQASM and Stim files for interoperability
  • 🎯 Multiple simulation algorithms (state vector, MPS, and more)
  • 📈 Expectation values and measurements for quantum observables
  • 🌐 Seamless cloud integration with authentication and connection management
  • 🧪 Noise modeling with realistic quantum error channels

Installation

pip install mimiqcircuits

With Visualization Support

pip install mimiqcircuits[visualization]

From GitHub (Latest Development Version)

pip install "mimiqcircuits @ git+https://github.com/qperfect-io/mimiqcircuits-python.git"

Installing from git or from a source distribution compiles the package's Rust extension, which needs a Rust toolchain, version 1.85 or newer (see rustup.rs). Installing a published wheel does not.

Requirements

  • Python 3.10 or higher
  • Supported on Linux, macOS, and Windows

Quick Start

Building Your First Circuit

from mimiqcircuits import *

# Create a Bell state circuit
circuit = Circuit()
circuit.push(GateH(), 0)
circuit.push(GateCX(), 0, 1)
circuit.push(Measure(), 0, 0)
circuit.push(Measure(), 1, 1)

# Print the circuit
circuit.draw()

Connecting to MIMIQ Cloud

from mimiqcircuits import *

# Establish connection (opens browser for authentication)
conn = MimiqConnection()
conn.connect()

# Alternative: Connect with credentials directly
# conn.connectUser("your.email@example.com", "yourpassword")

Executing a Circuit

from mimiqcircuits import *

# Create a multi-qubit entangled state
circuit = Circuit()
circuit.push(GateH(), 0)
for i in range(1, 10):
    circuit.push(GateCX(), 0, i)
circuit.push(Measure(), range(10), range(10))

# Connect to MIMIQ
conn = MimiqConnection()
conn.connect()

# Submit to MIMIQ remote services
job = conn.submit(circuit, algorithm="auto", nsamples=1000)

# Wait for completion and retrieve results
results = conn.get_results(job)

# Visualize results
from mimiqcircuits.visualization import plothistogram
plothistogram(results)

Working with OpenQASM

from mimiqcircuits import *

# Connect to MIMIQ
conn = MimiqConnection()
conn.connect()

# Submit a QASM file
job = conn.submit("path/to/circuit.qasm", algorithm="statevector")
results = conn.get_results(job)

Circuit Building Examples

Quantum Fourier Transform

from mimiqcircuits import *

circuit = Circuit()
# QFT on 5 qubits
circuit.push(QFT(5), *range(5))
circuit.push(Barrier(5), *range(5))
circuit.push(inverse(QFT(5)), *range(5))

circuit.draw()

Parameterized Circuits

from mimiqcircuits import *
import numpy as np

circuit = Circuit()
theta = np.pi / 4

# Rotation gates with parameters
circuit.push(GateRX(theta), 0)
circuit.push(GateRY(theta), 1)
circuit.push(GateRZ(theta), 2)

# Custom controlled rotation
circuit.push(GateCRX(theta), 0, 1)

circuit.draw()

Expectation Values

from mimiqcircuits import *

circuit = Circuit()
circuit.push(GateH(), 0)
circuit.push(GateCX(), 0, 1)

# Measure expectation value of Z operator
circuit.push(ExpectationValue(GateZ()), 0, 0)

conn = MimiqConnection()
conn.connect()
job = conn.submit(circuit, algorithm="statevector")
results = conn.get_results(job)

Noisy Simulations

from mimiqcircuits import *

circuit = Circuit()
circuit.push(GateH(), 0)
circuit.push(Depolarizing1(0.01), 0)  # 1% depolarizing noise
circuit.push(GateCX(), 0, 1)
circuit.push(AmplitudeDamping(0.05), 0)  # 5% amplitude damping
circuit.push(Measure(), range(2), range(2))

Available Simulation Algorithms

MIMIQ supports multiple simulation algorithms optimized for different use cases:

  • auto - Automatically selects the best algorithm
  • statevector - Full state vector simulation (exact, up to ~30 qubits)
  • mps - Matrix Product State (efficient for certain circuit structures)
# Specify algorithm during execution
job = conn.submit(circuit, algorithm="mps", nsamples=10000)

Supported Gates and Operations

Single-Qubit Gates

GateH, GateX, GateY, GateZ, GateS, GateT, GateSX, GateTDG, GateSDG, GateID, GateRX, GateRY, GateRZ, GateU, GateP

Two-Qubit Gates

GateCX, GateCY, GateCZ, GateCH, GateSWAP, GateISWAP, GateDCX, GateECR

Three-Qubit Gates

GateCCX (Toffoli), GateCSWAP (Fredkin)

Multi-Controlled Gates

GateCU, GateCRX, GateCRY, GateCRZ, GateCP

Composite Gates

QFT (Quantum Fourier Transform), PhaseGradient, PolynomialOracle

Measurements

Measure, MeasureReset, ExpectationValue

Noise Channels

Depolarizing, AmplitudeDamping, PhaseDamping, PauliNoise, ThermalNoise

Circuit Control

Barrier, Reset, IfStatement (conditional operations)

Julia Version

For Julia users, check out MimiqCircuits.jl - the native Julia implementation with full feature parity.

Access to MIMIQ

MIMIQ Circuits is currently in active development and available for early adopters. To execute circuits on MIMIQ's cloud services, you need an active subscription.

Contributing

We welcome contributions from the quantum computing community! Whether you're fixing bugs, adding features, improving documentation, or sharing ideas:

  1. 🐛 Report issues on GitHub Issues
  2. 💡 Suggest features through GitHub Discussions
  3. 🔧 Submit pull requests - please read our contributing guidelines first
  4. 📝 Improve documentation - even small fixes help!

Development

We use uv for dependency management and packaging.

Setup

To set up the development environment:

# Install uv if you haven't already
curl -LsSf https://astral.sh/uv/install.sh | sh

# Clone the repository
git clone https://github.com/qperfect-io/mimiqcircuits-python.git
cd mimiqcircuits-python

# Install dependencies
uv sync

Common Commands

  • Run tests: uv run pytest
  • Build documentation: uv run --group docs --extra visualization make -C docs html
  • Build package: uv build

Support and Community

Copyright © 2022-2023 University of Strasbourg. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

<http://www.apache.org/licenses/LICENSE-2.0>

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


Made with ❤️ by the QPerfect team

Metadata

Release files for mimiqcircuits 0.31.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mimiqcircuits 0.31.0
File Size Uploaded Provenance Actions
mimiqcircuits-0.31.0.tar.gz 2.7 MB Without provenance Details for mimiqcircuits-0.31.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for mimiqcircuits 0.31.0
File Actions
mimiqcircuits-0.31.0-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details for mimiqcircuits-0.31.0-cp314-cp314t-win_amd64.whl
mimiqcircuits-0.31.0-cp314-cp314t-manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64 Details for mimiqcircuits-0.31.0-cp314-cp314t-manylinux_2_28_x86_64.whl
mimiqcircuits-0.31.0-cp314-cp314t-manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64 Details for mimiqcircuits-0.31.0-cp314-cp314t-manylinux_2_28_aarch64.whl
mimiqcircuits-0.31.0-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details for mimiqcircuits-0.31.0-cp314-cp314t-macosx_11_0_arm64.whl
mimiqcircuits-0.31.0-cp314-cp314t-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 Details for mimiqcircuits-0.31.0-cp314-cp314t-macosx_10_12_x86_64.whl
mimiqcircuits-0.31.0-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for mimiqcircuits-0.31.0-cp310-abi3-win_amd64.whl
mimiqcircuits-0.31.0-cp310-abi3-manylinux_2_28_x86_64.whl CPython 3.10 abi3 Linux glibc 2.28+ x86-64 Details for mimiqcircuits-0.31.0-cp310-abi3-manylinux_2_28_x86_64.whl
mimiqcircuits-0.31.0-cp310-abi3-manylinux_2_28_aarch64.whl CPython 3.10 abi3 Linux glibc 2.28+ ARM64 Details for mimiqcircuits-0.31.0-cp310-abi3-manylinux_2_28_aarch64.whl
mimiqcircuits-0.31.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details for mimiqcircuits-0.31.0-cp310-abi3-macosx_11_0_arm64.whl
mimiqcircuits-0.31.0-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details for mimiqcircuits-0.31.0-cp310-abi3-macosx_10_12_x86_64.whl

Total release size: 12.4 MB

Release files / mimiqcircuits-0.31.0.tar.gz

Download URL mimiqcircuits-0.31.0.tar.gz
Size 2.7 MB
Tags Source
SHA-256 checksum
How to use checksums
2629b982a312232bb8e5e3e5b419d64973e3d39df247a4bde2753233fd07d61a
BLAKE2b-256 checksum
How to use checksums
dec529ad848f0b7434c3038f888208faf9ffd15b9f389483925b85652e2274da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / mimiqcircuits-0.31.0-cp314-cp314t-win_amd64.whl

Download URL mimiqcircuits-0.31.0-cp314-cp314t-win_amd64.whl
Size 914.6 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
1e05b900467649de70918e442ae189b62cfecc999f4b1cdbbdd1570963467069
BLAKE2b-256 checksum
How to use checksums
43ab3790a635dc30b07bc2be6274f95fec234c13c17eeaaf3c0ea0560e6c1503
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / mimiqcircuits-0.31.0-cp314-cp314t-manylinux_2_28_x86_64.whl

Download URL mimiqcircuits-0.31.0-cp314-cp314t-manylinux_2_28_x86_64.whl
Size 996.3 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
12b4cb436ce7b80108c78e499a34951efde164310ed30af72303fdd0ea6cf103
BLAKE2b-256 checksum
How to use checksums
304ece002bd803319b012b78b6786d0e69509c713f358ff8833c2e39cbd34e37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / mimiqcircuits-0.31.0-cp314-cp314t-manylinux_2_28_aarch64.whl

Download URL mimiqcircuits-0.31.0-cp314-cp314t-manylinux_2_28_aarch64.whl
Size 979.8 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
af9b721a54739835a83bbe726c76ee0851ca4d8bd6174ace6a7f923024284d92
BLAKE2b-256 checksum
How to use checksums
c89011f2ed396b1e4b6f18957b264e241722cbf3a20ce5a69e69b95c2a58341d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / mimiqcircuits-0.31.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL mimiqcircuits-0.31.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 955.6 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
349e18b4a5ed5900a638ed845f9424a47b73c82fd645825a316ad4105a775e35
BLAKE2b-256 checksum
How to use checksums
410cb0629cf600f2e3eedf40d071bcd9a1d04425542eeb225f592cdfca9f94f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / mimiqcircuits-0.31.0-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL mimiqcircuits-0.31.0-cp314-cp314t-macosx_10_12_x86_64.whl
Size 980.1 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
5bc7e3eaca4145402ecec373c4f8cee7b4e801bb836ef70ee1de8bf2a286886b
BLAKE2b-256 checksum
How to use checksums
5ba6dc9cf688ecbe7a8f969b40decc2493cf26c9989b8e6c9dcbfab792c5a1ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / mimiqcircuits-0.31.0-cp310-abi3-win_amd64.whl

Download URL mimiqcircuits-0.31.0-cp310-abi3-win_amd64.whl
Size 917.9 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
e1d17c2a4bd123a28b8e54d69c19b46d7128e94560c2171b3876def909f068c1
BLAKE2b-256 checksum
How to use checksums
f5c51de3b904fbb93b16e984926f1ac8d032585b9489ba78f6cc09ae28170b1d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / mimiqcircuits-0.31.0-cp310-abi3-manylinux_2_28_x86_64.whl

Download URL mimiqcircuits-0.31.0-cp310-abi3-manylinux_2_28_x86_64.whl
Size 998.4 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
76c87c6eaebaca3e5dcf0a7f55aabdac4818101b086b71f03c58b7525373352d
BLAKE2b-256 checksum
How to use checksums
234dc2ae516a2c55317b23ad9fc0aa11d53038bcf8d0b086145859cd565953e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / mimiqcircuits-0.31.0-cp310-abi3-manylinux_2_28_aarch64.whl

Download URL mimiqcircuits-0.31.0-cp310-abi3-manylinux_2_28_aarch64.whl
Size 982.7 kB
Tags CPython 3.10 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
e1fa27270d9842c0e55f443e2c0c08462504564ad086f199a8baa0bf5d12a83c
BLAKE2b-256 checksum
How to use checksums
00e597f31616241df9533d186fb68d1c1c6222873fdda87b7afe51788afc6b3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / mimiqcircuits-0.31.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL mimiqcircuits-0.31.0-cp310-abi3-macosx_11_0_arm64.whl
Size 959.2 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ce2f49bfdf168f2e32e8af82b1498fb952e88cc37d4bfffa2eb85eb1040f880a
BLAKE2b-256 checksum
How to use checksums
e0aaa5244a8e295bb78ac48d04a0bf4ebfa732f11a1c270e7a88774324c415b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / mimiqcircuits-0.31.0-cp310-abi3-macosx_10_12_x86_64.whl

Download URL mimiqcircuits-0.31.0-cp310-abi3-macosx_10_12_x86_64.whl
Size 979.6 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
65af28449589249087110e1a314d6c7fead39a97412b15404696504d85e105e7
BLAKE2b-256 checksum
How to use checksums
7c4243ff4fac83a6c56f692555fe73300858493c8d2915ca5e545d1d38e897c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for mimiqcircuits 0.31.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.31.0 This release

11 release files No provenance

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