PathView is an interactive, browser-based graphical interface for the system simulation framework PathSim [@Rother2025]. It enables users to build models quickly in an intuitive, visual environment. Built with ReactFlow [@reactflow], PathView allows users to:
- Drag and drop simulation nodes onto a canvas.
- Connect nodes to define system structure.
- Create and manage subsystems for hierarchical modelling.
- Configure event detection and advanced simulation options.
- Configure solver parameters
- Easily extend functionality through a modular architecture.
In addition to mirroring nearly all of PathSim's capabilities, PathView uses Jinja2 [@jinja] templates to generate fully executable Python scripts from graphical models, enabling seamless transition between GUI-based and code-based workflows.
PathSim is a powerful and flexible simulation framework for modelling complex systems. However, building large-scale or intricate models solely through Python scripting can be cumbersome and error-prone, particularly for new users or for projects that benefit from visual inspection of system layout. This is for example the case for nuclear fusion fuel cycle applications [@meschini_modeling_2023; @meschini_impact_2025].
Many established simulation platforms, such as MathWorks Simulink [@simulink] or Aspen Plus [@aspen], provide graphical user interfaces to enhance usability, model comprehension, and collaboration. Until now, such a visual modelling environment was missing for PathSim.
PathView fills this gap by providing a modern, interactive, and extensible GUI, reducing the barrier to entry for new users and improving productivity for experienced modellers.
PathView includes several pre-built example graphs in the example_graphs directory that demonstrate different functionalities:
harmonic_oscillator.json- Simple oscillator simulation (see \autoref{fig:example} and \autoref{fig:example_results})pid.json- PID controller examplelinear_feedback.json- Linear feedback systempendulum.json- Pendulum examplespectrum.json- Spectral analysis examplebouncing_ball.json- Example showcasing event detectionthermostat.json- Thermostat demo with event detectionstick_slip.json- Example showcasing the use of theSwitchblock
We also provide an example demonstrating the integration of external tools infestim_two_walls.json: a two-wall hydrogen diffusion model integrating the FESTIM hydrogen tranport code [@delaporte-mathurin_festim_2024].
- Node creation and connection: Choose from 60+ different simulation node types, configure parameters, and connect them visually.
- Integrated simulation: Run
PathSimsimulations directly from the GUI. - Interactive visualisation: Embedded
plotlyplots for interactive data exploration. Export results data to CSV or export graph to HTML. - Advanced global variables: Define global variables, including via an integrated Python editor for complex expressions.
- Flexible I/O: Save and load models in JSON format; export to Python scripts for advanced or automated use.
- Modular and extensible: Designed for easy integration of new node types and custom functionality.
- Custom styling: Change node colours for improved readability.


