In active use Personal product 2026–present

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.

  • Python
  • Streamlit
  • pandas
  • NumPy
  • SciPy
  • scikit-learn
  • Plotly
  • trimesh
  • pytest
Concept illustration — no private project data shown.

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

  1. Built a format-aware import and validation layer for spreadsheet and specialist morphology exports.
  2. Implemented scaled and rigid Procrustes alignment, quality control and an explicit exclusions workflow.
  3. Organised thirteen analysis modules behind a shared registry, including PCA, allometry, group tests, PLS, symmetry, measurement error and mesh warping.
  4. Kept the numerical core separate from Streamlit and generated a reproducible workbook alongside interactive views.
  5. 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.

Next

Planned follow-through

  • Package the application for simpler installation outside the development machine.
  • Prepare a synthetic, rights-cleared demonstration dataset and interface walkthrough.
  • Document the relationship between the current desktop app and the earlier Basic-GMM prototype.