Physical AI · Pulp & paper autonomy

The mill runs itself. You decide how far.

Pulpum is an agent operating system for pulp and paper. Nine agents control pulping, wet-end chemistry, forming, pressing, drying, coating and reeling — watched by web-defect vision and break prediction, rehearsed on an as-run digital twin, and bounded by a policy engine you control.

SUCCEEDED run_8f21c4 complete11 m 42 s · 0 breaksPM4 · 1,180 m/min

run_8f21c4 · agent graph · PM4 10 nodes · 1 approval gate
01 · orchestrator ingest.grade_target ✓ SUCCEEDED 02 · orchestrator twin.simulate ✓ SUCCEEDED 03 · pulp_stock stock.refine ✓ SUCCEEDED 04 · wetend_chem wetend.dose ✓ SUCCEEDED 05 · form_press form.headbox ✓ SUCCEEDED 06 · form_press press.nip ✓ SUCCEEDED 07 · dry_coat dry.steam ✓ SUCCEEDED 08 · defect_inspect inspect.web ✓ SUCCEEDED 09 · orchestrator approve.human ◆ APPROVAL 10 · quality_conf reel.qualify ✓ SUCCEEDED

Live example: Grade change PM4 · 135 gsm kraftliner → 110 gsm testliner, no break, ≤14 min off-spec

Running on machines at

Nordkraft Mills Aurora Board Ternvik Paper Cascadia Tissue Valle Packaging Hokuriku Seishi

Design-partner mills and named references [ASPIRATIONAL — pre-launch].

Run timeline

One real run, step by step

Every Pulpum run is an ordered, inspectable sequence. This is run_8f21c4 on PM4 · 6.8 m trim · 1,180 m/min — Completed in 11 m 42 s · 6.2 t off-spec (baseline 9.8 t) · zero breaks.

run_8f21c4 PM4 · 6.8 m trim · 1,180 m/min SUCCEEDED
  1. 01 ingest.grade_target SUCCEEDED 0.8 s

    Mill Orchestrator — Pulled the 110 gsm testliner spec, customer tolerances and the standing energy budget from mill MES; locked the target envelope for the run.

  2. 02 twin.simulate SUCCEEDED 34 s

    Mill Orchestrator — Simulated 48 candidate transition recipes on the as-run paper-machine twin — forming, press, dryer and calender — and ranked them on off-spec tonnes, break risk and steam.

  3. 03 stock.refine SUCCEEDED 2 m 10 s

    Pulp-and-Stock — Stepped refiner specific edge load 1.9 → 1.4 Ws/m and pushed freeness toward 412 CSF while consistency held at 3.4%.

  4. 04 wetend.dose SUCCEEDED 1 m 26 s

    Wetend-and-Chemistry — Retention aid trimmed to 214 g/t and sizing to 1.1 kg/t against live charge and turbidity; first-pass retention recovered to 78% inside 90 seconds.

  5. 05 form.headbox SUCCEEDED 1 m 05 s

    Form-and-Press — Re-cut the slice profile across 78 actuators and set jet-to-wire to 0.994 to hold formation index through the basis-weight ramp.

  6. 06 press.nip SUCCEEDED 48 s

    Form-and-Press — Nip load reduced 620 → 540 kN/m to protect the lighter web; post-press dryness landed at 47.1%.

  7. 07 dry.steam SUCCEEDED 3 m 18 s

    Dry-and-Coat — Re-phased the steam schedule across 6 dryer groups and rebalanced the hood; reel moisture converged to 7.4% ±0.19 2σ at 6.1% less steam than the standing recipe.

  8. 08 inspect.web SUCCEEDED continuous

    Defect-and-Inspect — 18 line-scan cameras streaming; two edge-crack precursors detected at the drive side and cleared by a 40 kN/m nip trim before either propagated.

  9. 09 approve.human APPROVAL 52 s

    Mill Orchestrator — Speed ramp 1,180 → 1,245 m/min exceeded the site autonomy threshold. Held for the machine tender; approved by J. Okonkwo at 04:57:12.

  10. 10 reel.qualify SUCCEEDED 1 m 31 s

    Quality-and-Conformance — Reel R-24188 released: full genealogy written (furnish, chemistry, CD profiles, defect map, operator actions) and checked against grade spec.

