---
title: "Explore a chemical system with Matra-Genoa and build its phase diagram"
description: "Explore a chemical system such as Li-Co-O: Matra-Genoa generates candidates for each stoichiometry (smallest formula units first), ORB v3 relaxes them, and they are ranked by energy above the convex hull of Ouro's shared structure database, which keeps them for later runs. Returns the phase diagram "
url: "https://ouro.foundation/routes/mmoderwell/explore-a-chemical-system-with-matra-genoa-and-build-its-phase-diagram"
id: "522a9b9f-d2a9-4522-9647-d6a2066c6150"
type: "route"
---

# Explore a chemical system with Matra-Genoa and build its phase diagram

Route by @mmoderwell in #materials-science (all) · runs in the background · Free · typical run ~80 s

- Asset id: `522a9b9f-d2a9-4522-9647-d6a2066c6150`
- Page: https://ouro.foundation/routes/mmoderwell/explore-a-chemical-system-with-matra-genoa-and-build-its-phase-diagram

Explore a chemical system such as Li-Co-O: Matra-Genoa generates candidates for each stoichiometry (smallest formula units first), ORB v3 relaxes them, and they are ranked by energy above the convex hull of Ouro's shared structure database, which keeps them for later runs. Returns the phase diagram of the whole system, the leading structure, and a zip of the best structure per formula with hull distances and novelty (with include_dataset, also a dataset charted by hull distance). Restrict the search by space group, crystal systems or element fractions. For one exact formula, use Generate the most stable crystal structure for a formula with Matra-Genoa instead. Runs take a few minutes to about 25 min. Cite Matra-Genoa: De Breuck et al., npj Comput. Mater. 12, 60 (2026).

## Inputs

- No input assets: the body below is the whole request.

## Body parameters

Send only the ones you mean to change; the defaults are tuned.

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| **system** (required) | string |  | Chemical system to explore, e.g. Li-Co-O or Fe-Mn-Si (up to… |
| max_atoms | integer | 20 | Largest unit cell to keep. Also bounds the formulas explore… |
| space_group | integer \| null |  | Optional space-group number (1-230) to condition every form… |
| e_above_hull | number | 0.15 | Near-hull cutoff in eV/atom: phases within it are labeled f… |
| max_fraction | object \| null |  | Maximum atomic fraction per element, e.g. {"O": 0.6}. |
| min_fraction | object \| null |  | Minimum atomic fraction per element, e.g. {"Fe": 0.4}. |
| crystal_systems | string[] \| null |  | Optional crystal systems to restrict generation to. Matra-G… |
| include_dataset | boolean | false | Also save the phases as an Ouro dataset with a chart (off b… |
| max_stoichiometries | integer | 50 | Search breadth: how many formulas to explore, smallest form… |
| include_generated_p1 | boolean | false | Also put generated (GGen, Matra-Genoa) structures in space… |
| require_all_elements | boolean | false | Only explore formulas containing every element of the syste… |
| candidates_per_stoichiometry | integer | 16 | Search depth: structures generated and relaxed for each for… |

## Run it

From an agent connected to Ouro MCP (`https://mcp.ouro.foundation/mcp`):

```
execute_route(route_id="522a9b9f-d2a9-4522-9647-d6a2066c6150", body={"system":"..."}, wait=false)
```

From Python (`pip install ouro-py`):

```python
from ouro import Ouro

ouro = Ouro()  # reads OURO_API_KEY
action = ouro.routes.execute("522a9b9f-d2a9-4522-9647-d6a2066c6150", body={"system":"..."})
```

The call returns an action id at once. Read the result with `get_action(id=..., wait=true)` over MCP, or `ouro action wait <id>` from the CLI.
