open-index/open-npm huggingface dataset:
npm package: @mat3ra/code
Description: COre DEfinitions
Author: Exabyte Inc.
Latest version: 2026.4.1-0

[![npm version](https://badge.fury.io/js/%40mat3ra%2Fcode.svg)](https://badge.fury.io/js/%40mat3ra%2Fcode)
[![License: Apache](https://img.shields.io/badge/License-Apache-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)

# @mat3ra/code

@mat3ra/code houses COre DEfinitions (CODE) for use across the Mat3ra platform.
Its usage can be found in other open-source packages used in the platform.


### Installation

For usage within a javascript project:

```bash
npm install @mat3ra/code
```

For development:

```bash
git clone https://github.com/Exabyte-io/code.git
```


### Contribution

This repository is an [open-source](LICENSE.md) work-in-progress and we welcome contributions.

We regularly deploy the latest code containing all accepted contributions online as part of the
[Mat3ra.com](https://mat3ra.com) platform, so contributors will see their code in action there.

See [ESSE](https://github.com/Exabyte-io/esse) for additional context regarding the data schemas used here.

Useful commands for development:

```bash
# run linter without persistence
npm run lint

# run linter and save edits
npm run lint:fix

# compile the library
npm run transpile

# run tests
npm run test
```
npm package: @mat3ra/mode
Description: MOdel and method DEfinitions
Author: Exabyte Inc.
Latest version: 2026.3.4-0

[![npm version](https://badge.fury.io/js/%40mat3ra%2Fmode.svg)](https://badge.fury.io/js/%40mat3ra%2Fmode)
[![License: Apache](https://img.shields.io/badge/License-Apache-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)

# mode

MOdel DEfinitions in JS/TS/Py - houses entity definitions for:

- `Method` - See [Method Overview](https://docs.mat3ra.com/methods/overview/)
- `Model` - See [Model Overview](https://docs.mat3ra.com/models/overview/)


### Installation

For usage within a JavaScript project:

```bash
npm install @mat3ra/mode
```

For development:

```bash
git clone https://github.com/Exabyte-io/mode.git
```


### Contribution

This repository is an [open-source](LICENSE.md) work-in-progress and we welcome contributions.

We regularly deploy the latest code containing all accepted contributions online as part of the
[Mat3ra.com](https://mat3ra.com) platform, so contributors will see their code in action there.

See [ESSE](https://github.com/Exabyte-io/esse) for additional context regarding the data schemas used here.

Useful commands for development:

```bash
# run linter without persistence
npm run lint

# run linter and save edits
npm run lint:fix

# compile the library
npm run transpile

# run tests
npm run test
```

#### How to Add New Models and Methods

!NOTE: this section is moved to [@mat3ra/standata](github.com/Exabyte-io/standata).

The list of model and method entities is compiled from Yaml assets located in the `./assets` directory
using the `build_entities.js` script. The assets processed by this script usually involve custom Yaml
types such as `!combine` to generate several entity configurations at once.

A new model or method may be added either by extending parameters of an existing entity or by adding
a new asset file such as the following:

```yaml
!combine
name:
  template: 'Model{{ "-" + parameters.example }}' # set the model name using a template

# Loop over parameters to create combinations
forEach:
  - !parameter
    key: parameters.example # path of where to set the property
    values: ["A", "B", "C"] # values to iterate over
    isOptional: true

# static configuration (same for all created entities
config:
  tags:
    - example_model
    - tutorial
  schema: !esse 'schema-id-placeholder' # add a schema using the !esse type to validate each configuration 
```

The above asset file will create four model configurations, "Model-A", "Model-B", "Model-C",
and "Model". The latter entity is created due to the `isOptional` flag of the example parameter.
There are a few more options available to customize the entity asset, for instance, the `!combine` type
has an `exclusions` property where conflicting pairs of entity properties can be defined, so that
combinations of those will be avoided.

For more examples, please see the asset files in `./assets` or [code.js](https://github.com/Exabyte-io/code.js)
for the definition of Yaml types such as `!combine` or `!parameter`.
npm package: @mat3ra/periodic-table
Description: Data about chemical elements arranged in JSON format
Author: Exabyte Inc.
Latest version: 2026.2.6-0

[![npm version](https://badge.fury.io/js/%40exabyte-io%2Fperiodic-table.js.svg)](https://badge.fury.io/js/%40mat3ra%2Fperiodic-table)
[![PyPI version](https://badge.fury.io/py/mat3ra-periodic-table.svg)](https://badge.fury.io/py/mat3ra-periodic-table)
[![License: Apache](https://img.shields.io/badge/License-Apache-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)

# Periodic Table

Data about chemical elements arranged in JSON format. The module also contains modules for accessing
data in both Python and JavaScript/TypeScript.

## 1. Installation

### 1.1. JavaScript

The package can be installed from NPM as follow:

```bash
npm install @mat3ra/periodic-table

```

### 1.2. Python

```bash
pip install mat3ra-periodic-table

```


## 2. Usage

### 2.1. JavaScript

```javascript
import {PERIODIC_TABLE, ChemicalElement} from "@mat3ra/periodic-table";

console.log(PERIODIC_TABLE.H);

const li = new ChemicalElement("Li");
console.log(li.atomicRadiusIn("bohr"));
```

### 2.2. Python

```python
from mat3ra.periodic_table import PERIODIC_TABLE
from mat3ra.periodic_table.bonds import ELEMENT_BONDS
from mat3ra.periodic_table.colors import ELEMENT_COLORS

assert PERIODIC_TABLE["H"]["name"] == "Hydrogen"
assert PERIODIC_TABLE["H"]["atomic_radius_pm"] == 25

bond = next(b for b in ELEMENT_BONDS if b["elements"] == ["H", "O"])
assert bond["energy"]["value"] == 4.75721615
assert bond["energy"]["units"] == "eV"
assert bond["length"]["value"] == 0.96
assert bond["length"]["units"] == "angstrom"

assert ELEMENT_COLORS["H"] == "#FFFFFF"  # white
```


## 3. Atomic Properties

- `name`: element name
- `symbol`: element symbol
- `atomic_number`: atomic number
- `atomic_mass`: atomic mass in amu
- `atomic_radius_pm`: empirical atomic radius in pm by Slater (doi: [10.1063/1.1725697](https://doi.org/10.1063/1.1725697))
- `covalent_radius_pm`: covalent radius "2008 values" (doi: [10.1039/b801115j](https://doi.org/10.1039/b801115j))
- `van_der_Waal_radius_pm`: van der Waals radius (doi: [10.1021/jp8111556](https://doi.org/10.1021/jp8111556), [10.1021/j100785a001](https://doi.org/10.1021/j100785a001))


## 4. Notes

- Colors are in CPK convention


## 5. Contributions

This repository is an [open-source](LICENSE.md) work-in-progress and we welcome contributions.


## 6. ToDos

- Add pre-commit hook to run `python build_modules.py` before commit


## 7. Links

1. Periodic table original source: GPeriodic, Open source Linux software: [link](http://gperiodic.seul.org/)
npm package: @mat3ra/prode
Description: PROperty DEfinitions
Author: Exabyte Inc.
Latest version: 2026.3.30-0

[![npm version](https://badge.fury.io/js/%40exabyte-io%2Fprode.svg)](https://badge.fury.io/js/%40exabyte-io%2Fprode)
[![License: Apache](https://img.shields.io/badge/License-Apache-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)

# prode

PROperty DEfinitions - prode - houses Property entity definitions for use in the Mat3ra platform.


### Installation

For usage within a javascript project:

```bash
npm install @exabyte-io/prode
```

For development:

```bash
git clone https://github.com/Exabyte-io/prode.git
```


### Contribution

This repository is an [open-source](LICENSE.md) work-in-progress and we welcome contributions.

We regularly deploy the latest code containing all accepted contributions online as part of the
[Mat3ra.com](https://mat3ra.com) platform, so contributors will see their code in action there.

See [ESSE](https://github.com/Exabyte-io/esse) for additional context regarding the data schemas used here.

Useful commands for development:

```bash
# run linter without persistence
npm run lint

# run linter and save edits
npm run lint:fix

# compile the library
npm run transpile

# run tests
npm run test
```

## Using Linter

Linter setup will prevent committing files that don't adhere to the code standard. It will
attempt to fix what it can automatically prior to the commit in order to reduce diff noise. This can lead to "unexpected" behavior where a
file that is staged for commit is not identical to the file that actually gets committed. This happens
in the `lint-staged` directive of the `package.json` file (by using a `husky` pre-commit hook). For example,
if you add extra whitespace to a file, stage it, and try to commit it, you will see the following:

```bash
➜  repo-js git:(feature/cool-feature) ✗ git commit -m "Awesome feature works great"
✔ Preparing...
✔ Running tasks...
✖ Prevented an empty git commit!
✔ Reverting to original state because of errors...
✔ Cleaning up...

  ⚠ lint-staged prevented an empty git commit.
  Use the --allow-empty option to continue, or check your task configuration

husky - pre-commit hook exited with code 1 (error)
```

The staged change may remain but will not have been committed. Then it will look like you still have a staged
change to commit, but the pre-commit hook will not actually commit it for you, quite frustrating! Styling can
be applied manually and fixed by running:

```bash
npm run lint:fix
```

In which case, you may need to then add the linter edits to your staging, which in the example above, puts the
file back to identical with the base branch, resulting in no staged changes whatsoever.

ProDe
=====

The`ProDe` package is central to many other entities in the Mat3ra workflow
ecosystem, where `ProDe` houses entity definitions for:

- `Property` - the basic definition of a property
  - properties can be of the following types:
    - `scalar` `non_scalar` `tensor` `object`
  - specific properties are implemented by subclassing `Property`
  - more info at https://docs.mat3ra.com/properties/overview/
npm package: @mat3ra/prove
Description: Property visualization components for Mat3ra workflow ecosystem
Author: Exabyte Inc.
Latest version: 2026.3.30-0

[![npm version](https://badge.fury.io/js/%40mat3ra%2Fprove.svg)](https://badge.fury.io/js/%40mat3ra%2Fprove)
[![License: Apache](https://img.shields.io/badge/License-Apache-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)

# @mat3ra/prove

Property visualization components for the Mat3ra ecosystem.


## 1. Installation.

For usage within a JavaScript project:

```bash
npm install @mat3ra/prove
```

For development:

```bash
git clone https://github.com/Exabyte-io/prove.git
```


## 2. Contributions

This repository is an [open-source](LICENSE.md) work-in-progress and we welcome contributions.

We regularly deploy the latest code containing all accepted contributions online as part of the
[Mat3ra.com](https://mat3ra.com) platform, so contributors will see their code in action there.

Useful commands for development:

```bash
# run linter without persistence
npm run lint

# run linter and save edits
npm run lint:fix

# compile the library
npm run build

# run tests
npm run test
```