Tool calls

The agent shows its work

Every tool invocation, argument and result is written to an immutable, human-readable log — and every reasoning step is expandable. Nothing about a run is hidden from the mill.

tool-call stream · run_8f21c4
  1. 04:51:04mes.read_orders({ machine: "PM4", next_grade: "TL-110" })
  2. 04:51:04ok spec locked · basis 110 g/m² · moisture 7.4% ±0.5
  3. 04:51:05twin.simulate({ candidates: 48, horizon: "18 min" })
  4. 04:51:39ok best recipe #31 · est. off-spec 6.4 t · break risk 0.07
  5. 04:51:40policy.evaluate({ recipe: 31, autonomy: "L3" })
  6. 04:51:40ok 9 writes permitted · 1 write requires human approval
  7. 04:51:41dcs.write_setpoint({ tag: "REF4.SEL", from: 1.9, to: 1.4 })
  8. 04:53:51ok freeness 388 → 412 CSF · consistency 3.4%
  9. 04:53:52chem.dose({ retention_aid: "214 g/t", sizing: "1.1 kg/t" })
  10. 04:55:18ok first-pass retention 71% → 78%
  11. 04:55:19dcs.slice_profile({ actuators: 78, jet_to_wire: 0.994 })
  12. 04:56:24ok formation index 84 · CD basis 2σ 1.7 g/m²
  13. 04:56:25vision.stream({ cameras: 18, model: "webdefect-v7" })
  14. 04:56:41precursor: edge crack risk 0.62 · drive side · 1,412 mm
  15. 04:56:42dcs.nip_load({ delta: "-40 kN/m", zone: "press-2" })
  16. 04:56:58ok edge crack risk 0.62 → 0.09 · web stable
  17. 04:56:59approval.request({ action: "speed_ramp", to: "1245 m/min" })
  18. 04:57:12ok approved by J. Okonkwo (machine tender) · logged
  19. 04:58:44mes.log_reel({ reel: "R-24188", genealogy: "full" })
  20. 05:02:46ok run complete · 11m42s · off-spec 6.2 t · breaks 0

Reasoning trace

Plan → thought → action → observation, exactly as the orchestrator recorded it.

GoalMove PM4 from 135 gsm kraftliner to 110 gsm testliner with zer…

Move PM4 from 135 gsm kraftliner to 110 gsm testliner with zero breaks and under 14 minutes of off-spec production.

PlanSimulate the transition on the twin first. Lead with stock and…

Simulate the transition on the twin first. Lead with stock and chemistry so the furnish is right before the basis weight ramps, then trim forming and press, then re-phase drying. Watch the web continuously; hold the speed ramp for a human.

ThoughtThe standing recipe drops basis weight and speed together. On …

The standing recipe drops basis weight and speed together. On the twin that produces a 3-minute moisture excursion because the dryer section unloads faster than the steam schedule can follow. Sequencing the steam re-phase ahead of the basis-weight ramp removes it.

Actiontwin.simulate(candidates=48) → recipe #31 re-phases steam 40 s…

twin.simulate(candidates=48) → recipe #31 re-phases steam 40 s before the basis-weight ramp and holds nip load until post-press dryness confirms.

ObservationRecipe #31 estimates 6.4 t off-spec against 9.8 t for the stan…

Recipe #31 estimates 6.4 t off-spec against 9.8 t for the standing recipe, with break risk 0.07. Two candidates scored lower on steam but raised break risk above the 0.15 site limit and were discarded.

