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.2

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.2
File Size Uploaded Provenance Actions
mimiqcircuits-0.31.2.tar.gz 2.8 MB Without provenance Details for mimiqcircuits-0.31.2.tar.gz

Built distributions (wheels)

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

Total release size: 12.5 MB

Release files / mimiqcircuits-0.31.2.tar.gz

Download URL mimiqcircuits-0.31.2.tar.gz
Size 2.8 MB
Tags Source
SHA-256 checksum
How to use checksums
f7897df8be674fc16fcfa885013eaee710f76d0a3bac66772bcef85c85638c52
BLAKE2b-256 checksum
How to use checksums
b39cb7f140e5a5601ffdf63daa9036012bcf2d2f091f611f3a8ba7418adaf9f3
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.2-cp314-cp314t-win_amd64.whl

Download URL mimiqcircuits-0.31.2-cp314-cp314t-win_amd64.whl
Size 914.8 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
20a0d5a7f26d73f34cfab36c186514c641ec21deecce048a45b7fc134b8619fa
BLAKE2b-256 checksum
How to use checksums
2fa8c25e7e205bcf521e3052809f2485260bd09679f18b6b03875fed845b18ca
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.2-cp314-cp314t-manylinux_2_28_x86_64.whl

Download URL mimiqcircuits-0.31.2-cp314-cp314t-manylinux_2_28_x86_64.whl
Size 996.4 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ed1614b55766d52f945b97966be873c0fba02f98d98d6b89a44cbeea1e5c74ed
BLAKE2b-256 checksum
How to use checksums
ef576503923034329280ed73dfc5e885ee4e8340ca6f1685f7d05e5648aaec44
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.2-cp314-cp314t-manylinux_2_28_aarch64.whl

Download URL mimiqcircuits-0.31.2-cp314-cp314t-manylinux_2_28_aarch64.whl
Size 980.0 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3dd8adbf1a55fe7899d0b0c3e8f95817f0f6b79e8e04340ca3b8503ad9522314
BLAKE2b-256 checksum
How to use checksums
0931ade61890929ac0f5b7f573acd291c773a25d310aa9b01f6faaa7d60f6647
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.2-cp314-cp314t-macosx_11_0_arm64.whl

Download URL mimiqcircuits-0.31.2-cp314-cp314t-macosx_11_0_arm64.whl
Size 955.7 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
81eaf7a41e7c734e8aacbe39cf7f441923bfc1f80d14055eceeee889af7553d8
BLAKE2b-256 checksum
How to use checksums
1d562ac279dac40f227e05ce3b4349c69d0f11c426f0853349b7854228a76030
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.2-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL mimiqcircuits-0.31.2-cp314-cp314t-macosx_10_12_x86_64.whl
Size 980.2 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
14e8e96ad5a06bf30386182829cb4438c8ca47457851f08397add40a73216c5c
BLAKE2b-256 checksum
How to use checksums
0338a65886157a268fd596e571850af2bc89344f28b8f3e4fcddb4623a699442
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.2-cp310-abi3-win_amd64.whl

Download URL mimiqcircuits-0.31.2-cp310-abi3-win_amd64.whl
Size 918.0 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
82ba4a084dce43ff886483395c0417044eeebbf05ea71970808a00060bf8d1cc
BLAKE2b-256 checksum
How to use checksums
83c002894bc386e0919da9e87954a85403912afe56f4f42832596d0e54fe0368
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.2-cp310-abi3-manylinux_2_28_x86_64.whl

Download URL mimiqcircuits-0.31.2-cp310-abi3-manylinux_2_28_x86_64.whl
Size 998.5 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
e769d0a1fbb336e714fb3711ae98147f793810b1ae554da75de35d5d3b8d9369
BLAKE2b-256 checksum
How to use checksums
3a582c65ce70383fcc47af46a8a7f981560613243b1db27903cb0807379706ff
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.2-cp310-abi3-manylinux_2_28_aarch64.whl

Download URL mimiqcircuits-0.31.2-cp310-abi3-manylinux_2_28_aarch64.whl
Size 982.9 kB
Tags CPython 3.10 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
b1c5d78742e3bb0637224b6fd8702f3c4aedf4220345bac3957996abea7e0d73
BLAKE2b-256 checksum
How to use checksums
cc341aea2af6cb36543f514750928e05e45f5012c12ae0785c4c0e1ee8b9150b
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.2-cp310-abi3-macosx_11_0_arm64.whl

Download URL mimiqcircuits-0.31.2-cp310-abi3-macosx_11_0_arm64.whl
Size 959.3 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
26a98e521c05b18256ea10aa741646d6eea7811065a8f64a29dfcd8b6faba081
BLAKE2b-256 checksum
How to use checksums
6ff27d0592eb7e71c482b84cb85b57d698e05020622a4042b389366632427b0b
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.2-cp310-abi3-macosx_10_12_x86_64.whl

Download URL mimiqcircuits-0.31.2-cp310-abi3-macosx_10_12_x86_64.whl
Size 979.8 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
72848780b68ee7de8ab1e5db88c07c04a8b3d53f00dbb682f5b97fcd703d1c3f
BLAKE2b-256 checksum
How to use checksums
7057940b095b00678dead9c8f985f58ce113a6a7ee1db22ad3c4eedcc4d59172
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.2

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.2 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