Counts you can sign.

Steadeye is the GxP vision system for pharmaceutical counting and inspection. Up to six cameras become one validated station that counts units and flags damaged ones in the same capture. Every result lands in a tamper-evident batch record with electronic signatures and a SHA-256-chained audit trail. One Windows PC. No cloud.

OK

All 160 units found. The frame passes.

One capture. Four verdicts.

These four frames are unretouched evidence images from one capture event on the running station. Every frame gets a verdict, and every verdict has a consequence in the batch record, the PDF report and the PLC handshake.

The real operator screen, shown in the built-in simulation mode used for qualification dry-runs.
CAM 1, counted 160 / 160

Every expected unit found. The frame passes and the batch counter advances.

The same station also inspects for damage: switch the check logic and detections in a damaged class mark the frame DAMAGED. Damaged units land in the batch record, the report and the PLC result. Selectable per product run, fully audited.

Built for pharmaceutical production. Ready for any regulated line.

Steadeye is a vision system for pharmaceutical manufacturing, medical devices and every production where counts and inspections have to be documented. Start with the use case closest to yours.

Everything a validated station needs. Nothing it doesn't.

Functional specification, Steadeye GxPSDE-FS-001, 12 items

Detection and capture

  • FS-01

    AI detection engine

    Current single-stage detector families and end-to-end ONNX exports are auto-detected. The runtime picks the fastest execution provider at startup, GPU or CPU, and logs the choice into the audit trail.

  • FS-02

    Damage detection

    A switchable check logic inspects instead of counts: detections in a damaged class mark the frame DAMAGED, and damaged units land in the batch record, PDF report and PLC result.

  • FS-03

    Six cameras, one click

    USB, RTSP and MJPEG-over-HTTP cameras stream live previews with detection boxes. CAPTURE ALL grabs timestamp-aligned frames from every camera in under a second on GPU.

  • FS-04

    PLC-triggered capture

    Native drivers for the two most common industrial PLC families with a Ready/Busy/Done handshake: a rising trigger bit runs CAPTURE ALL and writes result code and counts back to the PLC.

Records and compliance

  • FS-05

    Tamper-evident audit trail

    Every security, data and settings event lands in an append-only log secured by a SHA-256 hash chain. A built-in verify function re-walks the chain and flags any manipulation.

  • FS-06

    Electronic signatures

    Closing a batch requires re-entry of username, password and signature meaning, 21 CFR Part 11 style. Closed batches are immutable.

  • FS-07

    PDF batch reports

    One export contains every counted frame with its annotated image, per-camera deviations, the parameter snapshot with model SHA-256, operator identities and signatures.

Access and control

  • FS-08

    Local & Active Directory auth

    Switch between bcrypt-secured local accounts and AD/LDAP with group-to-role mapping. Password policy, account lockout and forced first-login change are built in.

  • FS-09

    Editable role permissions

    A permission matrix defines what each role sees and may change, editable in the UI. Safety-critical groups stay admin-only, enforced server-side.

Training and operations

  • FS-10

    Annotation & in-tool training

    Label small objects, including a damaged class, in the built-in annotation tool. Train detection models as a background job and register the ONNX into a SHA-256-sealed registry.

  • FS-11

    Bilingual UI & operator manual

    The interface switches between English and German, with an in-app operator manual one F1 away. Runs in any browser on the station or across the network.

  • FS-12

    Simulation mode

    Synthetic trays with a known object count and a deterministic mock detector let you run the complete workflow without any hardware. Ideal for OQ dry-runs.

The shipped requirements traceability matrix maps every specification item to its qualification test.

The batch record writes itself.

Closing a batch requires username, password and signature meaning, 21 CFR Part 11 style. The signature seals a SHA-256 of the batch content; from that moment the record is immutable.

  • Every image is hashed at write time, raw and annotated, per camera, per capture.
  • The model is frozen into the record. Its SHA-256 travels with every count it produced.
  • One click exports the PDF report with annotated images, deviations, identities and signatures.

Batch record

LOT 2026-0847
Capture events
3
Detected
2397
Expected
2400
Missing
9
Signed by
admin
Meaning
Batch closed — reviewed and approved
Signed at
2.7.2026 22:51:29

content_sha256 460bfc21…c680b20c

Closed

From this moment the record cannot be changed.

The real batch record after closing: frozen confidence, model SHA-256, per-camera counters and the e-signature line.

Built for auditors, not retrofitted for them.