ActionExecute recipe #31 under autonomy level L3: nine setpoint writ…

Execute recipe #31 under autonomy level L3: nine setpoint writes permitted, speed ramp routed to the machine tender.

ObservationEdge-crack precursor at 1,412 mm drive side at 04:56:41. Nip t…

Edge-crack precursor at 1,412 mm drive side at 04:56:41. Nip trim of −40 kN/m in press-2 cleared it in 16 s without a break.

OutcomeRun complete in 11 m 42 s. 6.2 t off-spec, zero breaks, 6.1% l…

Run complete in 11 m 42 s. 6.2 t off-spec, zero breaks, 6.1% less dryer steam than the standing recipe. Reel R-24188 released with full genealogy.

How it works

A goal becomes a plan becomes a run

Nothing about a Pulpum run is implicit. The goal is declared, the plan is simulated, each step is typed, and the outcome is written to the reel record.

Active path

The orchestrator plans, the agents act

A run starts as a goal, becomes a plan, and executes as a graph of typed steps. The active path is always visible, always logged, always reversible.

RUNNING APPROVAL SUCCEEDED
11:42 Grade change, PM4 · baseline 19:05
6.2 t Off-spec tonnes · baseline 9.8 t
0 Web breaks during transition
48 Twin recipes simulated before the run
Human in the loop

Autonomy is a dial, not a switch

L1 advisory, L2 supervised writes, L3 bounded autonomy, L4 unattended within an envelope. Each site sets the level per agent, per tag, per shift — and every write above the threshold waits for a named approver.

Agent roster

Nine agents and an orchestrator

Each agent owns a section of the mill, a bounded tool set, and a measured outcome. They negotiate for shared actuators through the orchestrator — never directly.

agent.pulp_stock

Pulp-and-Stock

Pulping, refining, screening, stock prep

Holds freeness, fiber length and consistency on target across furnish swings — recovered fiber, virgin kraft, or blends — by closing the loop on refiner load, specific edge load and dilution.

dcs.read_refinerlab.freenessdcs.write_setpoint

±4 CSF held on 92% of reels

agent.wetend_chem

Wetend-and-Chemistry

Retention, sizing, charge, additives

Doses retention aid, sizing, starch and defoamer against live charge, turbidity and first-pass retention instead of a fixed recipe — cutting chemistry cost and wet-end upsets.

qcs.read_retentionchem.dosetwin.simulate

11% lower additive spend

agent.form_press

Form-and-Press

Headbox, forming, press section

Trims slice profile, jet-to-wire ratio, vacuum and nip load to hit formation and post-press dryness before the web ever reaches the dryer section.

dcs.slice_profileqcs.read_formationdcs.nip_load

+1.4 pts post-press dryness

agent.dry_coat

Dry-and-Coat

Dryer section, coating, calendering

Schedules steam pressure, hood balance, blade load and calender nip to hit moisture, caliper and gloss at the lowest energy per tonne.

dcs.steam_scheduleqcs.read_moistureenergy.budget

7.9% less dryer steam

agent.defect_inspect

Defect-and-Inspect

Web inspection, break precursors

Fuses line-scan vision and web-monitoring to classify holes, wrinkles, spots, streaks and edge cracks in under 100 ms — and flags break precursors before the sheet goes.

vision.streamwim.replayalarm.raise

68% of breaks predicted >90 s early

agent.profile_quality

Profile-and-Quality

Basis weight, moisture, caliper CD profiles

Runs CD profile control across the full actuator set, keeping 2-sigma inside grade spec through speed changes and grade transitions.

qcs.read_profiledcs.cd_actuatorsspec.check

2σ moisture 0.31 → 0.19

agent.yield_takt

Yield-and-Takt

Yield, broke, energy, grade sequencing

Sequences grade changes, balances machine speed against dryer capacity, and prices every candidate move in tonnes, broke and megajoules.

cuopt.sequencemes.read_ordersenergy.budget

