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.
- 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.
The runtime underneath
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.
Multi-GPU benchmark
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.
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.
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.
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 models
Representative models
Eight of 127
| Model | What it is | Controlled output |
|---|---|---|
| pH-CSTR Reference model | Neutralization with carbonate and weak acid/base equilibria | pH |
| Distillation column | Binary constant-molar-overflow, tray-by-tray (Skogestad “Column A”) | Distillate purity |
| Reaction-network CSTR | Data-defined mass-action reactor, fixed-dim, any network — hosts 45 curated processes | Product concentration |
| Crystallizer | Cooling MSMPR via the method of moments | Temperature → crystal size |
| Autoclave POx leach | Pressure-oxidation hydrometallurgical leach | Metal extraction |
| Dividing-wall column | 82-state thermally-coupled distillation | Side-draw purity |
| Penicillin fermenter | Bajpai–Reuss fed-batch antibiotic fermentation | Product titer |
| SOEC electrolyzer | Solid-oxide electrolysis cell | Hydrogen 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
- Observable vectory(x)
- Per-output targety*
- Weightw
- Bounds[ymin, ymax]
-
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.
Recycle changes the answer
| Measure | Without recycle | 70% recycle |
|---|---|---|
| Per-pass conversion | 0.4623 | 0.3068 |
| Overall, on fresh feed | 0.4623 | 0.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 buys
-
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
- T0 Running-deployment validation Tied to a real deployment and its committed operating envelope.
- T1 Full-model oracle An independent reference covering primary behavior, regimes and outputs.
- T2 Partial independent oracle Measurements, standards or an authoritative external tool on a named subset.
- T3 Local scientific reference A good validator-authored analytical model, not externally grounded.
- T4 Cross-implementation parity Catches numerical and indexing defects; cannot establish that the physics is right.
- T5 Supporting assurance Calibration replay, invariants, regression.
Oracles, calibration + tolerance
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.
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
- Temperature
- Volume
- Dissolved inorganic carbon
- Alkalinity
- Weak-acid total
- Weak-base total
- pH sensor bias
- Heat-transfer scale
Observe · on demand
pHSpeciation
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