Case study · open source, pre-alpha
From new measurements to a validated property model.
An open-source desktop workbench for thermophysical property research. Import lab data, check it against published measurements, fit and cross-validate models with stated uncertainty, and export journal-ready figures and CoolProp-compatible models, without writing code.
Drag the loupe over the sheet. Three published CF₃I viscosity datasets, 63 points in all. Where two of them overlap near 333 K, PropBench flags a +7.4 % offset. Point positions are drawn, not plotted.
The problem
When a new working fluid is measured for the first time, the path from raw data to a usable model runs through spreadsheets, one-off scripts and closed tools. Disagreements between labs go unnoticed, models are judged on the data they were fitted to, and the uncertainty is rarely stated. PropBench puts the whole study in one reproducible project file.
Spot disagreements before they reach the model
Model-free comparisons within combined expanded uncertainty, Bayesian constant offsets with 95 % intervals, and z-scores against NIST reference models. On published CF₃I viscosity data it flags a +7.4 % offset between two laboratories at 333 K (95 % interval 3.1–11.8 %).
Fit and validate
- ECS, residual-entropy scaling and dilute-gas models, each with a published check value as a test.
- Weighted least squares in relative deviation, multistart, per-dataset scale factors, GUM uncertainty propagation.
- Leave-one-dataset-out, leave-one-state-out, k-fold and bootstrap cross-validation, ranked beside the NIST reference model.
A rule you can’t bend
Before any model is fitted, you state how the best one will be chosen: metric, validation scheme, physics checks. PropBench stores a SHA-256 of that rule and records it in the report, so nobody can pick the winner afterwards.
Architecture
The UI never computes. Hover a station.
Isolation
Third-party plug-ins run in a Wasmtime sandbox, or in the project’s Python environment, with only the permissions declared in their plugin.toml. Packages are signed with minisign. Projects are one SQLite file, saved atomically, with a migration for every schema change.
Correctness
| Check | Published value | Reproduced |
|---|---|---|
| R134a, 300 K, 1 MPa | 1201.53 kg/m³ | reference EoS density |
| CF₃I viscosity, 356.8 K | 168.5169 µPa·s | to 5 × 10⁻⁶ (NISTIR 8209) |
| JCGM 100, example H.1 | 50.000838 mm | k = 2.92 |
Screens

Results: a candidate model ranked by leave-one-state-out AARD, with physics checks and the locked selection rule in the log.

Graph studio with journal size presets.
Next
Signed installers, a package on PyPI, a documentation site, and a software paper with the CF₃I viscosity study as its first case study.