A single-file HTML app for tracking thermodynamic simulation runs across dozens of samples — and finally seeing the patterns I'd been missing in spreadsheets.
The rhyolite-MELTS Tracker is a small, single-file HTML app that keeps every part of a simulation campaign in one place: the sample whole-rock compositions, the simulation setups ("simsets"), the per-run extraction thresholds, the pressure-calc results, and a journal for the inevitable "why did this run go sideways" notes.
It started because I had forty tabs of a spreadsheet open and knew I was about to lose track of which run corresponded to which sample.
The tracker has seven views, each a tab:
This isn't theoretical — the live database has real campaign data:
The trick was deciding the data model first and the UI second. Every sample has a stable id; every simset references a sample id; every run references a simset. Nothing depends on file names or sheet positions.
Once everything has a stable id, you can lose any one view and rebuild it. Spreadsheets don't have that property.
The whole tracker is one HTML file with embedded CSS and JS, and it reads/writes a single JSON document. It runs offline. I can email it to a collaborator. I can diff it in git. It is, deliberately, the smallest useful thing.
A small importer to pull rhyolite-MELTS output text directly into the runs table — right now the fields are entered by hand, which is actually fine for the cadence of this project but would scale poorly with more samples.
I'm also thinking about a thin Tauri wrapper, but only if I can keep the "email a single file" property intact.