OpenMaterica

An open material schema and Python toolkit that records the physical properties of substances in and around the human body, with their provenance, for simulation.

What it is

OpenMaterica describes tissues and body fluids, the media and phantoms that stand in for them, agents introduced into them, and the materials of devices that enter or touch them. Every value carries its provenance, the conditions it was measured under and its uncertainty, so that a simulation can check a value against its own conditions before using it. The specification is normative: where the Python package disagrees with it, the package is wrong.

Status

Pre-release. The specification is a draft for schema 0.1.0, and the record format will change before 0.1.0 is released. Nothing is published on PyPI yet, and the curated material library does not exist yet. Schema 0.1.0 covers the bulk, fluid, magnetic and biocompatibility sections; other sections are added when a consumer needs them.

Core ideas

Records state facts, with provenance and conditions.
Each value records where it came from, the conditions of the test, the specimen it was measured on and what its spread represents. A condition the source does not state is recorded as unstated, never filled in.
Consumers declare their choices.
A record never says where a value applies, which stand-in is acceptable or which of competing values wins. The consumer declares its operating conditions, its tolerances and its choices, and the build checks the records against them.
Checks give met, not_met or unknown.
Each check of a declaration against a record gives one of three results, with its reasons. An unstated condition gives unknown, never met, and a refusal is a result, not an error.
JSON, with an optional USD binding.
Records are plain JSON files that any language can read with a JSON parser and no OpenMaterica code. An OpenUSD binding expresses the same records in USD scenes; it is never required.
Content hashes.
Each record carries a SHA-256 hash of its content, serialised as canonical JSON (RFC 8785), so a consumer can pin the exact record it read. A further review does not change the hash; a change to a value does.

Scope

OpenMaterica describes substances, never systems: not an apparatus or its calibration, not a device as built, not a simulator's tuning. It is adjacent to materiomics rather than infrastructure for it: it records measured properties of specimens, with their test conditions, at the scale where a simulation consumes them, and does not represent the structure, process, hierarchical level or cell response whose relations materiomics studies.