GMM Desktop App
A scientific desktop application that turns a fragmented geometric-morphometrics workflow into one inspectable product. It is the next generation of my earlier Basic-GMM prototype, expanded around the difficult cases that appear in real research data.
01 · Problem
What needed solving
Researchers and students often move between specialist programs, spreadsheets and one-off scripts to prepare landmark data, check quality, run shape analyses and create outputs. Every hand-off adds friction and makes analytical decisions harder to audit.
Years of repeating, explaining and troubleshooting the same analytical steps made the product opportunity clear: preserve the scientific decisions while making the workflow easier to use.
02 · Constraints
The difficult parts
- Support several scientific file formats without silently changing coordinate structure.
- Keep exclusions, transformations and model choices visible to the user.
- Make demanding operations such as thin-plate-spline mesh warping responsive on large surfaces.
- Separate reusable numerical code from the interface so the analysis can be tested independently.
03 · Approach
How the work was structured
- Built a format-aware import and validation layer for spreadsheet and specialist morphology exports.
- Implemented scaled and rigid Procrustes alignment, quality control and an explicit exclusions workflow.
- Organised thirteen analysis modules behind a shared registry, including PCA, allometry, group tests, PLS, symmetry, measurement error and mesh warping.
- Kept the numerical core separate from Streamlit and generated a reproducible workbook alongside interactive views.
- Used real, anonymised working data to test failure modes that synthetic examples did not reveal.
04 · Validation
What can be claimed now
The application has 308 automated tests across its core workflow. Real-data validation caught problems including swapped coordinate columns before they could propagate into analysis.
The current app covers the workflow from import and alignment through exploratory and inferential analysis to export. It replaces a narrower early web prototype with a modular desktop product designed around actual research use.
05 · Learning
What the project clarified
- A scientific interface should expose consequential choices instead of hiding them behind a single run button.
- Real datasets are essential tests: they reveal structural and usability failures that tidy fixtures miss.
- Separating analysis from presentation makes both the software and the scientific claims easier to inspect.