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

Built distributions (wheels)

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

Total release size: 12.3 MB

Release files / mimiqcircuits-0.30.0.tar.gz

Download URL mimiqcircuits-0.30.0.tar.gz
Size 2.7 MB
Tags Source
SHA-256 checksum
How to use checksums
e3a23946b8ecd0f0aa7fe626ae7e81a54ea97521f3080b5146a884988c06b722
BLAKE2b-256 checksum
How to use checksums
2a3a52143e1c59eccf3eb845ee258928c37a4d5bb9f36fadb9ed05cf3e7ee5f4
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.0-cp314-cp314t-win_amd64.whl

Download URL mimiqcircuits-0.30.0-cp314-cp314t-win_amd64.whl
Size 909.3 kB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
b1bbf9a0eef6ff049019b0bc3ab799b4bfd10fb147e6a6c1d10f3c4b4c704004
BLAKE2b-256 checksum
How to use checksums
e3da28579a90322424e0e91afc3b3d1f34b699607bb35c2ca2c1bde6be0ad9a5
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.0-cp314-cp314t-manylinux_2_28_x86_64.whl

Download URL mimiqcircuits-0.30.0-cp314-cp314t-manylinux_2_28_x86_64.whl
Size 991.0 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8172eee01fcb3184c7455c99668454e3a23a4d0e0527f14c79620a9b2cf8c9c9
BLAKE2b-256 checksum
How to use checksums
bf795fc9ed64e3f61796a65e29586afb3916a3239a398c2849545c5aca8de53b
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.0-cp314-cp314t-manylinux_2_28_aarch64.whl

Download URL mimiqcircuits-0.30.0-cp314-cp314t-manylinux_2_28_aarch64.whl
Size 974.5 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
556e2000b0bd5a923a632ea35a7dd5bdee1e79f84fc16a61868745fa03576f26
BLAKE2b-256 checksum
How to use checksums
8062bc4898218f206666c6c42ee1ae19776f09089093536c805488cd6eaed7e1
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.0-cp314-cp314t-macosx_11_0_arm64.whl

Download URL mimiqcircuits-0.30.0-cp314-cp314t-macosx_11_0_arm64.whl
Size 950.2 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
06beaed4e0eeaf07f801e9da81abd80b4267674e62d8420dd2efc0a6bf7ecd79
BLAKE2b-256 checksum
How to use checksums
9ea970b9a19c71ae776483f8111e1e389f25cdf4b8599d5e81a51f0b8a822d7f
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.0-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL mimiqcircuits-0.30.0-cp314-cp314t-macosx_10_12_x86_64.whl
Size 974.8 kB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
d82528c68cf375280409d7185fea44121640be99472ae941478dabebf5b36135
BLAKE2b-256 checksum
How to use checksums
4f3c36f287af7c08a49037bd00a06b350d3ef2bd38111e6354629b9c2166234a
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.0-cp310-abi3-win_amd64.whl

Download URL mimiqcircuits-0.30.0-cp310-abi3-win_amd64.whl
Size 912.5 kB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
a035a95e8748aea9300de762a5c163a72e50f3dee9faa954ba30adb14f333f65
BLAKE2b-256 checksum
How to use checksums
43d7f3303b50e16327d11cb1fad340f29e499f92dcbfb54475d35d95c1c1913e
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.0-cp310-abi3-manylinux_2_28_x86_64.whl

Download URL mimiqcircuits-0.30.0-cp310-abi3-manylinux_2_28_x86_64.whl
Size 993.1 kB
Tags CPython 3.10 Linux glibc 2.28+ x86-64 abi3
SHA-256 checksum
How to use checksums
61cd800b95d1fb82d2fbfb5340d34faccc009f44488d366def236925652cf1d5
BLAKE2b-256 checksum
How to use checksums
628b96313c90a8d11fa93d0bbecea63e54efde1145d86ebfd6128a89897423de
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.0-cp310-abi3-manylinux_2_28_aarch64.whl

Download URL mimiqcircuits-0.30.0-cp310-abi3-manylinux_2_28_aarch64.whl
Size 977.4 kB
Tags CPython 3.10 Linux glibc 2.28+ ARM64 abi3
SHA-256 checksum
How to use checksums
9e9db5b561cee298cb81a477860a6dbd115b2d87fcc5aad540432b5e622bc3e4
BLAKE2b-256 checksum
How to use checksums
04e4749117a7b5faeb4237928ec4c59cf5063d67a96560e8f277a77d95aa3bec
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.0-cp310-abi3-macosx_11_0_arm64.whl

Download URL mimiqcircuits-0.30.0-cp310-abi3-macosx_11_0_arm64.whl
Size 953.6 kB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ee3b15a2010c8ff755185ad323645a561c3785802cd064b7d7287271960961da
BLAKE2b-256 checksum
How to use checksums
1bcbcc86b1c0742189404010346e18438b7e4795ce1620ab16ca0e69810339f7
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.0-cp310-abi3-macosx_10_12_x86_64.whl

Download URL mimiqcircuits-0.30.0-cp310-abi3-macosx_10_12_x86_64.whl
Size 974.3 kB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
3b79e4727ce5fa873a343e6c26a99936208647508c0892f3c161d6d2d1832599
BLAKE2b-256 checksum
How to use checksums
76cf739a57ef933e318d5e5422aab198206ec5fe05157a542b34f062e982417a
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.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.30.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