# About the Project

Indentation Toolbox (`indentoolbox`) is an open‑source Python toolkit for post‑processing instrumented indentation tests (nano/micro‑indentation). It provides a consistent data model, vendor‑agnostic readers, analysis routines, and plotting helpers so you can go from raw files to clean, reproducible results quickly.

Smart indentation testing post‑processing with Python.

## Goals

- Reproducible workflows: standardize units, metadata, and project structure.
- Vendor‑agnostic ingestion: read common exports (e.g., Hysitron/TI, XP DCMII) into a unified format.
- Robust analysis: compute key quantities (work, hardness, indentation modulus) with transparent methods.
- Educational material: serve as hands‑on support for workshops and courses on indentation testing.

## History

The project started in 2023 to support a tutorial delivered at the French national workshop [Indentation 2023](https://indentation2023.sciencesconf.org/) in Tours. Since then, the toolbox and its tutorials have continued to evolve and are used as teaching material for subsequent events (e.g., [Indentation 2025](https://indentation2025.sciencesconf.org/) in Besançon).

## What you can do with indentoolbox

- Structured data model: `Test`, `Step`, and `Batch` objects, plus `Device`, `Operator`, `Sample` metadata for reproducible analyses.
- Tip models: spheroconical and pyramidal tips with contact area functions; read `.ara` files to build tip objects.
- File readers: load data from Hysitron/TI (including nanoDMA AVG), XP DCMII Excel exports, and folder‑based projects with TOML metadata.
- Processing routines: compliance correction, work of indentation, parabolic and unloading fits, indentation modulus and hardness calculations, averaging across repeated indents, thin‑film utilities.
- Plotting helpers: quick plots of hardness and indentation modulus versus displacement for inspection and reporting.
- Jupyter‑first workflow: explore data and iterate interactively; optional lightweight widgets are available for simple data selection tasks.
- CLI starter: an `indentoolbox init` command scaffolds a basic project structure.

## Who is it for?

- Researchers and engineers in materials science and mechanics working with instrumented indentation.
- Students and workshop attendees who need a clear, hands‑on introduction with reproducible notebooks.
- Labs looking to standardize post‑processing across instruments and teams.

## Design choices

- Consistent SI units: readers convert common vendor exports to SI (e.g., force in N, displacement in m).
- Transparent data structures: container classes serialize to/from TOML/CSV for portability and archiving.
- Extensible architecture: add new tip types, readers, and processing steps without rewriting the core.

```{note}
Current tip support focuses on spheroconical and pyramidal geometries. Additional tip types can be added; contributions are welcome.
```

## Team and credits

- Ludovic Charleux — lead developer
- Emile Roux — co‑developer
- Christian Elmo — co‑developer
- Alessandro Benetto — co‑developer

## Learn more

- Setup and installation: see `docs/source/setup.md`.
- Examples and notebooks: explore the `examples/` folder.
- Workshop lineage: tutorials originated at [Indentation 2023](https://indentation2023.sciencesconf.org/), [Indentation 2025](https://indentation2025.sciencesconf.org/).
- License: GPL‑2.0 (see `LICENSE`).
