Platform / AcaysiaRT

Simulation runtime

AcaysiaRT

A high-throughput GPU simulation runtime built for ensemble prediction.

It serves the control, optimization and learning workflows that single-trajectory solvers cannot support. One templated CUDA core serves every registered process model, from a pH-CSTR to a 168-state chromatography column, each one bit-exact parity-tested against a PyTorch reference.

Schematic — MPPI samples N rollouts over horizon H, then softmax-weights them by cost
Process models
127
Registered in one templated CUDA core
Throughput
6.1B
Reactor-steps/sec on one RTX 5080
Against reference
182×
Faster than the PyTorch reference

Why it exists

MPPI · 100–200 step horizon

Thousands of futures per tick.

MPPI needs thousands of parallel rollouts over a 100–200 step horizon, with consistent, deterministic stepping.

That requirement is the reason this runtime exists, and it is what makes path-integral control practical for process plants.

Benchmark · 10,000 rollouts × H=100

Measured, with conditions attached.

Every number is a reproducible benchmark from the repository, not a projection. A throughput figure without its batch size, horizon and GPU is not a claim.

PyTorch (CPU), Reference / debug only 29.85 ms
CUDA, RTX 5080 · sm_120 0.164 ms
PyTorch (CPU), Reference / debug only ~33 M
CUDA, RTX 5080 · sm_120 ~6.1 B
Source: AcaysiaRT repository benchmark · one RTX 5080 (Blackwell sm_120) · linear scales · the CUDA engine is the only production backend; PyTorch exists for reference correctness checking
Multi-GPU benchmark2× RTX 5080

Multi-GPU · N=200,000 × H=100

Data-parallel batch sharding.

Reactors are independent, so a batch splits across GPUs and results stay bit-exact against the single-GPU path.

1 GPU, All N 3.6 B · 5.6 ms
2 GPU, Shards resident 10 B · 2.0 ms
2 GPU, Gathered to one device 0.9 B · 23 ms

The trajectory tensor is large, so gathering it back to one device dominates the kernel. Multi-GPU pays off when the batch exceeds one card's VRAM, or when each GPU keeps its shard resident across many ticks — per-GPU MPPI or training — rather than gathering every call.

Measured on 2× RTX 5080 · N=200,000 × H=100 · a 646 MB trajectory · shards resident run ~2.8× one GPU · linear scale

Model registry

Templated per model · one core

One core, every reactor archetype.

The engine and MPPI kernels are templated and instantiated per model, so the same high-performance core serves all 127.

A new model is a registry drop-in: it inherits the engine and model-generic MPPI without touching dispatch, and performance work done once benefits every model in the registry.

MPPI-controllable
126 of 127
The exception is the pipe model, a transfer-line connector.
Reaction networks
45
Curated processes running on the shared reaction-network engine.
Largest state
168
State dimension of the largest model in the registry.
Wireable
43
Models carry the stream contract that wires them into a Rete plant.

Catalog by domain

From the classical core to heavy industry.

  • Reactors & separations

    The classical core

    pH-CSTR, reactive CSTR, PFR, batch and semi-batch. Binary and multi-feed distillation, dividing-wall columns, absorbers, strippers, extractors, decanters, flash drums, evaporators, crystallizers.

  • Minerals & pyrometallurgy

    Heavy industry

    Leach tanks, autoclave pressure-oxidation, thickeners, grinding mills, flotation cells, hydrocyclones, screens, filter presses, EAF and BOF steelmaking on JANAF thermodynamics.

  • Energy transition

    Electrochemical & capture

    SOEC electrolyzers, vanadium redox-flow batteries, solid-sorbent direct-air capture on a temperature/vacuum swing, fired heaters, boilers, compressors, expanders, FCC regenerators.

  • Bio, water & food

    Living and regulated processes

    Immobilized-enzyme packed beds, penicillin fed-batch fermentation, photobioreactors, ASM2d biological nutrient removal, UV advanced-oxidation, UHT pasteurization.

Representative modelsEight of 127

