Web-Native Process Simulation Software

Agent-driven engineering for chemical process design and optimisation.

Manifesto

The future of engineering simulation software

The Vision

The future of engineering simulation (we believe) will be AI-powered.

Just as AI-powered IDEs like Cursor have transformed software engineering productivity, AI will transform how engineers design, simulate and validate their designs.

When we say AI, we're referring to LLM agents, as opposed to traditional machine learning models; ML methods won't replace the core numerical solvers as engineers require robust, predictable, and repeatable results.

Instead, AI will be used for automating configuration of simulations, repetitive design tasks, and enabling what is being called agent-driven engineering.

The Problem

Engineering work involves many different data formats including proprietary simulation formats from ASPEN gPROMS and UniSim. These are binary files that cannot be fed into state-of-the-art LLMs.

Our Contrarian Opinion

We shouldn't train LLMs to understand these data formats, we should instead serialize the simulation data into a natural language text format (such as JSON) that LLMs can inherently understand, edit, and reason about.

The Proof-of-Concept

ProcessX is a proof-of-concept that explores this idea - an AI copilot for ASPEN, built as a web-native steady-state process simulator.

This prototype includes basic unit operations — mixers, splitters, pumps, valves, and heat exchangers — using CoolProp for thermodynamic calculations.

Simulation data is serialized to JSON using the C++ library Cereal, creating a text-based representation of the entire flowsheet state that LLMs can understand and reason about.

Below is a screenshot of the ProcessX interface, showing how engineers can interact with the AI copilot to build and configure process flowsheets:

ProcessX interface showing AI copilot and flowsheet editor

The Format

Here's what one of our example simulations looks like. This snippet from simple_heat_exchanger_test.json shows how a heat exchanger unit operation is represented:

Example: simple_heat_exchanger_test.json
{
  "Flowsheet_SimpleHeatExchanger_Registry": {
    "Registry_Slots": [{
      "Slot_Value": {
        "Unit_Operation_Name": "SimpleHeatExchanger-1",
        "SimpleHeatExchanger_Inlet": {
          "Handle_Index": 0,
          "Handle_Generation": 1
        },
        "SimpleHeatExchanger_Outlet": {
          "Handle_Index": 1,
          "Handle_Generation": 1
        },
        "SimpleHeatExchanger_Pressure_Drop": {
          "Variable_Name": "dP",
          "Variable_Value": 10000.0,
          "Variable_Is_Fixed": true
        },
        "SimpleHeatExchanger_Heat_Duty": {
          "Variable_Name": "Q",
          "Variable_Value": 100000.0,
          "Variable_Is_Fixed": true
        }
      }
    }]
  }
}

The Results

We trained a language model on just 13 examples in this JSON format.

The results demonstrated that the model could create new flowsheets from scratch, troubleshoot errors, and provide meaningful assistance based on the actual simulation state.

We proved to ourselves that text-based serialization can automate process set-up, potentially removing the need for drag-and-drop graphical user interfaces.

The most promising idea would to pair process set-up with traditional parameter optimisation techniques like genetic algorithms or Bayesian optimisation.

This would simulteneously handle parameter, and process configuration optimisation which currently requires manual oversight and expertise.

Conclusion

This is not a complete solution, but rather a demonstration of an idea.

ProcessX serves as a proof-of-concept for how any simulation could provide context to language models by adopting text-based serialization, offering a glimpse of what the future of process engineering simulation software will look like.

If you want to try it for yourself, request access to ProcessX below.