Extruon

Developers

Wire it intowhat you already run.

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

Every pushis an object.

A push carries its billet, die, recipe, perception summary, agent proposals, approvals and outcome. It is the unit everything else joins on.

  • Stable push IDs across press, quench, stretcher, saw and aging.
  • Perception summaries plus links to raw frames and gauge traces.
  • Model versions attached so outcomes stay attributable.
GET /v1/presses/plant2-press3/pushes/41208
{
  "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

Events, notpolling loops.

Subscribe over WebSocket or receive webhooks. Defect and dimension alerts target sub-250 ms from frame to event.

  • Signed webhooks with replay protection.
  • At-least-once delivery with idempotency keys.
  • Filter by press, die family, severity or setpoint.
ws://edge.local/v1/stream
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

Six ways in,one data model.

OPC UA & Modbus TCP

Read press, furnace, quench, stretcher, saw and oven tags; write approved setpoints through envelope-checked write paths.

MQTT telemetry

Stream gauge and sensor telemetry in, and subscribe to Extruon events out, on your existing broker.

REST API

Pushes, dies, recipes, defects, recommendations, approvals and outcomes, with cursor pagination and per-tenant scoping.

WebSocket & webhooks

Low-latency event streams for defect, drift, proposal, application and envelope-rejection events.

Edge SDK

Rust and C++ interfaces for custom sensors and custom control adapters running inside the plant-edge runtime.

Audit & data export

Full audit trail and push history exported as Parquet to your own object storage for BI and quality analytics.

Envelopes as code

Safety limitslive in version control.

Envelopes are declarative, reviewable and diffable. Widening one is a pull request with an approver, not a click nobody remembers.

  • Reviewed and signed by named engineering roles.
  • Validated in the twin before promotion.
  • Every change recorded in the audit trail with the diff.
envelopes/plant2-press3.yaml
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

From frame to actioninside one push.

Perception, scoring, arbitration, envelope check and write all happen while the ram is still moving. That budget is what forces edge deployment.

Extruon closing the loop on an extrusion press A heated billet is pushed by the ram through the container and die; the finished profile emerges on the runout while Extruon senses dimensions, surface quality and exit temperature and adjusts ram speed and billet taper in real time. RAMBILLET · CONTAINERDIEPROFILE · RUNOUT EXIT TEMP508 °C WALL±0.06 mm RAM SPEED6.4 mm/s RECOVERY87.9 %

Target: sub-250 ms defect and dimension alerts, sub-1 second control recommendations. [ASPIRATIONAL]

Reference

The endpointsyou will use most.

Frequently used Extruon API endpoints.
EndpointPurposeNotes
GET /v1/pressesList presses and their autonomy modeIncludes envelope version and edge runtime build
GET /v1/pushes/{id}Full push recordPerception, actions, approvals, outcome, audit link
GET /v1/dies/{id}/healthDie performance and trial historyFlow imbalance trend and defect attribution
POST /v1/recommendations/{id}/approveApprove or correct a proposalCorrections become training signal
GET /v1/quality/racks/{id}Per-rack temper and dimension recordExport for OEM quality audits
POST /v1/context/mesPush order, due-date and alloy contextFeeds scheduling and batching optimisation
GET /v1/audit/exportSigned audit exportParquet to your own object storage

Stack

What it isbuilt on.

Edge

Rust / C++ runtime

Deterministic plant-edge runtime on K3s and IGX, with OTA updates and safe rollback.

Services

Go & Python FastAPI

Control plane in NestJS; services in Go and Python where each fits best.

Data

PostgreSQL, pgvector, TimescaleDB

Relational core, vector retrieval for defect and die lookup, time-series for press telemetry, Redis for hot state.

AI

PyTorch + NVIDIA stack

Isaac, Metropolis, Holoscan, Cosmos, cuOpt and Omniverse, with LangGraph orchestration and frontier model routing.

Developer FAQ

Integration questionsfrom OT and IT.

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

What the APIreports on.

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

Start in the sandbox.Ship at the press.

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.