Skip to main content

PLAID logo

PLAID

Physics Learning AI Data Model — turning complex physics simulations into AI-ready data.

CI Status Docs Coverage Last Commit
Conda Version PyPI Version Spack Version Platform Python Version
License GitHub Stars JOSS paper JOSS paper

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.

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-64 conda environment with CONDA_SUBDIR=osx-64 to 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

pyplaid-1.0.0.tar.gz (4.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyplaid-1.0.0-py3-none-any.whl (192.1 kB view details)

Uploaded Python 3

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

Hashes for pyplaid-1.0.0.tar.gz
Algorithm Hash digest
SHA256 fb0015f08db6ac73d3fe240fb24f2c908421398ecf6251f2cce81c0f15e3714a
MD5 122a436fb6c7e1ba2dd89794979a8007
BLAKE2b-256 461a99f4cafa9dcdb051e8c031802c2fbf39c0ab85d73a2d1c1210ea4983702e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyplaid-1.0.0.tar.gz:

Publisher: publish-pypi.yml on PLAID-lib/plaid

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for pyplaid-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 227c8f7f6c63ed8a8153de465655b59b6ff43d03c9ae1e187b6dd4df95e956b7
MD5 ce1dd1710cd09dcccf6bc3cd17b28bb6
BLAKE2b-256 2c1ffd820b0b829d02b172d8c29ce23750725eb50674db9895b0c8accd2779cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyplaid-1.0.0-py3-none-any.whl:

Publisher: publish-pypi.yml on PLAID-lib/plaid

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page