.. image:: /../static/images/metatensor-horizontal.png :class: only-light sd-mb-4 :width: 600px .. image:: /../static/images/metatensor-horizontal-dark.png :class: only-dark sd-mb-4 :width: 600px ``metatensor`` is a library for defining, manipulating, storing, and sharing arrays with many, potentially sparse, indices. Think numpy's ``ndarray`` or PyTorch's ``Tensor`` with additional metadata and block-sparse storage. ``metatensor`` was designed to work with data in atomistic machine learning and makes it easy, memory efficient, and fast to keep track of spherical harmonics orders, neighboring atoms indices, atomic types, and much more. It can also store gradients, keeping them together with the associated values. .. grid:: .. grid-item-card:: 🚀 Getting started :link: installation :link-type: ref :columns: 12 12 6 6 :margin: 0 3 0 0 Install the right version of metatensor for your programming language! The core of this library is written in Rust and we provide API for C, C++, and Python. +++ |Python-32x32| |Cxx-32x32| |C-32x32| |Rust-32x32| .. grid-item-card:: 📜 Our goals :link: goals :link-type: ref :columns: 12 12 6 6 :margin: 0 3 0 0 Learn about the core goals of metatensor: - be an exchange format for structured atomistic data; - provide efficient storage and manipulation of sparse arrays; - offer tools to build custom machine learning models. .. grid-item-card:: 💡 Tutorials :link: core-tutorials :link-type: ref :columns: 12 12 6 6 :margin: 0 3 0 0 Follow step-by-step tutorials to learn how to use metatensor core classes to store your own data, including complex sparsity patterns and gradients handling. .. grid-item-card:: 🛠️ Core classes :link: core-classes-overview :link-type: ref :columns: 12 12 6 6 :margin: 0 3 0 0 .. py:currentmodule:: metatensor Explore the core types of metatensor: :py:class:`TensorMap`, :py:class:`TensorBlock` and :py:class:`Labels`, and discover how to used them. +++ |Python-32x32| |Cxx-32x32| |C-32x32| |Rust-32x32| .. grid-item-card:: 📈 Operations :link: metatensor-operations :link-type: ref :columns: 12 12 4 4 :margin: 0 3 0 0 Use ``operations`` to manipulate the core types of metatensor and write new algorithms operating on metatensor's sparse data. +++ |Python-32x32| .. grid-item-card:: 🔥 TorchScript interface :link: metatensor-torch :link-type: ref :columns: 12 12 4 4 :margin: 0 3 0 0 Learn about the TorchScript version of metatensor, used to export and execute custom models inside non-Python software. +++ |Python-32x32| |Cxx-32x32| .. grid-item-card:: 🧑‍💻 Learning utilities :link: metatensor-learn :link-type: ref :columns: 12 12 4 4 :margin: 0 3 0 0 Use the utility class with the same API as torch or scikit-learn to train models based on metatensor! +++ |Python-32x32| .. toctree:: :maxdepth: 2 :hidden: goals installation core/index operations/index torch/index learn/index atomistic/index cite devdoc/index