NoisyCircuits

Create and simulate noisy quantum circuits using IBM (Heron R.X / Eagle R.X) calibration data. NoisyCircuits implements the Monte-Carlo Wave Function (MCWF) method for efficient statevector simulation under realistic noise. The package implements the quantum circuit mapping according to the “Big-Endian” convention, where the first qubit in the list of qubits corresponds to the least significant bit (LSB) in the statevector representation. For example, in a 3-qubit system, the state \(|q_0 q_1 q_2\rangle\) corresponds to the statevector index where \(q_2\) is the LSB and \(q_0\) is the most significant bit (MSB).

Overview

NoisyCircuits helps you quickly:

  • Simulate realistic noise: Build error models from IBM QPU calibration data.

  • Run fast statevector sims: Use MCWF to simulate noisy dynamics efficiently.

  • Compare algorithms: Evaluate ideal vs. noisy performance side by side.

  • Validate designs: Test robustness under hardware-like conditions.

Installation

Prerequisites

  • A conda-style environment manager: Miniconda, Anaconda, or Micromamba.

  • An IBM Quantum (IBMQ) account + API token (optional but recommended, only needed to pull live hardware data or submit jobs to real devices). Sample Noise models are provided for testing without an IBMQ account.

Steps

  1. Clone the repository:

    git clone https://github.com/Sats2/NoisyCircuits.git
    
  2. Change into the project directory:

    cd NoisyCircuits
    
  3. Create the Python environment from environment.yml (replace conda with your manager if needed):

    conda env create -f environment.yml
    
  4. Activate the environment:

    conda activate NoisyCircuits
    
  5. Install the package:

    pip install .
    

    Note

    A PyPI release is planned; installation instructions will be updated when available.

Citing NoisyCircuits

If you use NoisyCircuits in your research, please cite the software as follows:

@software{NoisyCircuits2025,
        author = {Hegde, Sathyamurthy},
        title = {NoisyCircuits},
        year = {2025},
        url = {https://github.com/Sats2/NoisyCircuits},
        version = {1.3.0},
}

Project Status

NoisyCircuits is in active development. New features and improvements are regularly added. Please check the GitHub repository for the latest updates.

Getting Help

  • Issues: Report bugs and request features at GitHub Issues. Include clear steps to reproduce for bugs and label feature requests appropriately. Typical triage and response occurs within 1–2 weeks.

  • Discussions: Ask questions and share ideas in GitHub Discussions.