PLESTY is a scientific instrumentation platform built around a three-tier pipeline model: device drivers → analyzers → experiments. Each tier builds on the one below it, and all are held to strict quality standards enforced by the SDK.
The pipeline model
┌─────────────────────────────────────────────────────────────┐
│ Experiment │
│ Orchestrates devices and analyzers into measurements │
├─────────────────────────────────────────────────────────────┤
│ Analyzer │
│ Converts raw device data into meaningful results │
├─────────────────────────────────────────────────────────────┤
│ Device │
│ Python interface to lab hardware (TCP/IP or local) │
└─────────────────────────────────────────────────────────────┘
Data flows upward: devices produce raw values, analyzers transform them, and experiments coordinate the full workflow.
Module types
| Type | Color | Role |
|---|---|---|
| Device | #8b5cf6 (violet) |
Hardware interface layer — communicates with lab instruments |
| Analyzer | #f59e0b (amber) |
Data processing — converts raw device output to meaningful values |
| Experiment | #34d399 (mint) |
Orchestration — coordinates devices and analyzers for measurements |
| Core | #3b82f6 (blue) |
Foundational infrastructure — SDK, library, CI templates |
Repository structure
PLESTY modules live under the hub subgroup on GitLab:
plesty/hub/devices/— device drivers organized by vendor/ plesty/hub/analyzers/— analyzer modulesplesty/hub/experiments/— experiment modules
Each module is an independent Python package with its own pyproject.toml, tests, and documentation.
Communication model
Devices communicate with hardware over TCP/IP using a ZeroMQ (ZMQ) message protocol. The SDK provides DeviceTCPIPServer and DeviceTCPIPClient classes to handle this transparently. See TCP Communication for details.
Quality standards
Every module must pass a set of quality gates before it can be published. The gates are grouped into four tiers:
- pixel — fast checks for pre-commit (gates 1–2)
- nebula — pre-push checks (gates 1–6)
- quantum — full local verification (gates 1–11 + device/experiment gates)
- ci — CI pipeline (gates 1–14)
See Quality Tiers for a full breakdown.
Next steps
- Learn about TCP communication between devices and clients
- Understand the quality tiers that govern module acceptance
- Jump to the Quickstart to set up your workspace