Hands-On Review: PlantCraft Open Industrial Suite

Hands-On Review: PlantCraft Open Industrial Suite

Last week Jônathan Dambros (PhD in process control) launched PlantCraft — a fully open-source (Apache-2.0) industrial software suite: Historian, Analytics (control loop performance monitoring), Alarms, Dashboards, Models, Documents, plus an AI assistant — installable offline and read-only toward the plant.

[TYPE 3 — hands-on verification] Methodology note: independent test on my own machine and the public demo. PlantCraft is free and open-source; no sponsorship, no vendor contact, no affiliate links. All findings are reproducible from the public repo and demo.

I installed PlantCraft on my own machine and ran it against the bundled simulated refinery (50 control loops). This is what I verified — with screenshots and the actual commands, not the README. It sits naturally next to the kind of OT/IT integration solutions we discuss with pharma and process customers.

What PlantCraft is

A suite of containerized apps sharing one asset/signal model:

  • Historian — collects and archives signals from OPC UA, PI Web API, MQTT, Modbus TCP, SQL, CSV — read-only to the plant
  • Analytics — checks every signal and control loop for oscillation, stiction, manual mode, bad data — worst first
  • Alarms — ISA-18.2 alarm management: shelving, history, performance KPIs
  • View — dashboards, process displays, trends, scheduled PDF reports
  • Models — block-diagram modelling on Modelica, simulation, FMU export
  • Documents — plant document library, offline search, cited by the assistant
  • Desk — per-person actions, calendar, to-do, shift handover

The differentiating bet is LLM-first: an assistant that reads plant data and app results to answer questions and propose blocks/rules/models — plus a read-only MCP server so a customer's own AI can read the plant too. For regulated environments this matters in a specific way: the read-only boundary is exactly the pattern used in compliance-sensitive OT architectures.

What I verified

1. The live demo is real

On demo.plantcraft.io (simulated refinery, visitor read-only):

  • Analytics returned 267 results (26 alarm, 24 warning, 217 OK), ranked worst-first. Opening loop PIC-1207 (compressor discharge): Health 0%, limiting criterion PV–SP error — "MAE of 12.5; the PV was within ±0.8 of the setpoint 0% of the time". Suggested cause: output saturation 100% of the time → check valve sizing, closed bypass, upstream pressure, OP limits. Every method (Harris index, SP activity, manual mode, oscillation via autocorrelation, stiction screening, sampling quality) carries a verdict, a plain-language finding, and a "How to read this" link.
  • Alarms is genuine ISA-18.2: bad actor PIC-1202 carries 94.6% of the alarm load; stale/chattering/time-in-flood/peak-10-minute KPIs all present.
  • Historian: 613 signals, 209 values/s, 7.1M values stored in 24h, 175.9 MB on disk (~50 MB/day growth).
  • Desk/Messages: actions are generated from Analytics findings ("Inspect the FIC-1003 recycle valve for stiction") with owner and due date.
PlantCraft loop detail for PIC-1207 showing Harris index, PV-SP error and saturation verdicts

2. Local install — the "under 1 hour" claim holds

git clone https://github.com/PlantCraft/PlantCraft.git
cd PlantCraft
python3 -m venv .venv && .venv/bin/pip install -e sdk/python -e ".[server,opcua]" -e simulator
.venv/bin/python run_opcua_demo.py

Result: about 8 minutes from clone to a working UI at http://127.0.0.1:8060 (including the frontend build). Full asset tree: simulated refinery, 14 areas, 50 control loops, each bound to PV/SP/OP/MODE signals.

PlantCraft alarms view with ISA-18.2 KPIs and the PIC-1202 bad actor at 94.6 percent of alarm load

3. The one real gotcha: Python 3.15

On Python 3.15 everything works except the OPC UA read path — the API returns 502. The traceback shows the fault sits in the asyncua dependency, not PlantCraft code:

asyncua/ua/ua_binary.py:368: issubclass(uatype, Enum)
TypeError: issubclass() arg 1 must be a class

On Python 3.12 the same install works end to end — the collector connects to the simulator, backfills 48h of history, and live values update continuously ({"value": 67.88, "at": "2026-10-30T03:43:21Z"}). Practical advice: use Python 3.11–3.13 until upstream catches up. I filed issue #10 documenting the traceback and the workaround.

Assessment

Strengths

  • Well-packaged CLPM: the methods are public literature (Harris index, autocorrelation, stiction screening), but the worst-first ranking plus actionable plain-language findings is what paid tools charge for.
  • Serious OT security posture: read-only, signed offline bundle, single HTTPS port, IEC 62443/Purdue mapping — the language of a real IT/OT review.
  • Rare repo discipline: tests that fail on unconfigured network access, hostile-input tests on every API route, oracle tests on public datasets, clean-room rules for studying commercial tools.
  • Openly built by Claude Code directed by a process engineer — living proof of the "domain expert + AI" model.

Weaknesses / risks

  • Alpha (v0.5.0): nobody runs this in production yet; historian throughput is modest next to PI/Canary.
  • Seven apps at alpha — breadth is easy to ship with AI; plant-critical depth and reliability are not yet proven.
  • No GxP story: no 21 CFR Part 11, no ALCOA+ audit trail, no validation package — usable for pharma only in non-GxP monitoring/optimization scope.
  • Read-only is safe but blocks high-value use cases (APC, setpoint optimization).
  • Business model unclear — all Apache-2.0, no paid edition → revenue is services/pilots.

Who should try PlantCraft

Process engineers who want loop monitoring and alarm KPIs without waiting for a PI budget; universities and researchers; integrators who need a quick demo on a simulated plant. Who should wait: production deployments, anything in GxP scope, plants needing an SLA.

Vietnam context

Most Vietnamese plants have no PI System — the barrier is license cost, not technology. A free suite that installs in 8 minutes on a simulated plant is a useful demo and presales tool: show the value of loop monitoring before discussing a real historian. For pharma, be explicit: there is no validation story yet — a compliance layer would be needed before anything enters GxP scope.


Sources: github.com/PlantCraft/PlantCraft · plantcraft.io · demo.plantcraft.io — tested on macOS arm64, Python 3.12/3.15, 2026-10-30.