Skip to content

Commit 4b2def6

Browse files
sections
1 parent bc37260 commit 4b2def6

2 files changed

Lines changed: 49 additions & 67 deletions

File tree

paper.bib

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
1+
@article{Rother2025,
2+
doi = {10.21105/joss.08158},
3+
url = {https://doi.org/10.21105/joss.08158},
4+
year = {2025},
5+
publisher = {The Open Journal},
6+
volume = {10},
7+
number = {109},
8+
pages = {8158},
9+
author = {Rother, Milan},
10+
title = {PathSim - A System Simulation Framework},
11+
journal = {Journal of Open Source Software}
12+
}
13+
14+
@misc{reactflow,
15+
author = {Moritz Klack, Peter Kogo, et al.},
16+
title = {React Flow - Powerful open source libraries for building node-based UIs with React},
17+
year = {2025},
18+
publisher = {GitHub},
19+
journal = {GitHub repository},
20+
url = {https://github.com/xyflow/xyflow}
21+
}
22+
23+
124
@article{Pearson:2017,
225
url = {http://adsabs.harvard.edu/abs/2017arXiv170304627P},
326
Archiveprefix = {arXiv},

paper.md

Lines changed: 26 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
---
2-
title: 'PathView: A Graphical User Interface for system simulation'
2+
title: 'PathView: A Graphical User Interface for System Simulation'
33
tags:
44
- Python
55
- block diagram
66
- system modelling
77
authors:
88
- name: Remi Delaporte-Mathurin
9-
orcid: 0000-0000-0000-0000
9+
orcid: 0000-0003-1064-8882
1010
corresponding: true # (This is how to denote the corresponding author)
1111
affiliation: 1 # (Multiple affiliations must be quoted)
1212
- name: Tasnim Zulfiqar
1313
affiliation: 1
1414
- name: James Dark
15+
orcid: 0000-0002-0456-7210
1516
affiliation: 1
1617
affiliations:
1718
- name: Plasma Science and Fusion Center, Massachusetts Institute of Technology, Cambridge, 02139, USA
@@ -24,81 +25,39 @@ bibliography: paper.bib
2425

2526
# Summary
2627

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:
3629

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.
6036

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.
6238

63-
Double dollars make self-standing equations:
64-
65-
$$\Theta(x) = \left\{\begin{array}{l}
66-
0\textrm{ if } x < 0\cr
67-
1\textrm{ else}
68-
\end{array}\right.$$
69-
70-
You can also use plain \LaTeX for equations
71-
\begin{equation}\label{eq:fourier}
72-
\hat f(\omega) = \int_{-\infty}^{\infty} f(x) e^{i\omega x} dx
73-
\end{equation}
74-
and refer to \autoref{eq:fourier} from text.
75-
76-
# Citations
39+
# Statement of need
7740

78-
Citations to entries in paper.bib should be in
79-
[rMarkdown](http://rmarkdown.rstudio.com/authoring_bibliographies_and_citations.html)
80-
format.
41+
`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.
8144

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
8446

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.
8948

90-
# Figures
49+
![Caption for example figure.\label{fig:example}](example.png){ width=80% }
9150

92-
Figures can be included like this:
93-
![Caption for example figure.\label{fig:example}](figure.png)
94-
and referenced from text using \autoref{fig:example}.
51+
# Features
9552

96-
Figure sizes can be customized by adding an optional second parameter:
97-
![Caption for example figure.](figure.png){ width=20% }
9853

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.
10061

101-
We acknowledge contributions from Brigitta Sipocz, Syrtis Major, and Semyeong
102-
Oh, and support from Kathryn Johnston during the genesis of this project.
10362

10463
# References

0 commit comments

Comments
 (0)