Working prototype · In development

Keep your materials data useful beyond the next handover.

Different instruments. Different files. Missing context. .mtrl is a file format and Python tools that bring measurements, their meaning and their history together, so you can trace a result to its source and reuse it with confidence.

In development: there is no installable release yet, and development repositories are currently private.

What is .mtrl?

.mtrl is a materials data archive format and Python library being developed to help teams share and reuse measurements without losing their context. Each archive keeps data, units, experiment details, source evidence and revision history (its provenance) in one file, so a result stays connected to everything that produced it.

Each archive is a standard, self-contained ZIP container: the raw data, metadata, checkpoints and history inside it stay readable whatever happens to the tooling.

The same format is intended to connect instrument data, analysis and future tools, with integrity checks you can run before using an archive.

Bring data together. Keep the evidence. Build on it.

Standardise

Keep measurements and the details that explain them in one structured format. Bring data from supported instruments together (FTIR .spa files and TA Instruments .tri files today) without separating a result from its units or experiment settings.

Trust

Trace a result back to its instrument file and the processing steps recorded along the way. Each checkpoint records a content digest, and receipts can be exported and kept separately, so deviations from the recorded state are detectable later. Integrity checks cover the whole archive, not one number at a time. These checks protect the record; they do not prove that a measurement is correct.

Empower

Reuse recorded measurements in Python, export them to Excel or explore them in plots. The wider aim is to give machine-learning models and AI agents data they can work with, with its context and history intact.

Extend

Start with the core library and add the tools your workflow needs. Separate packages handle instrument input, resampling, exports and plots, with room for developers to contribute new connectors and analysis methods. .mtrl is intended to be an open-core project: the format, core library and connector framework are planned to be openly licensed, while the licence and contribution process are still being finalised.

A working prototype, built around real measurements

The prototype imports real instrument files, keeps their context and records how results are produced. Recycled-plastics characterisation is the first proving ground.

Real instrument input. Connectors read infrared spectroscopy files (FTIR, used to help identify materials) in .spa format, the native output of OMNIC acquisition software, and TA Instruments .tri files for thermal analysis and flow measurements. The prototype preserves experiment details, records processing steps and exports results to Excel, Python and plots.

A visible trail from file to result. A graph shows each recorded transformation, making it possible to follow a result back to the raw data it came from.

Reference measurements for recycled plastics. A programme at Manchester has tracked 240 individual recycled flakes, each with its own identifier, collected 290 FTIR measurements and linked colour data. It also includes 51 reference materials. These reference measurements are the ground truth the prototype is being validated against; packaging the shared dataset into .mtrl archives is under way.

This is development progress, not a finished product. The format, connectors and Python API are still evolving.

Who .mtrl is for

Users: technical teams, researchers and lab operations. Keep measurements meaningful when you revisit them or pass them to another team.

Contributors: developers and specialists. Extend the framework with connectors and analysis methods for your instruments and workflows.

Decision makers: industry and research leaders. Work towards a common, verifiable record that can travel across a supply chain, and a base for future AI and machine-learning work on materials data.

Record a result. Verify before use.

Keep a measurement, its units and its source together. Then check the archive before reading the result.

Illustrative API usage. mtrl is built from source today, and these names may change before the first release.

from mtrl import Archive, Record, Unit

# Record one result as an immutable record.
archive = Archive.open("rheology-run-0142.mtrl", mode="w")
archive.write(
    Record(
        kind="storage_modulus",
        values=[2.41e9, 1.98e9, 8.71e8],
        unit=Unit("Pa"),
        metadata={
            "material": "PLA",
            "temperature": Unit([25.0, 60.0, 95.0], "degC"),
        },
        source="ta-rheology/run-0142.tri",
    )
)
archive.close()
# Verify integrity and lineage, then read the data.
archive = Archive.open("rheology-run-0142.mtrl")
report = archive.verify()
assert report.ok, report.problems

record = archive["storage_modulus"]
record.unit      # Unit("Pa")
record.lineage   # source evidence and revision history

Explore the prototype from source

mtrl requires Python 3.14+. Its core depends only on NumPy. It is not on PyPI yet: the packages are built from source, and the API may change before release.

The development repositories are currently private and shared with project partners while a public release is prepared, so there is nothing to browse on GitHub yet.

In the mtrl library repository, build all packages:

uv build --all-packages

This builds the packages; it is not an install command.

Once the packages are published, the intended installation pattern is:

uv pip install mtrl

This command is not available for installing mtrl from PyPI today.

Distributions

Six distributions in the mtrl library repository: a core package plus five optional additions. Built from source today, not yet published on PyPI.
DistributionWhat it adds
mtrl coreRecords, archives, integrity checks, grids, CSV export, NumPy-only operations
vector-mtrl-spa inputOMNIC .spa instrument input
vector-mtrl-trios inputNative TA Instruments .tri input (DSC, rheology, TGA)
vector-mtrl-interp transformPchip and cubic resampling
vector-mtrl-tabular exportpandas frames and Excel export
vector-mtrl-viz outputSpectra plots and lineage graphs