PLAID
Physics Learning AI Data Model — turning complex physics simulations into AI-ready data.
Physics Learning AI Data Model (PLAID)
1. Description
This library proposes an implementation for a data model tailored for AI and ML learning of physics problems. It has been developed at SafranTech, the research center of Safran group.
- Documentation: https://plaid-lib.readthedocs.io/
- Source code: https://github.com/PLAID-lib/plaid
- Contributing: https://github.com/PLAID-lib/plaid/blob/main/CONTRIBUTING.md
- License: https://github.com/PLAID-lib/plaid/blob/main/LICENSE.txt
- Bug reports: https://github.com/PLAID-lib/plaid/issues
- Report a security vulnerability: https://github.com/PLAID-lib/plaid/security/advisories/new
2. Getting started
2.1 Using the library
To use the library, the simplest way is to install it from the packages available:
-
on conda-forge for Linux, macOS, and Windows:
conda install -c conda-forge plaid
-
on PyPI for Linux:
pip install pyplaid
-
on Spack for Linux, macOS, and Windows:
spack install py-plaid
Note
- Conda-forge packages for Linux, macOS, and Windows, as well as the Linux PyPI package, include a bundled pyCGNS dependency. Non-Linux PyPI installations require a separate pyCGNS installation and are untested.
- A Spack package recipe is available for Linux, macOS, and Windows, but has only been tested on Linux.
- On Apple Silicon, users can force an
osx-64conda environment withCONDA_SUBDIR=osx-64to install the existing macOS-64 builds under Rosetta.
2.2 Contributing to the library
To contribute to the library, you need to clone the repo using git:
git clone https://github.com/PLAID-lib/plaid.git
2.2.1 Development dependencies
To configure an environment:
-
using conda (Windows, macOS and Linux):
conda env create -n plaid-dev python=3.12 -f environment.yml pip install -e . --no-deps
-
using uv (Linux):
uv sync --dev --extra viewer
2.2.2 Tests and examples
To check the installation, you can run the unit test suite:
uv run pytest tests
To test further and learn about simple use cases, you can run and explore the examples:
cd examples
bash run_examples.sh # [unix]
run_examples.bat # [win]
2.2.3 Documentation
The documentation is built with Zensical and mkdocstrings. To compile it locally, run:
cd docs
uv run bash generate_doc.sh
Various notebooks are executed during compilation. The documentation can then be explored in docs/_build/html.
2.2.4 Formatting and linting with Ruff
We use Ruff for linting and formatting.
The configuration is defined in ruff.toml, and some folders like docs/ and examples/ are excluded from checks.
You can run Ruff manually as follows:
uv run ruff --config ruff.toml check . --fix # auto-fix linting issues
uv run ruff --config ruff.toml format . # auto-format code
2.2.5 Setting up pre-commit
Pre-commit is configured to run the following hooks:
- Ruff check
- Ruff format
- Pytest
The selected hooks are defined in the .pre-commit-config.yaml file.
To run all hooks manually on the full codebase:
uv run pre-commit run --all-files
You can also run (once):
uv run pre-commit install
This ensures that every time you commit, all the hooks are executed automatically on the staged files.
3. Call for Contributions
The PLAID project welcomes your expertise and enthusiasm!
Small improvements or fixes are always appreciated.
Writing code isn’t the only way to contribute to PLAID. You can also:
- review pull requests
- help us stay on top of new and old issues
- develop tutorials, presentations, and other educational materials
- maintain and improve our documentation
- help with outreach and onboard new contributors
If you are new to contributing to open source, this guide helps explain why, what, and how to successfully get involved.
4. Documentation
The documentation is deployed on readthedocs.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyplaid-1.0.0.tar.gz.
File metadata
- Download URL: pyplaid-1.0.0.tar.gz
- Upload date:
- Size: 4.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb0015f08db6ac73d3fe240fb24f2c908421398ecf6251f2cce81c0f15e3714a
|
|
| MD5 |
122a436fb6c7e1ba2dd89794979a8007
|
|
| BLAKE2b-256 |
461a99f4cafa9dcdb051e8c031802c2fbf39c0ab85d73a2d1c1210ea4983702e
|
Provenance
The following attestation bundles were made for pyplaid-1.0.0.tar.gz:
Publisher:
publish-pypi.yml on PLAID-lib/plaid
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyplaid-1.0.0.tar.gz -
Subject digest:
fb0015f08db6ac73d3fe240fb24f2c908421398ecf6251f2cce81c0f15e3714a - Sigstore transparency entry: 2104533785
- Sigstore integration time:
-
Permalink:
PLAID-lib/plaid@f0ee2c35360f3f9e1d5584720b0ded162a0a67ce -
Branch / Tag:
refs/tags/1.0.0 - Owner: https://github.com/PLAID-lib
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@f0ee2c35360f3f9e1d5584720b0ded162a0a67ce -
Trigger Event:
release
-
Statement type:
File details
Details for the file pyplaid-1.0.0-py3-none-any.whl.
File metadata
- Download URL: pyplaid-1.0.0-py3-none-any.whl
- Upload date:
- Size: 192.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
227c8f7f6c63ed8a8153de465655b59b6ff43d03c9ae1e187b6dd4df95e956b7
|
|
| MD5 |
ce1dd1710cd09dcccf6bc3cd17b28bb6
|
|
| BLAKE2b-256 |
2c1ffd820b0b829d02b172d8c29ce23750725eb50674db9895b0c8accd2779cf
|
Provenance
The following attestation bundles were made for pyplaid-1.0.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on PLAID-lib/plaid
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyplaid-1.0.0-py3-none-any.whl -
Subject digest:
227c8f7f6c63ed8a8153de465655b59b6ff43d03c9ae1e187b6dd4df95e956b7 - Sigstore transparency entry: 2104534000
- Sigstore integration time:
-
Permalink:
PLAID-lib/plaid@f0ee2c35360f3f9e1d5584720b0ded162a0a67ce -
Branch / Tag:
refs/tags/1.0.0 - Owner: https://github.com/PLAID-lib
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@f0ee2c35360f3f9e1d5584720b0ded162a0a67ce -
Trigger Event:
release
-
Statement type: