You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
title: 'PathView: A Graphical User Interface for system simulation'
2
+
title: 'PathView: A Graphical User Interface for System Simulation'
3
3
tags:
4
4
- Python
5
5
- block diagram
6
6
- system modelling
7
7
authors:
8
8
- name: Remi Delaporte-Mathurin
9
-
orcid: 0000-0000-0000-0000
9
+
orcid: 0000-0003-1064-8882
10
10
corresponding: true # (This is how to denote the corresponding author)
11
11
affiliation: 1# (Multiple affiliations must be quoted)
12
12
- name: Tasnim Zulfiqar
13
13
affiliation: 1
14
14
- name: James Dark
15
+
orcid: 0000-0002-0456-7210
15
16
affiliation: 1
16
17
affiliations:
17
18
- name: Plasma Science and Fusion Center, Massachusetts Institute of Technology, Cambridge, 02139, USA
@@ -24,81 +25,39 @@ bibliography: paper.bib
24
25
25
26
# Summary
26
27
27
-
The forces on stars, galaxies, and dark matter under external gravitational
28
-
fields lead to the dynamical evolution of structures in the universe. The orbits
29
-
of these bodies are therefore key to understanding the formation, history, and
30
-
future state of galaxies. The field of "galactic dynamics," which aims to model
31
-
the gravitating components of galaxies to study their structure and evolution,
32
-
is now well-established, commonly taught, and frequently used in astronomy.
33
-
Aside from toy problems and demonstrations, the majority of problems require
34
-
efficient numerical tools, many of which require the same base code (e.g., for
35
-
performing numerical orbit integration).
28
+
`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:
36
29
37
-
# Statement of need
38
-
39
-
`Gala` is an Astropy-affiliated Python package for galactic dynamics. Python
40
-
enables wrapping low-level languages (e.g., C) for speed without losing
41
-
flexibility or ease-of-use in the user-interface. The API for `Gala` was
42
-
designed to provide a class-based and user-friendly interface to fast (C or
43
-
Cython-optimized) implementations of common operations such as gravitational
44
-
potential and force evaluation, orbit integration, dynamical transformations,
45
-
and chaos indicators for nonlinear dynamics. `Gala` also relies heavily on and
46
-
interfaces well with the implementations of physical units and astronomical
47
-
coordinate systems in the `Astropy` package [@astropy] (`astropy.units` and
48
-
`astropy.coordinates`).
49
-
50
-
`Gala` was designed to be used by both astronomical researchers and by
51
-
students in courses on gravitational dynamics or astronomy. It has already been
52
-
used in a number of scientific publications [@Pearson:2017] and has also been
53
-
used in graduate courses on Galactic dynamics to, e.g., provide interactive
54
-
visualizations of textbook material [@Binney:2008]. The combination of speed,
55
-
design, and support for Astropy functionality in `Gala` will enable exciting
56
-
scientific explorations of forthcoming data releases from the *Gaia* mission
57
-
[@gaia] by students and experts alike.
58
-
59
-
# Mathematics
30
+
- Drag and drop simulation nodes onto a canvas.
31
+
- Connect nodes to define system structure.
32
+
- Create and manage subsystems for hierarchical modelling.
33
+
- Configure event detection and advanced simulation options.
34
+
- Configure solver parameters
35
+
- Easily extend functionality through a modular architecture.
60
36
61
-
Single dollars ($) are required for inline mathematics e.g. $f(x) = e^{\pi/x}$
37
+
In addition to mirroring nearly all of `PathSim`'s capabilities, `PathView` uses `Jinja2` 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.
42
+
Many established simulation platforms, such as MathWorks Simulink, Modelica, or Aspen Plus, provide graphical user interfaces to enhance usability, model comprehension, and collaboration. Until now, such a visual modelling environment was missing for `PathSim`.
43
+
`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.
81
44
82
-
If you want to cite a software repository URL (e.g. something on GitHub without a preferred
83
-
citation) then you can do it with the example BibTeX entry below for @fidgit.
45
+
# Example
84
46
85
-
For a quick reference, the following citation commands can be used:
86
-
-`@author:2001` -> "Author et al. (2001)"
87
-
-`[@author:2001]` -> "(Author et al., 2001)"
88
-
-`[@author1:2001; @author2:2001]` -> "(Author1 et al., 2001; Author2 et al., 2002)"
47
+
A demonstration video is provided in the online documentation.
89
48
90
-
# Figures
49
+
{ width=80% }
91
50
92
-
Figures can be included like this:
93
-

94
-
and referenced from text using \autoref{fig:example}.
51
+
# Features
95
52
96
-
Figure sizes can be customized by adding an optional second parameter:
97
-
{ width=20% }
98
53
99
-
# Acknowledgements
54
+
-**Node creation and connection**: Choose from 58 different simulation node types, configure parameters, and connect them visually.
55
+
-**Custom styling**: Change node colours for improved readability.
56
+
-**Integrated simulation**: Run PathSim simulations directly from the GUI.
57
+
-**Interactive visualisation**: Embedded Plotly plots for real-time data exploration.
58
+
-**Advanced global variables**: Define global variables, including via an integrated Python editor for complex expressions.
59
+
-**Flexible I/O**: Save and load models in JSON format; export to Python scripts for advanced or automated use.
60
+
-**Modular and extensible**: Designed for easy integration of new node types and custom functionality.
100
61
101
-
We acknowledge contributions from Brigitta Sipocz, Syrtis Major, and Semyeong
102
-
Oh, and support from Kathryn Johnston during the genesis of this project.
0 commit comments