−22% grade-change waste

agent.robot_handling

Robot-and-Handling

Reel, winder and roll handling

Drives reel turn-up, winder set changes, roll wrapping and clamp-truck routing so finishing never starves or blocks the machine.

isaac.plan_pathwinder.set_changewms.route

3.1 h/shift of manual handling removed

agent.quality_conf

Quality-and-Conformance

Right-first-time, genealogy, traceability

Builds the reel genealogy record — furnish, chemistry, profiles, defects, operator actions — and gates release against grade spec and standards.

mes.log_reelspec.checkaudit.write

99.2% release records complete

agent.orchestrator · coordinates all nine

Mill Orchestrator

Planning, arbitration, human approval

Plans the run, arbitrates between agents competing for the same actuator, enforces autonomy level and routes anything above the risk threshold to a human.

plan.composepolicy.evaluateapproval.request

100% of writes policy-checked

Where it pays

Four loops, four numbers

Pulpum is not a dashboard. Each agent closes a loop that a mill already measures in tonnes, megajoules and minutes.

Web breaks

Predict the break before the sheet goes

Line-scan vision and web-monitoring signals are fused at the edge into a rolling break-risk estimate. When risk crosses the threshold, the agent has time to trim a nip, a vacuum or a draw instead of watching four hours of threading.

  • 18 cameras per machine, sub-100 ms classification
  • Edge-crack, flutter and wrinkle precursors
  • Break replays labelled and fed back into training
agent.defect_inspect SUCCEEDED
Predict the break before the sheet goes — key signals and values
SignalBeforeWith Pulpum
Breaks / month145
Warning lead time0 s92 s
Threading hours / month19.67.0
Dryer energy

Stop paying to over-dry the sheet

The dryer section is the single biggest energy consumer in the mill and it is almost always run with margin. Pulpum re-phases steam across groups against live moisture instead of a fixed recipe, and takes the margin back.

  • Per-group steam scheduling with hood balance
  • Moisture 2σ tightened, not just the mean
  • Energy budget respected as a hard constraint
agent.dry_coat SUCCEEDED
Stop paying to over-dry the sheet — key signals and values
SignalBeforeWith Pulpum
Steam / tonne2.41 GJ2.22 GJ
Reel moisture 2σ0.310.19
Over-dry margin0.9 pt0.3 pt
Grade changes

Rehearse the transition on the twin

Every grade change is simulated on the as-run paper-machine twin before a single setpoint moves. Candidates that save steam but raise break risk above the site limit are discarded automatically.

  • 10–100 candidate recipes per transition
  • Ranked on off-spec tonnes, break risk and steam
  • The chosen recipe is executed step by step, logged
agent.yield_takt SUCCEEDED
Rehearse the transition on the twin — key signals and values
SignalBeforeWith Pulpum
Transition time19 m 05 s11 m 42 s
Off-spec tonnes9.86.2
Transitions / week1111
CD profiles

Hold the profile, not just the average

Customers reject on variation, not on means. Profile-and-Quality runs the full CD actuator set against live scans so basis weight, moisture and caliper stay inside spec through ramps and transitions.

  • 78 slice actuators, per-zone moisture and caliper
  • Spec checked per reel, not per shift
  • Non-conformances traced back to the causing step
agent.profile_quality SUCCEEDED
Hold the profile, not just the average — key signals and values
SignalBeforeWith Pulpum
CD basis 2σ2.6 g/m²1.7 g/m²
First-pass quality91.4%96.8%
Customer claims / qtr72
Multi-agent handoff

Agents negotiate, they do not collide

Two agents will want the same actuator. The orchestrator arbitrates on the run goal, not on who asked first — and the handoff is logged like any other step.

