Build on thefoundry loop.

A Python and REST surface over the agent loop, OPC UA and MQTT at the edge, DICONDE ingest for inspection media, and a plan object that carries its own process window, confidence and explanation.

12+Connector families
41msp95 edge inference target
100%Actions logged

A plan, a window,an approver.

Everything an agent proposes is a plan object. A plan knows its process window, its confidence and how to explain itself — and applying it requires an approver identity.

  • `plan.within_window` is checked before anything can be applied
  • `plan.explain()` returns the grounded reasoning and its citations
  • `plant.apply(...)` requires an approver and writes to the audit log
pour_control.py
# Ask the pour agent for a bounded setpoint move on cell P-04
from smelteon import Plant

plant = Plant("plant-04", edge="foundry-edge-02")
heat  = plant.heats.current(line="ductile-iron-1")

plan = plant.agents.pour.plan(
    heat        = heat.id,
    part        = "crankshaft-4cyl-rev-c",
    mold_state  = plant.agents.mold.state(),
    objective   = "minimise shrinkage porosity at journal 3",
    twin        = "castwin:solidification-v7",
)

# Every move is checked against the approved process window first
if plan.within_window and plan.confidence > 0.94:
    plant.apply(plan, mode="bounded", approver="metallurgist-on-shift")
else:
    plant.escalate(plan, reason=plan.explain())
smelteon-cli — foundry-edge
$ smelteon edge install --site plant-04 --cell P-04detecting hardware ......... Jetson Thor (edge)installing runtime ......... triton + tensorrtregistering connectors ..... opcua://plc-p04, robot://fanuc-r30ibautonomy ................... shadow (default)$ smelteon models list --cell P-04pourbot-fill-v6 edge serving golden 0.951poreon-ct-v9 edge serving golden 0.964meltra-chem-v4 edge serving golden 0.938castwin-solid-v7 cloud on-demand validated$ smelteon autonomy promote --cell P-04 --to assistgolden-set gate ............ pass (0.951 ≥ 0.940)process window review ...... signed: metallurgist-on-shiftsafety review .............. required for bounded, not assistautonomy ................... assist

Operate it fromthe shift office.

The CLI speaks in heats, molds, pours, windows and approvals — the vocabulary the plant already uses.

Four ways in.

Python SDK

The primary surface for process engineers and data teams: heats, molds, pours, plans, predictions, windows and audit queries as first-class objects.

Learn more

REST & webhooks

Read the loop, subscribe to gradings, non-conformances and escalations, and push context from your MES or ERP.

Learn more

OT protocols

OPC UA, MQTT and Modbus at the edge for furnace, molding, pouring and robot integration, with historian ingest for the process record.

Learn more

DICONDE ingest

X-ray and CT volumes, ADR results, dimensional scans and vision streams ingested as inspection ground truth.

Learn more

What actually runsinside your plant.

  1. Cell node

    Jetson Orin or Thor beside the PLC and robot controllers, running TensorRT and Holoscan inference for vision, pour and defect models with no inbound cloud dependency.

  2. Factory server

    Triton Inference Server with the model router, RAPIDS ETL for historian data, and the local audit buffer that replays to cloud on reconnect.

  3. Model router

    Routes each step to the best and cheapest model: fine-tuned open models for high-volume steps, frontier models for metallurgy and safety reasoning.

  4. Twin bridge

    Requests Castwin simulations for new geometry, alloy or process changes and receives promoted setpoints back into the cell plan.

  5. Connector layer

    Read-first connectors to furnace, molding, pouring, inspection, robot and MES systems; write-back only through the approved-window gate.

  6. Audit sink

    Append-only local log of every plan, approval, action, override, escalation and grading, replicated to the tenant's audit store.

What we speak,and how.

SystemProtocolDirection
Induction & holding furnacesOPC UA / vendor APIRead, then bounded write
Spectrometry & thermal analysisFile drop / APIRead
Molding & coremaking linesOPC UA / PLC tagsRead, then bounded write
Auto-pour & ladle systemsVendor API / PLCRead, then bounded write
HPDC / LPDC cellsOPC UA / vendor APIRead, then bounded write
Robot controllers (KUKA, FANUC, ABB)Vendor API / safety-rated I/ORead, then bounded motion
X-ray, CT, vision, dimensionalDICONDE / vendor SDKRead
Foundry MES & ERPREST / databaseRead and write records
HistoriansOPC UA / SQL / time-series APIRead

Every integration ships with a documented failure mode. Write-back is enabled per connector only after a safety review.

How we buildfor a plant floor.

Local first

The loop runs at the cell. Cloud is for training, validation and fleet updates — never a dependency for control.

Fail to observation

Degraded modes fall back to sensing and prediction, never to uncontrolled action. A confused agent watches; it does not experiment.

Everything explains itself

Plans carry their grounding, citations, confidence and window. If it cannot be explained to a metallurgist, it does not ship.

Promotion is a gate, not a deploy

Model and prompt changes pass golden sets, LLM-as-judge evaluation and twin scenario tests in CI before they reach a plant.

8–24

Camera or detector streams per line

30–120

FPS vision inference per line

12–40

Models served per factory

< 60s

Line reschedule target

[ASPIRATIONAL] Engineering targets from Smelteon's GPU utilization plan.

Things engineersask on day one.

Python is the primary SDK, with a REST surface and webhooks for everything else. At the edge, integration is over OPC UA, MQTT, Modbus and vendor APIs.

Yes, on Factory and Enterprise tiers. Custom models are served through the same Triton-based router and are subject to the same golden-set and promotion gates as ours.

Staged promotion with instant rollback. A new version serves shadow traffic alongside the incumbent until its golden-set performance and twin scenario tests support promotion.

Read the docs.Then walk the line.

The fastest way to understand the loop is to see it against your own cell and your own inspection data.