Skip to main content

PicoMats logo

A unit-informed, assumption-driven material ontology.

Use the material. Sustain the assumptions.
Reduce uncertainty by making every assumption explicit.

Overview

License Python Version

PicoMats is an assumption-driven material ontology that sustains assumptions throughout your pipeline. It provides unit-informed material definitions with accompanying assumptions.

[!important]

Features:

  • Follows a computational ontology called Abstract-Fundamental Ontology.
  • Uses UnitValues and PicoUnits for encoding typed numerical definitions.
  • Tracks assumptions alongside material definitions to reduce model uncertainty.

What is the Abstract-Fundamental Ontology?

Abstract-Fundamental Ontology is a computational abstraction for both reductionist and pragmatist applications.

The model is based on two categories:

Abstract:       Defined by what it does     (measured properties).
Fundamental:    Defined by what it is       (atomic structure).

The ontology emerges from this simple thought experiment:

Let's model a ball rolling down a ramp.
        ↓   
What forces act on the ball?
        ↓
Gravity, electromagnetic repulsion, and friction.
        ↓
How do we model friction?
        ↓
A coefficient? Isn't that arbitrary?
        ↓
Why not just model it?
        ↓
What exactly is friction?
        ↓
Oh, random microscopic interactions...

It's a mistake to assume it's impossible to model, but computational cost is prohibitive for most applications. Hence, you abstract it via empirical methods to measure friction, losing all but the necessary information.

But abstract isn't always the right model...

I want to research superconductors.
        ↓
Oh, my temperature range is 0 K to 200 K.
        ↓
Where do I get material definitions for that range?
        ↓
I'll just interpolate the standard Niobium definition.
        ↓
Actually, how were these measurements obtained?

When asking such a fundamental question, wouldn't it be best to derive the relations from what the material fundamentally is? Hence, you use fundamental, which describes what the material is, and build the necessary properties without measurement-implicit assumptions.

[!IMPORTANT]

PicoMats does not calculate material properties from the fundamental characteristics of the elements. It is up to the user to compute them via custom modelling or external frameworks.


[!NOTE]

Both abstract and fundamental also make a good semantic boundary for model development. For example, material.abstract.copper and material.fundamental.copper explicitly denote the reality of their origin.

Proposed workflow

PicoMats is still under development for v0.1-alpha. Implementation details and some abstractions may change.

from picomats import mm
from picomats import Materials

# Pulls materials into the simulation
copper = Materials.abstract.pure.copper

density = copper.density
volume = 100 * mm ** 3

mass = volume * density
# > Output: 0.896 m(kg)

copper.assumptions.density
# > Output:
# >└── Method
# >    ├── Hydrostatic Balance (Archimedes' Principle)
# >    └── Media Type: Distilled Water
# >└── Assumptions
# >    ├── Lack of air bubbles within media
# >    └── Media temperature stability

Installation

Until release, this only installs the overview page and related files:

pip install PicoMats

Documentation

All internal documentation can be found within this repo's issues.

Metadata

Release files for picomats 0.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for picomats 0.0.0
File Size Uploaded
picomats-0.0.0.tar.gz 4.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for picomats 0.0.0
File Interpreter ABI Platform
picomats-0.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 8.8 kB

Release files / picomats-0.0.0.tar.gz

Download URL picomats-0.0.0.tar.gz
Size 4.2 kB
Tags Source
SHA-256 checksum
How to use checksums
b005654b387b8b7f2c3569d57af05de2a9a2fa7154bf4091a751e29b11aceaba
BLAKE2b-256 checksum
How to use checksums
f93753c365cdef58b64c3f753146178d479ca1ec8d93840757bf9f72b06995ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.

Transparency log

Release files / picomats-0.0.0-py3-none-any.whl

Download URL picomats-0.0.0-py3-none-any.whl
Size 4.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
240cc795bfae6540b8f9660a43d61cc4fed76f0050c1e474cb9d55c72feeb71f
BLAKE2b-256 checksum
How to use checksums
c04e704195c4b50f77c4f9cc2a915963cb60954dabd66daeb2c123b3df2728f3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

This release

0.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page