Contested move: press-2 nip load

  1. 01form_press.request(nip −0 kN/m) SUCCEEDED0.2 s

    Form-and-Press wants to hold nip load to protect post-press dryness.

  2. 02defect_inspect.request(nip −40 kN/m) SUCCEEDED0.2 s

    Defect-and-Inspect wants to reduce nip load to clear an edge-crack precursor.

  3. 03orchestrator.arbitrate SUCCEEDED0.4 s

    Break risk 0.62 outranks a 0.4-point dryness loss under the run goal "zero breaks". Defect-and-Inspect wins the actuator for 120 s.

  4. 04form_press.handoff(returned) SUCCEEDED120 s

    Actuator returned; Form-and-Press recovers dryness with vacuum instead. Post-press dryness lands at 47.1%.

Arbitration rules

  • Run goal first. Every request is scored against the declared goal, not the requesting agent's local objective.
  • Safety and breaks outrank quality. A break costs hours; a profile excursion costs minutes.
  • Time-boxed ownership. An agent holds a contested actuator for a bounded window, then must re-justify.
  • Everything is logged. The losing request, the score and the reason all appear in the run record.
  • Deadlocks escalate to a human rather than resolving by timeout.

See the agent roster

Autonomy

Four levels, set per agent and per tag

A mill does not go from manual to unattended in one step. Pulpum makes the level explicit, auditable and reversible at any time.

Autonomy levels and the human role at each
LevelWhat the agent doesWhat the human doesTypical time to reach
L1 · AdvisoryRecommends setpoints and explains whyEnters every change manuallyWeek 1
L2 · SupervisedProposes a write; it executes on approvalApproves each write in the HMIWeek 3–6
L3 · BoundedWrites inside tag, rate and magnitude limitsApproves ramps and grade releasesMonth 2–4
L4 · UnattendedRuns the envelope without promptingSets the envelope; reviews the shift recordMonth 6+ [ASPIRATIONAL]
Measured

One machine, one quarter

Measured against the mill's own pre-Pulpum baseline on PM4, over 13 weeks of pilot operation.

11 m 42 s Grade change on PM4 · baseline 19 m 05 s
6.2 t Off-spec tonnes per transition · baseline 9.8 t
68% Web breaks predicted more than 90 s early
7.9% Less dryer steam per tonne of paper

Figures are design targets and pilot-scoped results [ASPIRATIONAL]. Every number is reproduced from the mill's own reel genealogy, not our telemetry.

Use cases

Where mills start

Most sites pick one of these four wedges, prove the number, then expand.

Packaging & board SUCCEEDED

Kraftliner and testliner at speed

High-speed containerboard machines live and die on break rate and grade-change waste. Pulpum starts on break prediction and transition sequencing, where the payback is measured in hours of lost production avoided.

Tissue SUCCEEDED

Yankee, creping and crepe quality

Tissue machines run hot, fast and thin. Defect-and-Inspect plus Dry-and-Coat cut sheet breaks and Yankee energy while holding crepe structure and bulk.

Print & specialty SUCCEEDED

Coating, calendering and gloss

Coated grades are unforgiving on caliper and gloss profile. Profile-and-Quality plus Dry-and-Coat hold the CD profile through the coater and calender stack.

Market pulp SUCCEEDED

Freeness, brightness and yield

Pulp-and-Stock closes the loop on refiner load and freeness across variable recovered-fibre furnish, holding quality while chasing yield.

Accelerated computing

Physical AI, at the machine

Paper moves at 1,200 metres a minute. Perception has to be local, deterministic and fast, so Pulpum runs GPU inference at the mill edge and keeps training, simulation and optimisation in the cloud or on-prem.

Jetson Orin · DeepStream · Holoscan · TensorRT

Edge perception

8–24 synchronised line-scan cameras per machine. Sub-100 ms defect classification, sub-250 ms break-risk updates. [ASPIRATIONAL design targets]

Triton · NIM

Model serving

Vision, time-series prognostics, grade embeddings and process reasoning behind one orchestrator, with deterministic rollback by model version.

DGX / HGX · NeMo

