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.30.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.30.1
File Size Uploaded Provenance Actions
mimiqcircuits-0.30.1.tar.gz 2.7 MB Without provenance Details for mimiqcircuits-0.30.1.tar.gz

Built distributions (wheels)

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

Total release size: 12.4 MB

Release files / mimiqcircuits-0.30.1.tar.gz

Download URL mimiqcircuits-0.30.1.tar.gz
Size 2.7 MB
Tags Source
SHA-256 checksum
How to use checksums
2f0db59999eaa11307aca584ebbf9dd505148a8141498b59ff6a823b2c712d65
BLAKE2b-256 checksum
How to use checksums
9d60cb6e56a054a5e73b3fc70d53d9d98d61b3f4351bdc7555896ac9cb191fbe
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.30.1-cp314-cp314t-win_amd64.whl

Download URL mimiqcircuits-0.30.1-cp314-cp314t-win_amd64.whl
Size 910.7 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
b7eae79050180a0e2046869602543d8ddb3ba1733c0b5bd9c940c4286632ae6b
BLAKE2b-256 checksum
How to use checksums
7879ab802a4675110739cc40d8c880037ee97cc73318426060ff55257237916f
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.30.1-cp314-cp314t-manylinux_2_28_x86_64.whl

Download URL mimiqcircuits-0.30.1-cp314-cp314t-manylinux_2_28_x86_64.whl
Size 992.4 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
826d13561297739bdea5d60980dc8a974656d42f89215fdb563db57d7b8bc09e
BLAKE2b-256 checksum
How to use checksums
bf6a288e348ca1e4fcba1e7fd59c25612331755a438cd35b98b3a7aeb17f7778
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.30.1-cp314-cp314t-manylinux_2_28_aarch64.whl

Download URL mimiqcircuits-0.30.1-cp314-cp314t-manylinux_2_28_aarch64.whl
Size 976.0 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e7bf958019ce41651be548f23869bc2f05b648663dfbf04ce5abdda480c05438
BLAKE2b-256 checksum
How to use checksums
955ea2ffa22c2cd6a32c819e2ad59a92a3c25c1214b276a9876cf272972cf91e
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.30.1-cp314-cp314t-macosx_11_0_arm64.whl

Download URL mimiqcircuits-0.30.1-cp314-cp314t-macosx_11_0_arm64.whl
Size 951.8 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
33bfa228eabcd6b8e7d3c2cbdc356f3a5a17370469bd93f8cc72c79ab65435f0
BLAKE2b-256 checksum
How to use checksums
58ece5010e7c1abd5c71b752528aaaa2969415eeeb5ef6dae0b0f796b8fcef3a
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.30.1-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL mimiqcircuits-0.30.1-cp314-cp314t-macosx_10_12_x86_64.whl
Size 976.1 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
de77ce48313085a016617bb107cd7fe8bdf43aeb68181193316c9cc1b2b8a3c5
BLAKE2b-256 checksum
How to use checksums
669f54dca25fd154d5f279f60ec957cc70eed12ebebb245b4852e7d1fc55f348
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.30.1-cp310-abi3-win_amd64.whl

Download URL mimiqcircuits-0.30.1-cp310-abi3-win_amd64.whl
Size 914.0 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
59dd9f3137cb71db9e73731a2e31511f51b5276b3c7426806c4a2c430db9f034
BLAKE2b-256 checksum
How to use checksums
59c6edc76a44f703de0185c482280343b7337ac36925db99ecef691d3a5edb7b
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.30.1-cp310-abi3-manylinux_2_28_x86_64.whl

Download URL mimiqcircuits-0.30.1-cp310-abi3-manylinux_2_28_x86_64.whl
Size 994.5 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
9d0c2679541588d106cf6165fdb5356ea992c17399197f441176542f1e95ae7e
BLAKE2b-256 checksum
How to use checksums
eb22be2b23b07f3fcc3715ad119287771e2ec32caa0dc307f0f0498f3f862dd6
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.30.1-cp310-abi3-manylinux_2_28_aarch64.whl

Download URL mimiqcircuits-0.30.1-cp310-abi3-manylinux_2_28_aarch64.whl
Size 978.8 kB
Tags CPython 3.10 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
a50ab4ce470609c57574854e8b226e33e21f11f5e4da1a404e4f6adc195717d0
BLAKE2b-256 checksum
How to use checksums
b8057b96e9c9827e2fc1da5f16e208e27b964c6ac8f6b0bc47d87404601f28db
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.30.1-cp310-abi3-macosx_11_0_arm64.whl

Download URL mimiqcircuits-0.30.1-cp310-abi3-macosx_11_0_arm64.whl
Size 955.4 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
1f0853dde0e6ada8d9d041ea2579c4ac5903be68ee4d85a306c00880a88d5b8a
BLAKE2b-256 checksum
How to use checksums
1a4e45c038c097037d4b46e44316672642a071be10ebf89170d1cc51b97cdef0
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.30.1-cp310-abi3-macosx_10_12_x86_64.whl

Download URL mimiqcircuits-0.30.1-cp310-abi3-macosx_10_12_x86_64.whl
Size 975.8 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
b1c42a8685065933371d4b194de7553bbd14bba6e3f594b39b82c4e3bdafdee4
BLAKE2b-256 checksum
How to use checksums
0d06e90821482cc9e7008a47978ad309ef2bda4fb928be99dc376f0e307be6d5
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.30.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.30.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