Representative models

Eight of 127

Representative AcaysiaRT process models, what each one is, and the output its controller tracks
ModelWhat it isControlled output
pH-CSTR Reference modelNeutralization with carbonate and weak acid/base equilibriapH
Distillation columnBinary constant-molar-overflow, tray-by-tray (Skogestad “Column A”)Distillate purity
Reaction-network CSTRData-defined mass-action reactor, fixed-dim, any network — hosts 45 curated processesProduct concentration
CrystallizerCooling MSMPR via the method of momentsTemperature → crystal size
Autoclave POx leachPressure-oxidation hydrometallurgical leachMetal extraction
Dividing-wall column82-state thermally-coupled distillationSide-draw purity
Penicillin fermenterBajpai–Reuss fed-batch antibiotic fermentationProduct titer
SOEC electrolyzerSolid-oxide electrolysis cellHydrogen rate

Model-generic MPPI

One CUDA controller · every registered model

No per-model controller code.

One sampling-based CUDA controller works with every registered model.

Its cost is data-driven over a model's observable vector, so a model picks what it tracks by setting weights.

Cost layout · per observable output

Schematic

  1. Observable vectory(x)
  2. Per-output targety*
  3. Weightw
  4. Bounds[ymin, ymax]
Target, weight and bounds are set per output. A model that should track pH weights pH; a column weights distillate purity. The controller itself does not change.
  • Closed loop

    Convergence-tested per model.

    Every MPPI-controllable model ships a closed-loop convergence test, not just a smoke test — the controller has to actually drive that model's tracked output to target in CI.

  • Biasing

    Surrogate corrections, cleanly bounded.

    An entry-side transform shapes a learned surrogate's predicted corrections into a model's declared correction slots — 117 of the 127 models have them. It is deliberately standalone, enforced by test.

  • Plants

    Whole-flowsheet control.

    Single units compose into plants through the Rete layer, where one MPPI sample becomes one whole-plant rollout — recycle loops included.

    Rete

Rete

The flowsheet layer of AcaysiaRT

Whole plants, not just units.

A plant is not a pile of unit operations — it is a loop.

Feed · reactor · separation · recycle

Marched forward at once

Product streams get fed back into the units that made them, and every recycle changes the duty of everything upstream.

Rete is the layer that wires AcaysiaRT models into a full flowsheet and marches the whole thing forward at once, recycle included.

Rete flowsheet with 70% recycle Flowsheet schematic: fresh feed enters a reactor and flows to a decanter, which splits into a product draw of 30 percent and a recycle stream of 70 percent returning to the reactor inlet. Fresh feed Reactor AcaysiaRT model Decanter AcaysiaRT model Product · 30% Recycle · 70% to reactor inlet Rete flowsheet with 70% recycle Flowsheet schematic: fresh feed enters a reactor and flows to a decanter, which splits into a product draw of 30 percent and a recycle stream of 70 percent returning to the reactor inlet. Fresh feed Reactor AcaysiaRT model Decanter AcaysiaRT model Product · 30% Recycle · 70%

Recycle changes the answer

Conversion with and without the 70 percent recycle loop
MeasureWithout recycle70% recycle
Per-pass conversion0.46230.3068
Overall, on fresh feed0.46230.5961

The two numbers move in opposite directions — each trip through the reactor does less work, while the plant converts more of its feed. That divergence is the textbook recycle result, and exactly what a unit-by-unit model cannot tell you: the number that matters is the one the loop produces.

Balances cross-checked against DWSIM

What running the whole plant buysFour properties
  • Control

    Tune the plant, not the loop.

    Plant-wide MPPI treats one control sample as one whole-plant rollout, so the controller optimizes across units instead of fighting itself — the classic failure when each loop is tuned in isolation and the recycle carries the disagreement around.

  • Scale · ~22× fused

    Dozens of units, thousands of futures.

    Plants of 50-plus mixed unit types march on the GPU, batched over thousands of samples at once. Fusing a plant into a single kernel is worth roughly 22× over the same work run unit-by-unit on the same card.

  • Portable

    A plant is a document.

    Topology, feeds, connections and targets live in a declarative definition you can save, diff and hand to someone else. Configuration is an artifact, not a state buried in a session.

  • Settling

    Answers about dynamics.

    It marches in time rather than solving for a steady state, so it reports when a recycle loop settles and how it got there — startup, disturbance rejection, and the transients a steady-state flowsheet package never shows you.

