OPC UA & Modbus TCP
Read press, furnace, quench, stretcher, saw and oven tags; write approved setpoints through envelope-checked write paths.
Developers
Extruon is not a walled garden. Read perception and predictions over REST and streams, subscribe to events, push context from your MES, and export the full audit trail into your own data platform.
OPC UA · Modbus TCP · MQTT · REST · WebSocket · S3/Parquet export.
Read the push
A push carries its billet, die, recipe, perception summary, agent proposals, approvals and outcome. It is the unit everything else joins on.
{
"push_id": "41208",
"press": "plant2-press3",
"billet": { "alloy": "6063", "diameter_mm": 178, "taper_c": [455, 468, 476, 482] },
"die": { "id": "44-118", "family": "architectural-thin-wall", "pushes": 812 },
"perception": {
"exit_temp_c": 508.2,
"wall_dev_mm": 0.05,
"twist_deg_per_m": 0.6,
"surface": { "die_line": 0.18, "pickup": 0.04, "blister": 0.01 }
},
"actions": [
{ "setpoint": "ram_speed", "delta": 0.3, "unit": "mm/s",
"approver": "auto:bounded", "model": "flow-pinn@7" }
],
"outcome": { "recovery_pct": 88.1, "rejected": false },
"audit": "audit://plant2/press3/41208"
}
Subscribe
Subscribe over WebSocket or receive webhooks. Defect and dimension alerts target sub-250 ms from frame to event.
subscribe {
press: "plant2-press3",
events: ["defect.detected", "dimension.drift", "action.proposed",
"action.applied", "envelope.rejected", "temper.risk"],
severity: "warn"
}
// ← 41208.defect.detected (112 ms after frame)
{ "type": "defect.detected", "class": "die_line", "confidence": 0.94,
"position_mm": 3120, "die": "44-118", "frame": "s3://.../41208/1187.jpg" }
Interfaces
Read press, furnace, quench, stretcher, saw and oven tags; write approved setpoints through envelope-checked write paths.
Stream gauge and sensor telemetry in, and subscribe to Extruon events out, on your existing broker.
Pushes, dies, recipes, defects, recommendations, approvals and outcomes, with cursor pagination and per-tenant scoping.
Low-latency event streams for defect, drift, proposal, application and envelope-rejection events.
Rust and C++ interfaces for custom sensors and custom control adapters running inside the plant-edge runtime.
Full audit trail and push history exported as Parquet to your own object storage for BI and quality analytics.
Envelopes as code
Envelopes are declarative, reviewable and diffable. Widening one is a pull request with an approver, not a click nobody remembers.
setpoints:
ram_speed:
unit: mm/s
min: 4.0
max: 8.5
max_step: 0.4
requires_approval: false # bounded autonomy
exit_temp_target:
unit: celsius
min: 495
max: 520
max_step: 3
requires_approval: false
quench_rate:
unit: c_per_s
min: 180
max: 340
max_step: 15
requires_approval: true # temper-critical
on_alarm: rollback_last
signed_by: ["process-engineering", "plant-safety"]
Latency budget
Perception, scoring, arbitration, envelope check and write all happen while the ram is still moving. That budget is what forces edge deployment.
Target: sub-250 ms defect and dimension alerts, sub-1 second control recommendations. [ASPIRATIONAL]
Reference
| Endpoint | Purpose | Notes |
|---|---|---|
| GET /v1/presses | List presses and their autonomy mode | Includes envelope version and edge runtime build |
| GET /v1/pushes/{id} | Full push record | Perception, actions, approvals, outcome, audit link |
| GET /v1/dies/{id}/health | Die performance and trial history | Flow imbalance trend and defect attribution |
| POST /v1/recommendations/{id}/approve | Approve or correct a proposal | Corrections become training signal |
| GET /v1/quality/racks/{id} | Per-rack temper and dimension record | Export for OEM quality audits |
| POST /v1/context/mes | Push order, due-date and alloy context | Feeds scheduling and batching optimisation |
| GET /v1/audit/export | Signed audit export | Parquet to your own object storage |
Stack
Deterministic plant-edge runtime on K3s and IGX, with OTA updates and safe rollback.
Control plane in NestJS; services in Go and Python where each fits best.
Relational core, vector retrieval for defect and die lookup, time-series for press telemetry, Redis for hot state.
Isaac, Metropolis, Holoscan, Cosmos, cuOpt and Omniverse, with LangGraph orchestration and frontier model routing.
Developer FAQ
Yes. The plant-edge runtime performs perception, inference and control locally. In on-prem mode, model updates arrive through your own controlled channel instead of an OTA link.
For a press exposing ram speed, pressure and position over OPC UA plus furnace zone setpoints, the connector work is typically days, not months. Sensor installation at the press exit is usually the long pole.
We read from and write to common historians and MES surfaces via REST, OPC UA and MQTT. Long-tail integrations beyond design-partner stacks are explicitly out of scope in v1. [PLACEHOLDER — current connector list on request.]
Every action carries the model versions that produced it, so any outcome can be attributed to a specific build. Promotions are gated in CI by golden datasets and twin validation.
Yes — a simulated press fed by twin-generated pushes, so you can build and test integrations before hardware is installed. Request access through the contact form.
Measured on the press
Every Extruon engagement starts with a baseline and ends with an audited delta. These are the target bands we underwrite in a paid pilot.
+4.2 pts
Press recovery uplift, saleable vs charged metal
−38%
Surface-defect and dimensional rejects
−61%
Die-trial pushes before a die is signed off
−12%
kWh per tonne across heating, quench and aging
Target outcome bands modelled from design-partner baselines. [ASPIRATIONAL — to be replaced with audited pilot results.]
Developers
Get a simulated press, the full API surface and the audit export schema before a single sensor is mounted.
Land on one press. Expand press by press, module by module, site by site.