Every security, data and settings event lands in an append-only log where each entry is chained to its predecessor with SHA-256. Change one byte anywhere in history and verification fails. Even a PLC-triggered capture is attributed, as user 'plc'.

  1. BATCH_CREATED admin, LOT 2026-0847

    ffb2cc…2803

    22:46:10prev 000000…0000

  2. CAPTURE_EXECUTED plc, capture #1, 6 cameras

    3515b2…318f

    22:48:02prev ffb2cc…2803

  3. CAPTURE_EXECUTED plc, capture #2, 6 cameras

    d9036c…150f

    22:49:40prev 3515b2…318f

  4. CAPTURE_EXECUTED admin, capture #3, 6 cameras

    c3674c…6484

    22:51:18prev d9036c…150f

  5. BATCH_SIGNED admin, reviewed and approved

    43ad55…ea8a

    22:51:29prev c3674c…6484

  6. BATCH_CLOSED admin, record sealed

    b8df69…9750

    22:51:29prev 43ad55…ea8a

Chain verified: 6 of 6 entries intact.

Illustration of how entries chain. The real trail of this batch is shown next to it.

The real trail of this batch: signature with content hash, three captures with per-camera JSON, creation, and the failed-login lockout doing its job.
The exported record: every frame carries its own SHA-256, every capture its operator.

Qualification documents in the box.

Qualification templates and a full requirements traceability matrix ship with the system.

IQ
Installation Qualification
OQ
Operational Qualification
PQ
Performance Qualification
RTM
Requirements Traceability Matrix

Your objects. Your model.

No vendor round-trips, no per-image cloud fees, no shipping your product photos to anyone. New product, new packaging, new object? Retrain on the station and keep the model. It's yours.

  1. 1

    Label

    Box, circle and polygon tools with deep zoom, built for hundreds of small objects per image, including a damaged class.

  2. 2

    Export

    Freeze labels into a versioned dataset: open text format, SHA-256 sealed, listed with image and shape counts.

  3. 3

    Train

    A cancellable background job fine-tunes a detection model on your objects and exports ONNX. On the station's GPU, or any PC.

  4. 4

    Register

    The result lands in a sealed model registry. Activation is audited and blocked during an active batch.

The label step on a real training image: circle annotations per unit, one flagged in the damaged class, three images tracked from NEW to DONE.

From the operator manual: label images → export a dataset version → train → register the result in the model registry → activate it. Every step is audited.

Your PLC pushes the button. The record still holds up.

One process image and handshake over three transports: native drivers for the two most common industrial PLC families, plus a simulated PLC for validating the integration without hardware. Captures fired by the line are audited as user 'plc', so attribution survives automation.

TRIGGERREADYBUSYDONE
  1. PLCsets the TRIGGER bit
  2. Stationruns CAPTURE ALL into the active batch
  3. Stationwrites result code and per-camera counts
  4. Stationraises DONE while the heartbeat keeps ticking
  5. PLCreads the results and clears TRIGGER
Trigger handshake with Ready/Busy/Done/Error flags and automatic reconnect.

Integration files, generated for you

Download engineering files that already match your configured offsets. No manual address bookkeeping on the PLC side.

GSDML
PROFINET device description
DB source
PLC data block, matching offsets
GVL export
global variable list

Admin-only, test before you trust

PLC settings live in an admin-only section, enforced server-side regardless of the permission matrix. Test the connection before saving, apply and reconnect live, and fire simulated triggers to rehearse the line.

From download to counting in one afternoon.

  1. 1

    Download

    One signed installer, both editions inside.

  2. 2

    Activate

    Paste your license key. Fully offline, no account.

  3. 3

    Count

    Open the station in any browser. Cameras, PLC and audit trail are ready.

Counting the same afternoon.

One installer, no dependencies

Steadeye ships as a single Windows setup. Run it on any Win10/11 x64 PC and you get program files, a writable data tree, an auto-start background service and optional HTTPS remote access. Nothing else to install.

GPU without the pain

The bundled ONNX Runtime drives any DirectX 12-capable GPU through the standard vendor driver, with no extra GPU toolchain, and falls back to CPU automatically.

One process to qualify

The whole station is a single audited executable: web server, detection, PLC drivers and database in one process. The bundled proxy adds HTTPS across the network; all data stays on the machine.

License edition

Count

The full production station: counting and damage detection, batch records, e-signatures, PDF reports, audit trail, PLC integration.

License edition

Train

Everything in Count, plus the annotation-to-training pipeline: label datasets, train detection models in-tool and register them into the sealed registry.

Offline, fail-closed licensing

One installer serves both editions; the pasted key decides. Activation works fully offline, the station refuses to start without a valid license, and upgrading Count to Train is a new key, not a reinstall.

Ready to make every count provable?

Try the complete workflow in simulation mode, with no cameras, model or hardware, or book a live demo on your own parts.