Tier · outcome · health — orthogonal

Tiers T0–T5

Validation provenance.

Validation runs on a T0–T5 ladder where tier, numerical outcome and health are orthogonal.

A strong oracle does not lose its tier when it exposes a model gap — which is exactly what keeps the incentives honest.

Independent evidence · T0–T2
92/127
Models at the top three tiers — 72% of the roster
Validators
264
Logical validators over 200 cached runs
Test suite
2,650
Tests across all 127 models; CUDA tests hardware-gated

The ladder

Tier says what the evidence is, not whether it passed.

T0–T2 · independent evidence · 92 models

  1. T0 Running-deployment validation Tied to a real deployment and its committed operating envelope.
  2. T1 Full-model oracle An independent reference covering primary behavior, regimes and outputs.
  3. T2 Partial independent oracle Measurements, standards or an authoritative external tool on a named subset.
  4. T3 Local scientific reference A good validator-authored analytical model, not externally grounded.
  5. T4 Cross-implementation parity Catches numerical and indexing defects; cannot establish that the physics is right.
  6. T5 Supporting assurance Calibration replay, invariants, regression.
Oracles, calibration + toleranceEvidence

Oracles

Best-in-class, per domain.

A deliberate collage rather than one tool.

Cantera
Gas and combustion
PHREEQC
Aqueous and hydrometallurgy
JANAF
Pyrometallurgy
CoolProp
Thermophysical properties
ASM2d/BSM · Bajpai–Reuss · HCH-1
Published benchmarks for biological units

Calibration

Blind, fit, or held-out.

Every validator declares how it was calibrated. That is the structural defense against the classic failure mode of fitting a model to its own oracle and then citing the agreement as evidence.

Test suite

Per-model CUDA↔PyTorch parity, physics invariants and MPPI closed-loop convergence for all 127 models; plus MPPI cost-layout contracts, biasing slot writes and multi-GPU sharding.

Distance to tolerance

Reported as a multiple of the declared tolerance.

0.58× means 42% headroom remains; 1.83× means 83% over. A gap never demotes a tier — it is the result the validator was built to find.

Technical specifications

CUDA · PyTorch bindings

Tensors in, tensors out.

Pick a model by name; the registry handles dispatch.

Backend policy
CUDA is production. PyTorch exists for distribution and reference correctness checking — it is not a second execution engine, and selecting it emits an explicit warning.
Kernels
One core, instantiated per model. Each model plugs into the same templated CUDA core and the same controller, so a new one arrives without a bespoke code path to maintain.
API
Step, roll out, observe. All three dispatch through the registry, with a structure-of-arrays fast path for MPPI hot loops. Bindings keep tensors zero-copy on device.
State design
Conserved totals, projected equilibrium. Speciation is never carried in state. The step marches conserved totals and clamps to physical bounds; observation solves equilibrium on demand — a log-domain Newton iteration for pH — and applies sensor bias at the output.

pH-CSTR · as the runtime sees it

Schematic

State · eight conserved quantities

  1. Temperature
  2. Volume
  3. Dissolved inorganic carbon
  4. Alkalinity
  5. Weak-acid total
  6. Weak-base total
  7. pH sensor bias
  8. Heat-transfer scale

Observe · on demand

pHSpeciation

The state never carries pH. The step marches the conserved totals; pH and speciation are solved from them on demand, with the sensor bias applied at the output.

The Acaysia Control System

PID fallback < 100 ms

Ready to accelerate your control systems?

Talk to us about how AcaysiaRT can power your MPPI control and simulation workloads.

Book a discovery call