What are materials?
A Material is a reusable record describing a physical material used in a cell specification — for example, an NMC811 cathode powder, a graphite anode, or an LP57 electrolyte. Materials and their wrapping cell components (anode, cathode, electrolyte, separator, case) are scoped to a project. When you create a material or component through a cell specification, two projects in the same organization each get their own copy of the “same” material — same name, manufacturer, and product ID — so edits, property datasets, and cell references stay cleanly separated per project. Reusing a material across projects means creating a matching material in each project.Materials and components created directly (not through a cell
specification) don’t take a project, and remain organization-wide. Older
materials predating per-project scoping may also still be organization-wide
and shared across specs in different projects — editing one of these shared
records affects every spec that references it.
Property datasets are stored as data — they are separate from
parameter interpolants, which embed lookup tables
directly into a parameterized model. Use property datasets to organize and
share raw measurements, then turn them into interpolants when you are ready
to use them in a simulation.
When to use materials
Use materials when you want to:- Keep a single source of truth for properties of a material used across multiple cells (e.g. the same electrolyte in several cell builds).
- Store raw measurements (OCP, diffusivity, conductivity, transference number, …) alongside the material they were measured on.
- Compare multiple datasets for the same property — for example, OCP curves measured at different temperatures or by different labs.
- Track provenance: who uploaded a dataset, when, and from which raw file.
Managing materials in the UI
Each project has a Materials section in the left navigation. From there you can:- Create a material — give it a name, and optionally a manufacturer and product ID.
- Open a material — view its property datasets and metadata.
- Edit or delete a material from the row actions menu.
Uploading a property dataset
From a material’s detail page, click Upload property dataset and:- Pick a file — CSV or parquet. CSVs may include or omit a header row. When you select a file, the dataset name is prefilled from the file name; edit it if you want something different.
- Review the dataset name — prefilled from the file name in step 1; change
it if you want something different (e.g.
Conductivity at 25 °C). - Declare columns — every column detected in the file is listed in order.
For each one, provide:
- Name — the display name stored in the processed dataset (e.g.
c_e). Every listed column must have a name before you can submit — drop the row for any column you don’t want to import, or name it and ignore it later. Trailing empty columns (a common Excel “trailing comma” artifact) are trimmed automatically. - Unit — the physical unit (e.g.
mol/L,S/m). Leave blank for dimensionless quantities. - Source column — the column in the uploaded file the values come from. For headerless CSVs this is a position; for files with a header you can pick by name.
- Name — the display name stored in the processed dataset (e.g.
- Submit. The file is parsed, every value is coerced to a floating-point number (non-numeric cells become NaN), and both the processed parquet and the original raw file are stored.
Plotting a dataset
Click a dataset to open the plot dialog. You can:- Pick the x and y columns from the dataset. The legend shows each y column
with its unit (e.g.
kappa (S/m)) so dual-axis plots are easy to read. - Zoom and pan; the plot dynamically downsamples and re-fetches points for the visible range so large datasets stay responsive.
- Download the processed parquet or the original raw file from the actions menu.
Editing a dataset
The Edit action on a dataset lets you:- Rename the dataset.
- Re-declare column names and units. When columns change, the stored parquet is rebuilt from the preserved original file using the new specs — you do not need to re-upload.
- Replace the data file entirely while keeping the same dataset ID and metadata. Other records that reference the dataset stay linked.
data_version, so downstream
consumers can detect when a cached result is stale.
Python client
The Python API client exposes materials and their property datasets as two sub-clients:client.material— list and retrieve materials.client.material_property_dataset— list, retrieve, and download property datasets.
Listing and retrieving materials
project_id. Pass project_id to list() to also
scope the property_count returned on each material to that project.
Listing property datasets for a material
MaterialPropertyDataset exposes its columns (a list of ColumnSpec
records with name, unit, and source_column_index), the data_version
that bumps on every edit, and per-column nan_counts.
Downloading dataset values
get_data() downloads the full dataset and returns it as a DataFrame in the
configured DataFrame backend:
REST API
Material property datasets are managed under/material_property_datasets. Materials themselves are managed under
/materials.
Upload a dataset
POST /material_property_datasets accepts a multipart form:
Each column spec is an object:
source_column_index is the 0-based position of the column in the uploaded
file. It is required even when the file has a header row — names are matched
by position, then renamed to the name you provide.
Example upload with curl:
id, storage_path,
data_version, and per-column nan_counts.
List datasets for a material
Fetch dataset values as JSON
max_points downsamples uniformly so large datasets remain responsive to plot.
x_col, x_min, and x_max restrict the response to a range of one column
— useful for zooming charts.
Download the underlying file
UseGET /material_property_datasets/{id}/file to redirect to a short-lived
signed URL for the file, or GET /material_property_datasets/{id}/download-url
to receive the URL as JSON (handy when you want to open it from the browser).
Pass ?kind=parquet (default) to download the processed parquet, or
?kind=original to download the raw file you uploaded.
Update metadata, replace the file, or delete
Related
- Cells — materials are referenced from the anode, cathode, electrolyte, and separator components of a cell specification.
- Parameter interpolants — turn measured property data into lookup-table parameters inside a parameterized model.
- Electrolyte transport from a dataset — build concentration-dependent electrolyte transport parameters from a property dataset and drop them into a pipeline.
- Data overview — how experimental data is organized in Ionworks Studio.