Training

Defect vision, break precursors, wet-end response and drying models trained on reel genealogy, QCS histories and operator corrections.

Omniverse · OVX

Digital twin

GPU-accelerated CFD, drying and web-dynamics simulation of the as-run machine — 10–100 candidate recipes evaluated per grade change.

Omniverse Replicator · Cosmos

Synthetic data

Rare break, contamination, wrinkle and formation-upset variants generated and always validated against real mill events before promotion.

cuOpt

Optimisation

Grade-change sequencing, dryer energy allocation, machine-speed balancing and maintenance windows under production and energy constraints.

Developers

Define an agent, bound it, run it

The Pulpum SDK is typed Python. Tools are declared with schemas and limits; the policy engine enforces them at call time — not in a review meeting.

What you get

  • Typed tool definitions with unit-aware ranges and rate limits
  • Deterministic replay of any historical run against a new model
  • Local twin harness so a recipe is simulated before it is shipped
  • Autonomy policy as code, versioned and reviewed like any other change

Read the docs Developer guide

pm4_dryer_agent.py
# Bound the dryer agent to six steam groups on PM4.
from pulpum import Agent, Tool, Limit, Autonomy

steam = Tool(
    name="dcs.steam_schedule",
    tags=["PM4.DRY.G1..G6.PRESS_SP"],
    limits=[Limit(max_step="0.15 bar", per="30s")],
)

dryer = Agent(
    id="agent.dry_coat",
    goal="reel moisture 7.4% +/-0.5, min steam",
    tools=[steam, Tool("qcs.read_moisture", read_only=True)],
    # bounded writes; humans still gate ramps
    autonomy=Autonomy.L3,
    # simulate on the twin before every write
    verify="twin",
)

run = dryer.start(machine="PM4", grade="TL-110")
for step in run.stream():
    print(step.name, step.status, step.duration)
CLI

Start a run from anywhere

The same run engine, the same policy checks, the same audit trail — from the terminal, the HMI or the SDK.

pulpum · cli
$ pulpum run "grade change PM4 to TL-110" --autonomy L3

→ plan composed          10 steps · 1 approval gate
→ twin.simulate          48 candidates · best #31 · risk 0.07
→ policy.evaluate        9 writes permitted · 1 held for human
→ executing              stock.refine ... ok   2m10s
→ executing              wetend.dose .... ok   1m26s
→ executing              form.headbox ... ok   1m05s
→ executing              dry.steam ...... ok   3m18s
! approval required      speed_ramp 1180 → 1245 m/min
→ approved               J. Okonkwo · machine tender · 04:57:12
→ run complete           11m42s · off-spec 6.2 t · breaks 0

$ pulpum runs show run_8f21c4 --format genealogy
Pricing

Priced per machine, per mill, per group

Land on one workflow with a measurable baseline. Expand by machine, module and autonomy level. Outcome components available on broke, breaks and energy.

Billing period
Machine $16,000 per paper machine / month · billed monthly

Wet-end, forming and drying control or web inspection for a single machine. For mills validating ROI on the wedge.

  • One machine, one agent module
  • Mill-edge inference node included
  • QCS + DCS read, guarded write
  • Run log, audit trail, reel genealogy
  • Business-hours support
Start a pilot
Enterprise Custom land $700k – $9M ACV

Multi-site groups standardising on Pulpum, with custom grade, furnish and tolerance models.

  • Multi-site fleet management
  • Custom grade / furnish / tolerance models
  • Mill edge fleet with air-gapped option
  • Group autonomy policy and approval chains
  • SLAs, SSO/SCIM, dedicated engineer
Contact us
From the control room

What machine tenders say

Autonomy earns trust one shift at a time. These are design-partner quotes from pilot deployments [ASPIRATIONAL].

"The first thing that convinced the crew wasn't the control — it was the log. You can scroll back and see exactly why it dropped the nip. Nobody argues with a timestamp."

