Skip to main content

Holographic optical trapping instrument control

Project description

QHOT

PyPI version Python versions Tests Documentation License

QHOT screenshot

QHOT is a Python framework for holographic optical trapping — controlling spatial light modulators (SLMs) to create, move, and reconfigure optical traps in real time using a live camera feed.

Features

  • Real-time hologram computation (CGH) with GPU-optional acceleration
  • Interactive trap manipulation via camera overlay
  • Modular trap types: single tweezers, vortex beams, ring traps, arrays, and dot-matrix text patterns
  • Extensible display filter pipeline (blur, edge detection, RGB selection, sample-hold)
  • Configuration save/restore via TOML
  • Full unit-test suite (~700+ tests)

Requirements

  • Python 3.10+
  • PyQt5 ≥ 5.15
  • pyqtgraph ≥ 0.13
  • numpy ≥ 1.24
  • scipy ≥ 1.10
  • tomlkit ≥ 0.11
  • QVideo ≥ 3.2.3

Installation

pip install QHOT

Or for development:

git clone https://github.com/davidgrier/QHOT.git
cd QHOT
pip install -e .

Usage

qhot

Or from Python:

from QHOT.qhot import main
main()

Trap types

Class Description
QTweezer Single Gaussian tweezer
QVortex Laguerre-Gaussian vortex beam
QRingTrap Ring-shaped optical trap
QTrapArray Rectangular grid of tweezers with optional mask and position jitter
QLetterArray Single dot-matrix character (A-Z, a-z, 0-9) rendered as tweezers
QTextArray String of QLetterArray characters

Project structure

QHOT/
├── qhot.py          — Main application window
├── QHOT.ui          — Qt Designer UI layout
├── lib/              — Core library (SLM, CGH, trap infrastructure)
│   ├── QSLM.py
│   ├── QHOTScreen.py
│   ├── QSaveFile.py
│   ├── holograms/    — Hologram computation
│   └── traps/        — Trap base classes and overlay
├── traps/            — Concrete trap implementations
└── tests/            — Unit tests

References

Acknowledgments

This project is maintained with support from the National Science Foundation of the United States under Award Number DMR-2428983.

License

See LICENSE.

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

qhot-1.4.0.tar.gz (82.2 kB view details)

Uploaded Source

Built Distribution

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

qhot-1.4.0-py3-none-any.whl (28.0 kB view details)

Uploaded Python 3

File details

Details for the file qhot-1.4.0.tar.gz.

File metadata

  • Download URL: qhot-1.4.0.tar.gz
  • Upload date:
  • Size: 82.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for qhot-1.4.0.tar.gz
Algorithm Hash digest
SHA256 b3c92df83128adcfa2ef1e1d9c3fa1eadfd5f61ee342a0a18a95fa74aaeeb2ea
MD5 7847eb1675c4187c3f06c44621e12c47
BLAKE2b-256 6a15c4cb174487fc35145be4fe4aa6a42a755524b0a38b5228bfeb1c3b5f6de5

See more details on using hashes here.

Provenance

The following attestation bundles were made for qhot-1.4.0.tar.gz:

Publisher: publish.yml on davidgrier/QHOT

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

File details

Details for the file qhot-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: qhot-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 28.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for qhot-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 094a50cc1b29e606b7c417611f1888634faaddc11eda6151642b0c3805e91398
MD5 58361519fb6d9fe8c9c9e8e0a6541efa
BLAKE2b-256 40b2fd525e5311a4670d00ec18dcaec72d7facc1e2a703a2ee26706a89825101

See more details on using hashes here.

Provenance

The following attestation bundles were made for qhot-1.4.0-py3-none-any.whl:

Publisher: publish.yml on davidgrier/QHOT

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