Python bindings for iMS devices
Project description
imslib Python Library
Overview
imslib is a Python library for controlling Isomet Corporation's Acousto-Optic Synthesisers (AOS). It provides a comprehensive high-level API for:
- Generating test tones, images, and sequences
- Downloading and playing them on Isomet hardware
- Power control and signal compensation
- System diagnostics and configuration
- And much more
The package is designed to simplify development workflows while providing full access to the capabilities of Isomet AOS hardware.
Installation
It is recommended to install Python 3.8 or newer from the official source:
Using the official installer ensures compatibility with prebuilt wheels and avoids issues caused by third‑party Python distributions.
Creating a Virtual Environment
Before installing imslib, create and activate a virtual environment:
Windows:
python -m venv venv
venv\Scripts\activate
Ubuntu / Linux:
python3 -m venv venv
source venv/bin/activate
Once activated, you can install packages inside the isolated environment.
You do not need to build the imslib library yourself unless you are on an unsupported platform. Prebuilt packages are available for Windows and Ubuntu 24.04.
1. Windows (64-bit only)
Create and activate a Python virtual environment, then install directly from PyPI:
pip install imslib
2. Ubuntu 24.04
Create a virtual environment, then download the latest precompiled wheel from the Isomet website:
Install it with:
pip install ./imslib-<version>.whl
Running the Tests
Clone the GitHub repository:
git clone https://github.com/Isomet-Corporation/imslib-python.git
Activate your virtual environment and run the test scripts:
python3 <repo>/tests/<testfile>.py
Some tests require the matplotlib package.
Installing matplotlib
If you need to run tests that use plotting, install matplotlib within your virtual environment:
pip install matplotlib
Quick Start
A minimal workflow to verify your installation:
git clone https://github.com/Isomet-Corporation/imslib-python.git
cd imslib-python
python3 tests/test01_scan.py
Ensure your hardware is connected before running the test (see Hardware Connection Guide below).
Hardware Connection Guide
Linux
Use Ethernet to communicate with Isomet AOS hardware. USB drivers are not currently supported on Linux.
Windows
Windows supports all available interfaces, including:
- USB
- Ethernet
- Serial (if applicable)
Building
If you are on a platform without prebuilt wheels, you can build the Python package locally.
1. Clone the repository (with submodules)
git clone --recurse-submodules https://github.com/Isomet-Corporation/imslib-python.git
2. Install dependencies
Example for Ubuntu:
sudo apt install python3 python3-dev python3-venv python3-pip cmake ninja-build swig gcc-multilib g++-multilib
Then install the required Python packages:
python3 -m pip install --upgrade pip
python3 -m pip install setuptools build scikit-build-core ninja cmake conan swig
3. Configure Conan
conan profile detect -f
4. Build the wheel
From the project root:
python3 -m build --wheel --outdir wheelhouse .
Preconfigured helper scripts are provided:
build_wheels.batbuild_wheels.sh
These automate the wheel-building process where supported.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file imslib-2.0.4-cp38-abi3-win_amd64.whl.
File metadata
- Download URL: imslib-2.0.4-cp38-abi3-win_amd64.whl
- Upload date:
- Size: 3.1 MB
- Tags: CPython 3.8+, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa9daf254c8eb015dff6f526c6c24e3fb61136d2e9b0dc928ac94c5f805a188a
|
|
| MD5 |
231d6233e631b974d7425de10edeb70f
|
|
| BLAKE2b-256 |
91b2b7e782dcc637d39d028eadc40e7cf5bbb12bf8a9c885eb1f62e579bb687a
|