MESMER XML GUI (MXG) Development
Project Overview
Develop a new Graphical User Interface (GUI) for the Master Equation Solver for Multi-Energy Well Reactions (MESMER) - sophisticated research software for simulating gas reaction kinetics. The GUI was to be platform agnostic and based on standard off the shelf technology. The initial suggestion was to explore an HTML/JavaScript/TypeScript approach.
Description
The project was undertaken in two phases in 2024: Phase 1 was 30 Full-Time Equivallent (FTE) days from the end of January to the end of March; Phase 2 was 15 FTE days around the prestigious International Gas Kinetics Symposium (GK24) in July.
Phase 1
The aim was to develop a prototype GUI based on TypeScript to present MESMER data similarly to an existing GUI based on EXSLT (a technology for which development had been discontinued for several years and was regarded as a dead end). Additionally the GUI was to provide users with a way of generating new MESMER data files based on an original file. The resulting prototype was named MXG. It would read an existing MESMER input file, store a representation of this, and allow users to modify the internal representation - and export it in the MESMER XML format. Prototype development focused on features to save MESMER users significant amounts of time. A typical workflow for MESMER involved users editing MESMER XML data using a text editor which could be slow and prone to error. Ways of adding data from spreadsheets and ensuring values were sensible were implemented.
Phase 2
The MXG prototype was refactored to improve the code structure and make it easier for development to be done more collaboratively. It was tested more thoroughly on different MESMER data and the GUI was evolved to allow users to use it without an existing MESMER data file. A MESMER input data file could be created from scratch using the version of MXG demonstrated at the poster session of GK24. Feedback from delegates at GK24 was generally positive. User documentation was developed and added to the MESMER manual and a Version 1.0 release of MXG was scheduled to coincide with a new release of MESMER in November 2024.
Project team
Patricia managed the project. Nick provided technical guidance and code review in Phase 1. Andy developed the prototype, demonstrated progress at GK24 and helped deliver MXG as part of MESMER.
MESMER development is led Struan Robertson of Dassault Systèmes. This project was coordinated by professor Paul Seakins. Mark Blitz and Robin Shannon provided support, guidance and helped direct and focus development.
Technical details
MXG is deployed on GitHub Pages from where it is installable as a Progressive Web App (PWA) using the latest versions of FireFox, Chrome, Safari and Edge. A PWA is a type of application software delivered via the Web and built using common Web technologies including HTML, CSS, JavaScript, and WebAssembly.
MXG is built, packaged and deployed using Node and Parcel. The main source code is TypeScript. There are also JSON configuration files and a Web Worker JavaScript file.
MXG uses 3DMol.js under a BSD-3-Clause licence to visualise molecules with coordinates.
MXG uses Big.js under an MIT licence to handle decimal numbers.