Skip to main content

Automation-first framework for quantum optics experiments

Project description

⚡ PhoQuPy

Automation-first framework for quantum optics experiments

🔬 Used in active quantum optics experiments at IIT Bombay

Control your experiment. Not just your equations.


arXiv


🚀 What is PhoQuPy?

PhoQuPy is a Python framework for automating quantum optics experiments.

It connects:

  • motion stages
  • spectrometers
  • detectors (SPADs, EMCCDs, etc.)
  • interferometers
  • data acquisition pipelines

into a single programmable workflow.


🧠 Why this exists

Quantum optics experiments are:

  • repetitive
  • timing-sensitive
  • hardware-fragmented
  • difficult to reproduce

Manual operation doesn’t scale.

PhoQuPy enables:

  • fully automated measurement pipelines
  • synchronized multi-device control
  • reproducible experimental protocols

⚡ Core Idea

Treat experiments like programs.

Instead of:

turn knob → wait → click → save → repeat

You write:

scan = RasterScan(x_range, y_range, resolution=200)

for point in scan:
    move_stage(point)
    spectrum = acquire_spectrum()
    save(spectrum)

🧩 Architecture

flowchart LR
    A[User Script / Experiment Logic] --> B[PhoQuPy Core]

    B --> C[Device Abstraction Layer]
    B --> D[Automation Engine]
    B --> E[Data Acquisition]
    B --> F[Processing & Visualization]

    C --> G[Motion Stages]
    C --> H[Detectors]
    C --> I[Spectrometers]
    C --> J[DAQ Systems]

    G --> K[Hardware]
    H --> K
    I --> K
    J --> K

    E --> L[Raw Data]
    F --> M[Processed Data]

🎥 Automated Scan Demo

Automated Scan


🧪 From Manual → Automated Experiments

❌ Manual Workflow

  • Align optics manually
  • Move stage → measure → save → repeat
  • Copy-paste scripts
  • High chance of human error
  • Poor reproducibility

✅ PhoQuPy Workflow

scan = ConfocalScan(x_range=(0, 50), y_range=(0, 50), step=0.5)
data = scan.run()
scan.plot_map(data)

⚡ Result

Manual PhoQuPy
Speed Slow Fast
Reproducibility Low High
Scalability Poor Excellent
Human error High Minimal
Automation

🔬 Used in Real Experiments

PhoQuPy is actively used in the Laboratory of Optics of Quantum Materials (LOQM), IIT Bombay.

Note: Parts of this repo cannot be used directly in another facility, as various configuration files, DLLs, and other non-public support files have not been included.


🧠 System Architecture

Architecture


🔴 Confocal Photoluminescence Mapping

PL Map

  • Automated raster scanning of quantum emitters
  • Real-time PL map generation

🟡 Fiber Alignment Scan

Fiber Alignment

  • Automated alignment optimization
  • Gaussian peak detection

🔵 Cryogenic PL Mapping (Galvo)

Galvo Scan Galco Architecture

  • High-speed scanning
  • Cryostat-compatible workflows

🟣 Hyperspectral Imaging

Hyperspectral

  • Full spectral cube acquisition
  • Wavelength-resolved imaging

⚡ What this demonstrates

  • Multi-instrument synchronization
  • Fully automated pipelines
  • Real-time visualization
  • High-throughput measurements

🧰 Supported Hardware (Extensible)

Category Supported Devices
Motion Stages Thorlabs, Newport
Detectors SPADs, APDs
Cameras EMCCD (Andor), sCMOS
Spectrometers Princeton Instruments, Ocean Optics
Timing Electronics TCSPC modules
DAQ NI DAQ

📦 Installation

pip install phoqupy

or

git clone https://github.com/loqm/phoqupy
cd phoqupy
pip install -e .

📚 Documentation

👉 https://loqm.github.io/phoqupy

Includes:

  • Getting Started
  • Example Experiments
  • Hardware Integration
  • API Reference

📄 Use in a Paper

If you use PhoQuPy in your research, please cite:

S. Murali, A. Kumar, PhoQuPy: A Python Framework for Automating Quantum Optics Experiments, arXiv:2602.04505 (2026)

BibTeX

@article{phoqupy2026,
  title   = {PhoQuPy: A Python Framework for Automating Quantum Optics Experiments},
  author  = {Murali, Srivatsa and Kumar, Anshuman},
  year    = {2026},
  journal = {arXiv preprint},
  eprint  = {2602.04505},
  archivePrefix = {arXiv},
  primaryClass  = {quant-ph}
}

🤝 Contributing

If you have ever:

  • struggled to integrate lab hardware
  • rewritten experiment scripts
  • lost reproducibility

You should contribute.


👤 Authors

Srivatsa Murali

Anshuman Kumar

Laboratory of Optics of Quantum Materials (LOQM)

IIT Bombay


🌌 Vision

To make quantum optics experiments programmable, scalable, and reproducible.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

phoqupy-0.1.0.tar.gz (59.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

phoqupy-0.1.0-py3-none-any.whl (18.2 kB view details)

Uploaded Python 3

File details

Details for the file phoqupy-0.1.0.tar.gz.

File metadata

  • Download URL: phoqupy-0.1.0.tar.gz
  • Upload date:
  • Size: 59.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for phoqupy-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6f764f22306016ddc3a6e77e55e20f8b6cf3580a6ee2d064960fb29242756b0b
MD5 08d990ff7a48dc5662f1b414829b5c73
BLAKE2b-256 cdad616982b5148e3fb739bf51b09b21f39101350385f03441940112b5b6bd5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for phoqupy-0.1.0.tar.gz:

Publisher: publish.yml on loqm/phoqupy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file phoqupy-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: phoqupy-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 18.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for phoqupy-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 87bb7f28e0a60a78c9f3f1ad891370828e8b7f48813350a4017ea457c057087b
MD5 e788e3229b3aab92f3c323f7e288ebec
BLAKE2b-256 24ecd7286691406365dc5da23b4f24cd26d0c58e6d63a8ebaf6da07a776f0d97

See more details on using hashes here.

Provenance

The following attestation bundles were made for phoqupy-0.1.0-py3-none-any.whl:

Publisher: publish.yml on loqm/phoqupy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page