ophyd
Bluesky hardware abstraction with an emphasis on EPICS
Decision gist · record as of 2026-08-14
Yes. Ophyd is actively maintained, production-stable, has no known vulnerabilities, and installs with low friction. It is the standard abstraction layer for hardware control in the Bluesky ecosystem and is well-suited for scientific facilities and research labs that need to orchestrate experiments across diverse hardware. Install it if you are building experiment control code or integrating with EPICS or similar control systems.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires an EPICS control system or compatible hardware backend to be useful; standalone use is possible but limited.
- Low install friction with a pure-wheel distribution.
- The package is actively maintained with a recent release and supports current Python versions (3.8–3.13).
License · maintenance · safety
BSD (permissive) — BSD license is permissive, allowing commercial and private use with minimal restrictions; you may use, modify, and distribute ophyd freely provided you retain the license notice.
last release 2026-06-04 (71 days) · last repo commit 2026-06-04 · 72 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 97,103 downloads/mo, #13,167 on PyPI
Alternatives
Verify before relying
pip install ophyd
from ophyd import Device, Component
from ophyd.epics_motor import EpicsMotor
class MyMotor(Device):
motor = Component(EpicsMotor, 'PV:motor')
device = MyMotor(name='my_motor')- Specific EPICS version compatibility and whether non-EPICS control systems are equally well-supported.
- Performance characteristics when handling large numbers of devices or high-frequency data streams.
- Integration maturity with control systems other than EPICS.
What it is and what it does
Ophyd is a hardware abstraction library designed for scientific experiment orchestration and data acquisition. It sits between experiment control code and physical devices or control systems, allowing you to write device-agnostic logic that works across different hardware setups. The library is built around the concept of grouping individual control channels (such as EPICS PVs) into logical Device objects with high-level methods like trigger(), read(), and set(...), and it assigns meaningful names and metadata categories to readings so they propagate correctly into analysis pipelines.
Ophyd is typically used with the Bluesky Run Engine for coordinated experiment execution, though it can also be used standalone. It supports EPICS as a primary control system but is designed to work with other systems as well. The library depends on networkx, numpy, opentelemetry-api, packaging, and pint for graph operations, numerical work, observability, version handling, and unit management respectively.
Use it for
- Integrate EPICS-based beamline hardware into a Python experiment orchestration workflow without writing device-specific control code.
- Group related motor, detector, and sample-stage channels into a single Device object that can be configured and used as a coordinated unit.
- Assign meaningful names and metadata categories to sensor readings so they flow correctly into data analysis pipelines and experiment logs.
- Build portable experiment scripts that work across different beamlines or facilities by abstracting away hardware-specific details.
- Coordinate multi-step experiments where devices must be triggered, read, and configured in a specific sequence.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
Ophyd is actively maintained, production-stable, has no known vulnerabilities, and installs with low friction. It is the standard abstraction layer for hardware control in the Bluesky ecosystem and is well-suited for scientific facilities and research labs that need to orchestrate experiments across diverse hardware. Install it if you are building experiment control code or integrating with EPICS or similar control systems.
Install
ophyd on PyPI
Before you install
Low install friction with a pure-wheel distribution. The package is actively maintained with a recent release and supports current Python versions (3.8–3.13). Five runtime dependencies are all standard scientific/utility libraries.
Requires an EPICS control system or compatible hardware backend to be useful; standalone use is possible but limited.
License in practice
BSD license is permissive, allowing commercial and private use with minimal restrictions; you may use, modify, and distribute ophyd freely provided you retain the license notice.
Quickstart
pip install ophyd
from ophyd import Device, Component
from ophyd.epics_motor import EpicsMotor
class MyMotor(Device):
motor = Component(EpicsMotor, 'PV:motor')
device = MyMotor(name='my_motor')
Verify before relying
- Specific EPICS version compatibility and whether non-EPICS control systems are equally well-supported.
- Performance characteristics when handling large numbers of devices or high-frequency data streams.
- Integration maturity with control systems other than EPICS.
Package facts
| License | BSD permissive |
| Python support | Supports the current Python release >=3.8 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 5 packagesnetworkxnumpyopentelemetry-apipackagingpint |
| Maintenance | Actively maintained 71 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 97,103 / month, #13,167 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableLicense :: OSI Approved :: BSD LicenseProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.8Programming Language :: Python :: 3.9 |
Evidence: ophyd-1.11.2-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “experiment data acquisition”
- ophydOphyd provides a Python abstraction layer for hardware control and…
- ophyd-asyncophyd-async provides asynchronous hardware abstraction for experiment…
- event-modelDefines and validates the formal data model for bluesky's streaming…
Give your agent the search over MCP, or paste the wish link into any chat.
More Scientific/Engineering packages
NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.
pandas provides fast, flexible data structures (Series and DataFrame) for loading, cleaning, transforming, and analyzing labeled or relational data in Python.
scipy provides numerical algorithms for mathematics, science, and engineering—including optimization, integration, linear algebra, Fourier transforms, signal and image processing, and ODE solvers—built on numpy arrays.
scikit-learn provides a comprehensive Python library for supervised and unsupervised machine learning, including classification, regression, clustering, dimensionality reduction, and model evaluation tools built on NumPy and SciPy.
Install it if you need to train, evaluate, or deploy supervised or unsupervised learning models.
dill extends Python's pickle module to serialize and deserialize a much wider range of Python objects, including functions, lambdas, classes, and interpreter sessions, to byte streams for storage or network transmission.
Multiprocess is an enhanced fork of Python's standard multiprocessing library that uses dill for better serialization, allowing you to spawn processes with a threading-like API and share complex objects between them.
Install it if you use multiprocessing and encounter pickle serialization limits with lambdas or complex objects.
See also ophyd-async · bluesky · epik8s-tools · epicscorelibs · pyepics · pykaos · zhinst-toolkit · pyadi-iio · phoebusgen · event-model