Machine tender · PM4 · Nordkraft Mills

"We had two people who could do a clean 135-to-110 transition. One retired in March. The twin now does the sequencing and the second one supervises it."

Production manager · Aurora Board

"Break prediction was the wedge. Ninety seconds of warning is the difference between a nip trim and four hours of threading."

Process engineer · Ternvik Paper
Integrations

It speaks mill, not cloud

Pulpum reads and writes through the systems already on the floor. No rip-and-replace, no parallel historian, no new HMI to learn.

QCS

Valmet IQ, ABB 800xA QCS, Honeywell Experion MX

Profiles, scans, lab results

DCS

ABB 800xA, Valmet DNA, Honeywell Experion, Siemens PCS 7

Setpoint reads and guarded writes

Web inspection

WIS/WMS line-scan, IR and transmission cameras

Frames, defect maps, break replays

Mill MES

SAP PP/QM, ABB cpmPlus, custom historians

Orders, grades, reel genealogy

Historian

OSIsoft PI, Aspen IP.21, InfluxDB

Time-series backfill and replay

Robotics

NVIDIA Isaac, winder and wrapper PLCs

Reel, roll and clamp-truck motion

Identity

Azure AD, Okta, on-prem LDAP

SSO, RBAC, named approvers

Edge

NVIDIA Jetson Orin, IGX, on-prem GPU

Sub-100 ms inference at the machine

See all integrations

Guardrails

An agent that can move a nip needs a leash

Pulpum writes to production equipment. Every capability is scoped, every write is policy-checked, and every action is written to an append-only audit log the mill owns.

  • Bounded action space. Each agent can only write to an explicit tag allow-list, inside per-tag rate and magnitude limits.
  • Policy engine before every write. Autonomy level, shift, grade, interlock state and operator presence are all evaluated before a setpoint moves.
  • Human-in-the-loop gates. Anything above the site threshold — speed ramps, grade releases, safety-adjacent moves — waits for a named approver.
  • Immutable audit log. Append-only, hash-chained, exportable, and retained on the mill's own storage.
  • Hard fallback. Loss of the edge node, the network or the model returns control to the DCS's last known-good state within one scan cycle.
  • Tenant and IP isolation. Furnish recipes, grade models and defect libraries never cross a customer boundary. On-prem deployment available.

Compliance posture

Compliance and certification status
StandardScopeStatus
SOC 2 Type IICloud control plane RUNNING In progress [ASPIRATIONAL]
ISO 27001Company-wide ISMS QUEUED Planned [ASPIRATIONAL]
IEC 62443Mill-edge OT security RUNNING Design-aligned
GDPROperator data SUCCEEDED Compliant
ISO 9001 / FSCQuality + chain of custody records SUCCEEDED Supported

Read the security overview

Enterprise

Standardise autonomy across the group

One policy model, one audit trail, one benchmark across every machine in every mill — with the grade and furnish models kept private to each site.

Talk to sales Enterprise details

  • SSO, SCIM and role-based access down to the tag level
  • Group-wide autonomy policy with per-site override and approval chains
  • Cross-mill benchmarking on broke, breaks, steam and first-pass quality
  • VPC, on-prem and fully air-gapped mill-edge deployment options
  • 99.5% control-plane SLA; edge autonomy survives control-plane loss
  • Dedicated deployment engineer and quarterly model review per site
FAQ

Straight answers

The questions mill managers and process engineers actually ask in the first meeting.

Yes, but only within an explicit tag allow-list with per-tag rate and magnitude limits, and only at the autonomy level your site has set. Level 1 is advisory-only: Pulpum recommends and a human enters everything. Most mills spend their first weeks there before enabling supervised writes.

Get started

Bring autonomy to your machine

Start with one paper machine and one measurable baseline. A 90-day mill-edge pilot on break prediction, drying energy or moisture profile shows the number before you commit further.