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

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

Built distributions (wheels)

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

Total release size: 12.5 MB

Release files / mimiqcircuits-0.31.1.tar.gz

Download URL mimiqcircuits-0.31.1.tar.gz
Size 2.8 MB
Tags Source
SHA-256 checksum
How to use checksums
d928b6686fa69988d0cfc6e8ae3f500b7b1fe269d340e47c082085a2ea362c3f
BLAKE2b-256 checksum
How to use checksums
3cbc2eeef39cb7bf780533b302c792fee304d1b11687181cf22410ae35aee2c7
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.1-cp314-cp314t-win_amd64.whl

Download URL mimiqcircuits-0.31.1-cp314-cp314t-win_amd64.whl
Size 914.7 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
06882c52643b1bf554b880493650741e30e9d56eacd4d6fca1b3b90df9400602
BLAKE2b-256 checksum
How to use checksums
054b4977c774d80433ecb4624eeed7f858c3c48cbca2e6152e70802d8fa1cf3b
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.1-cp314-cp314t-manylinux_2_28_x86_64.whl

Download URL mimiqcircuits-0.31.1-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
f90169de90a2bf54399ebf971acf60e297f860f40b2c5fe30878299890b03cd1
BLAKE2b-256 checksum
How to use checksums
097e64575f5df8ddc6175dbc3953bd307eebf75ec9204eeea7fe9992d7a20b02
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.1-cp314-cp314t-manylinux_2_28_aarch64.whl

Download URL mimiqcircuits-0.31.1-cp314-cp314t-manylinux_2_28_aarch64.whl
Size 979.9 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
c826a59a8244ab80c42517c90d00412c8a32ec2a308240b057543f5d3e9d7c7f
BLAKE2b-256 checksum
How to use checksums
c73458c67cbc1eaf37965738f26f62f257d5711d3cdfa7715c4189a3985e6cfa
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.1-cp314-cp314t-macosx_11_0_arm64.whl

Download URL mimiqcircuits-0.31.1-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
4d1648ac62cb64552edca2d20b39ef2e6e3a681f0341ff202277867ca13510a9
BLAKE2b-256 checksum
How to use checksums
e93f2746dc9b29ffbdcfeb448f4a0e5931a9e09b45e87301bbc8dd2d319ebfcc
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.1-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL mimiqcircuits-0.31.1-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
4a221c5e6bf5b47bb61adf0a8e0d664c388db41b26cc235f42a7e09542647272
BLAKE2b-256 checksum
How to use checksums
0f414ebab157bdb3d6a0d934b7949a954f99967d87bfe64d2083865c62b82a08
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.1-cp310-abi3-win_amd64.whl

Download URL mimiqcircuits-0.31.1-cp310-abi3-win_amd64.whl
Size 918.0 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
3f158d88df77739ff594208c3e0b9a2c53d6c2f7db7c3347263fcb9c01a63866
BLAKE2b-256 checksum
How to use checksums
f19999ea2b7e7162744487d6e63ae800a43f00fa157ededd768410aca8ec38f3
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.1-cp310-abi3-manylinux_2_28_x86_64.whl

Download URL mimiqcircuits-0.31.1-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
6d338141c04b4db133a130b6e5b051c2e104f84ae9588c0c9a07c1bdf3ae620b
BLAKE2b-256 checksum
How to use checksums
6356960a56109405d5db2503529b0ba0a55e1c2cc38444456b45fdb2d9d60f44
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.1-cp310-abi3-manylinux_2_28_aarch64.whl

Download URL mimiqcircuits-0.31.1-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
62005836d8b6e16b0b08bfbad1a8387d70c231bcb89bfe7cce64a7fd28236b87
BLAKE2b-256 checksum
How to use checksums
435ec5f739f2e9e3f36e57dcfceeca3843996799432a92d5f78a6dc77d997301
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.1-cp310-abi3-macosx_11_0_arm64.whl

Download URL mimiqcircuits-0.31.1-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
a490a184367713211a40b2043814b2de240efcf37563f74c27aac1ad743601a6
BLAKE2b-256 checksum
How to use checksums
9dc42e30b31774c512d75c201698ff8cd993254c4bf505ec8ad988b4e13a9ce5
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.1-cp310-abi3-macosx_10_12_x86_64.whl

Download URL mimiqcircuits-0.31.1-cp310-abi3-macosx_10_12_x86_64.whl
Size 979.7 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
8610ff7f6d664cb13a985b889fa3329119193c910adec9f81171cad0b322d8db
BLAKE2b-256 checksum
How to use checksums
8b6c34ed8318beaf085a372b3bc7c1b4d9b482cdad8a78d1ce30fc44293081aa
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.1

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