How a piece of software is allowed to touch a qualified printer.
Powdrix writes to production printers that make qualified parts, so the security story is mostly a control story: a bounded action space inside the OEM-approved envelope, a policy engine before every write, named approvers for anything that affects qualification, an append-only audit log the floor owns, hard fallback to the printer controller, and isolation between tenants.
- Model version and data lineage
- Source signals it acted on
- Parameter sets, specs and standards it retrieved, with citations
- Predicted impact
- Allowed range and the envelope applied
- Human approval status
- Qualification impact and build scope
Nothing is written without this record.
An agent that can trim laser power needs a leash
Powdrix writes to production printers that make qualified parts. Every capability is scoped to the qualified envelope, every write is policy-checked, and every action is written to an append-only audit log the floor owns.
- Bounded action space. Each agent writes only to an explicit allow-list of printer, oven and cell parameters, inside the OEM-approved envelope and per-tag rate and magnitude limits.
- Policy engine before every write. Autonomy level, part family, qualification status, machine state and operator presence are evaluated before a parameter moves.
- Human approval for qualification-impacting actions. Anything that leaves the qualified envelope, changes a validated recipe or affects a part's disposition waits for a named approver. This stays mandatory until validation exists.
- Immutable audit log. Append-only and exportable. Every action records model version, data lineage, source signals, predicted impact, allowed range, approval status and qualification impact.
- Hard fallback. Loss of the edge node, the network or a model returns control to the printer's own controller and the standing recipe.
- Tenant and IP isolation. Parameter sets, part geometry, defect libraries and process memory never cross a customer boundary. On-prem deployment is available for sensitive producers.
Compliance posture
| Item | Scope | Status |
|---|---|---|
| SOC 2 Type I | Cloud control plane | QUEUED Planned, first 6 months |
| SOC 2 Type II | Cloud control plane | QUEUED Planned, 6 to 12 months |
| SSO and RBAC | Console and approvals | QUEUED Planned, 6 to 12 months |
| AS9100 and ISO 13485 assurance packages | Evidence packets and model change control | QUEUED Planned, 6 to 12 months; not a certification claim |
| Standards-cited reasoning | AS9100, ISO 13485, ASTM F42, ISO 52900 | RUNNING In the design, every answer cites its source |
| Per-tenant isolation and on-prem option | Recipes, geometry, models, memory | RUNNING In the design from day one |
What data exists and who can see it
The data strategy from the architecture: build-based, labelled from the floor, synthetic only for rare defects and only after validation, governed per tenant.
Sources
- Parameter sets, geometry metadata, material and powder lots
- Layer and melt-pool streams, thermal traces, recoater images
- CT volumes, surface images, metrology, post-processing recipes
- Non-conformance records, final pass or fail, operator and engineer corrections
Governance
- Tenant isolation for parameter sets, geometry, models and memory
- Strict IP and parameter-set protection; on-prem for sensitive producers
- Model cards and dataset versioning
- Cross-customer learning is federated and IP-isolated, and waits on written data agreements
- Synthetic data used only to augment rare defects, validated against real CT and in-situ data before promotion
The write path
What has to be true before a parameter moves.
- A declared tool. The agent can only call tools declared with parameters, units, an envelope and limits.
- A policy decision. Autonomy level, part family, qualification status, machine state and operator presence are evaluated.
- An envelope check. The move must sit inside the OEM-approved and qualified parameter envelope. Anything outside it goes to a human, always.
- A simulated check. Where the agent is configured with verify=twin, the move is simulated before it is written.
- An approval, if required. Anything that affects qualification waits for the named approver.
- A bounded write. The connector enforces per-tag rate and magnitude limits again at the machine boundary.
- A record and a rollback path. The action, its evidence and its outcome are appended to the audit log and the build genealogy, and declared rollback conditions return the parameter to its previous value or the printer to its standing recipe.
Four levels, set per agent and per machine
A qualified floor does not go from manual to unattended in one step. Powdrix makes the level explicit, auditable and reversible at any time, and human approval for anything that affects qualification stays mandatory until validation exists. The first release runs shadow mode, then assist mode, then graduated autonomy.
| Level | What the agent does | What the human does | Where it sits in a pilot |
|---|---|---|---|
| L1 · Advisory | Predicts and recommends, with citations; nothing is written | Enters every change manually | Shadow mode on one machine, first weeks of a pilot |
| L2 · Supervised | Proposes a parameter, thermal or inspection move; it executes on approval | Approves each move in the review console | Assist mode once accuracy is measured against CT |
| L3 · Bounded | Writes inside the OEM-approved parameter envelope and per-tag limits | Approves anything that leaves the envelope or affects qualification | Graduated autonomy on low-risk loops, if the floor is satisfied |
| L4 · Unattended | Runs the envelope without prompting | Sets the envelope; reviews the shift record | Planned; only after validation on the part family |
One scenario run, step by step
Every Powdrix run is an ordered, inspectable sequence. This is run_7c2e4b on PBF-2 · Ti-6Al-4V bracket family, 24-part build. Scenario completes in 10 steps with one approval gate. Twin recipe #14 selected, one lack-of-fusion precursor at layer 1,872 cleared by a bounded power trim, CT triage in 11 minutes, 23 of 24 parts released with full genealogy and one held for review.
-
01
ingest.job
SUCCEEDED
0.7 s
Floor Orchestrator · Pulled the job from AM MES: 24 Ti-6Al-4V brackets, 60 µm layers, 3,140 layers, density target 99.7%, geometry tolerance ±0.10 mm, AS9100 evidence packet required. Locked the OEM-approved parameter envelope for PBF-2.
-
02
twin.simulate
SUCCEEDED
6 m 12 s
Part Twin · Simulated 40 candidate orientation, support and parameter recipes for thermal field, residual stress and distortion, ranked on predicted density, geometry deviation, takt and energy.
-
03
prep.release
SUCCEEDED
48 s
Prep-and-Parameter · Recipe #14 released: 32° orientation, lattice supports on two faces, laser power and speed inside the qualified envelope. Predicted distortion 0.06 mm, predicted density 99.8%.
-
04
recoat.check
SUCCEEDED
continuous
Recoat-and-Powder · Recoater image checked every layer. Powder lot L-2291 on its third reuse, humidity in window. One short-feed at layer 412 corrected with a dosing increase before the next layer fused.
-
05
melt.stabilise
SUCCEEDED
continuous
Melt-and-Layer · Melt-pool, photodiode and thermal streams fused at 120 fps. Lack-of-fusion risk rose to 0.61 on part 17 at layer 1,872 and was cleared by a 3% power trim inside the envelope within four layers.
-
06
thermal.compensate
SUCCEEDED
2 m 04 s
Thermal-and-Distortion · Interlayer temperature on the tall brackets ran 14 °C above the twin's prediction from layer 2,300. A 1.5 s interlayer dwell held the thermal field inside the predicted band through the top section.
-
07
approve.human
APPROVAL
4 m 30 s
Floor Orchestrator · Melt-and-Layer proposed a hatch-spacing change on part 17 beyond the qualified envelope. Held for the AM process engineer, who declined it and chose to flag part 17 for CT priority instead. Decision logged.
-
08
handle.depowder
SUCCEEDED
38 m
Robot-and-Handling · Plate unloaded by the handling cell on build complete, depowdered, and parts transferred to stress relief. Powder returned to the sieve with lot L-2291 reuse count incremented in genealogy.
-
09
inspect.ct
SUCCEEDED
11 m
Defect-and-Inspect · 24 CT volumes segmented for pores, cracks and lack of fusion in 11 minutes. 23 parts graded accept against the acceptance criteria. Part 17 shows a 180 µm indication at layer 1,870 and is routed to the inspector for disposition.
-
10
release.qualify
SUCCEEDED
1 m 20 s
Quality-and-Conformance · 23 parts released with the full genealogy: recipe, layer tags, melt-pool events, thermal trace, approvals, post-processing cycles and CT result. Part 17 held with a non-conformance opened. Evidence packet assembled for sign-off.
What the audit log looks like
Every tool invocation, argument and result is written to an append-only, human-readable log, and every reasoning step is expandable. Nothing about a build is hidden from the floor or from the certification engineer.
- 05:10:04mes.read_job({ printer: "PBF-2", job: "J-4471" })
- 05:10:05ok 24 parts · Ti-6Al-4V · 3,140 layers · envelope locked
- 05:10:05twin.simulate({ candidates: 40, targets: ["density", "geometry", "takt"] })
- 05:16:17ok best recipe #14 · distortion 0.06 mm · density 99.8% · takt 31.2 h
- 05:16:18policy.evaluate({ recipe: 14, autonomy: "L3" })
- 05:16:18ok recipe inside envelope · 6 bounded writes permitted
- 05:16:19printer.release_recipe({ id: 14, orientation: 32, supports: "lattice" })
- 05:17:07ok build started · layer 1 of 3,140
- 06:02:40recoat: short feed at layer 412 · dosing +4% applied
- 13:48:11precursor: lack-of-fusion risk 0.61 · part 17 · layer 1,872
- 13:48:12printer.trim_power({ part: 17, delta: "-3%", layers: 4 })
- 13:49:03ok risk 0.61 → 0.08 · pool stable
- 13:49:04approval.request({ action: "hatch_change", part: 17 })
- 13:53:34ok declined by AM process engineer · part 17 flagged CT priority
- 18:21:50printer.set_dwell({ interlayer: "+1.5 s", from_layer: 2300 })
- 18:23:54ok thermal field inside predicted band
- 12:20:30isaac.plan_grasp({ task: "unload_plate", cell: "RC-1" })
- 12:58:30ok depowdered · 24 parts to stress relief · lot L-2291 reuse 4
- 14:05:02ct.segment({ volumes: 24, criteria: "BRK-TI-A" })
- 14:16:02ok 23 accept · 1 indication 180 µm · part 17 → inspector
- 14:16:03packet.sign({ job: "J-4471", parts: 23, hold: [17] })
- 14:17:23ok scenario complete · 23 released · 1 NCR opened
Reasoning trace
Plan, thought, action, observation, exactly as the orchestrator would record it.
GoalRun job J-4471, 24 Ti-6Al-4V brackets on PBF-2, to 99.7% densi…
Run job J-4471, 24 Ti-6Al-4V brackets on PBF-2, to 99.7% density and ±0.10 mm, with an AS9100 evidence packet on every released part.
PlanSimulate the recipe on the twin first. Release only inside the…
Simulate the recipe on the twin first. Release only inside the qualified envelope. Watch recoat and melt pool every layer, compensate thermally against the twin, and route anything outside the envelope to the process engineer. Triage every part by CT before release.
ThoughtThree candidate recipes beat #14 on takt but predicted distort…
Three candidate recipes beat #14 on takt but predicted distortion above 0.08 mm on the tall brackets. Takt is not worth a geometry failure on a qualified part family. Recipe #14 wins on the stated targets.
Actiontwin.simulate(candidates=40) returns recipe #14: 32° orientati…
twin.simulate(candidates=40) returns recipe #14: 32° orientation, lattice supports, power and speed inside the envelope, predicted distortion 0.06 mm.
ObservationLack-of-fusion risk 0.61 on part 17 at layer 1,872. A 3% power…
Lack-of-fusion risk 0.61 on part 17 at layer 1,872. A 3% power trim, inside the envelope, clears it in four layers. The proposed hatch change would leave the envelope, so it goes to a human and is declined.
ActionFlag part 17 for CT priority. Hold interlayer dwell at +1.5 s …
Flag part 17 for CT priority. Hold interlayer dwell at +1.5 s from layer 2,300 to keep the thermal field inside the twin's band.
ObservationCT confirms a 180 µm indication on part 17 at layer 1,870, two…
CT confirms a 180 µm indication on part 17 at layer 1,870, two layers below the precursor. The other 23 parts grade accept. The precursor, the action and the CT result are now one linked record.
OutcomeScenario complete. 23 parts released with full genealogy, part…
Scenario complete. 23 parts released with full genealogy, part 17 held with a non-conformance, CT triage in 11 minutes, no unapproved parameter left the envelope.
Standardise autonomy across the group
One policy model, one audit trail, one benchmark across every machine on every floor, with the alloy, polymer and qualification models kept private to each site.
- SSO and role-based access down to the parameter level, planned for the 6 to 12 month release
- Group-wide autonomy policy with per-site override and approval chains
- Cross-floor benchmarking on build failure, yield, porosity and parameters, planned as data-network tiers
- On-prem GPU inference and floor-edge deployment, with air-gapped operation for sensitive producers
- Validated model change control and AS9100 and ISO 13485 evidence packs, planned
- Dedicated deployment engineer and quarterly model review per floor
Straight answers
The questions operations directors, process engineers and certification engineers ask in the first meeting.
Only inside the OEM-approved parameter envelope, only on an explicit allow-list with per-tag limits, and only at the autonomy level your floor has set. Level 1 is advisory: Powdrix predicts and recommends and a human enters everything. Design partners start there, in shadow mode. Anything that leaves the envelope or affects qualification always waits for a named approver.
Control returns to the printer's own controller and the standing recipe. Powdrix is a supervisory layer on top of the machine controls, monitoring systems and MES you already run, never a replacement for them, so an outage degrades the floor to its current way of running, not to a stop.
Advisory recommendations start from the twin's physics and the part spec in the first weeks. Defect and build-failure prediction improve as layers, CT results and engineer corrections accumulate per part family. The first models are trained on existing in-situ camera data; synthetic rare-defect scenarios augment them only after validation against real CT.
Only if you choose cloud training. Parameter sets, geometry, defect libraries and process memory are isolated per tenant and never used to train another customer's models. Cross-customer learning is federated and IP-isolated and waits on written data agreements. A fully on-prem deployment is available for sensitive producers.
It is designed not to. Validated parameters never change without the sign-off your quality system requires, model changes go through change control, and every action carries model version, data lineage, approval status and qualification impact in the audit log. Powdrix does not claim AS9100 or ISO 13485 certification; assurance packages are planned for the 6 to 12 month release.
You are, as with any process change, which is why every write is policy-checked, bounded, logged and reversible, and why anything that affects qualification waits for a named approver. The audit log records the request, the reasoning, the limits applied and the human decision.
Send us your security questionnaire
We answer plainly, including where an item is planned rather than done.