---
title: "Materials for 3D"
description: "PBR maps from a surface photo."
sidebar:
  label: material
---

{/* Generated by scripts/generate-commands.ts. Do not edit. */}

## Synopsis

```sh
motif material [image] [options]
```

## Example

A flat photograph of linen becomes a set of PBR maps. This is the base colour.

```sh
motif material linen.jpg
```

<div class="docs-pictures docs-pictures-2">
  <figure>
    <img src="/docs/images/commands/linen.jpg" alt="A flat photograph of woven linen" loading="lazy" />
    <figcaption>Before</figcaption>
  </figure>
  <figure>
    <img src="/docs/images/commands/linen-basecolor.jpg" alt="The base colour map of the linen" loading="lazy" />
    <figcaption>After</figcaption>
  </figure>
</div>

## Options

| Flag | What it does |
| --- | --- |
| `--extract <region>` | Extract a tiling material from this region. |
| `--tier <tier>` | Trade cost against quality: fast, balanced, quality. |
| `--dry-run` | Validate and price the call without running it. |

It also takes the [common options](/docs/commands#common-options).

## Models and price

Motif picks the Model for the Tier. Prices are per image where a Model has one; any other shows how it is billed. A rate that depends on the size of the file or the length of the clip is a rate, not a total, so check it with a dry run.

| Model | Chosen at | Price |
| --- | --- | ---: |
| Patina PBR Maps | Balanced | $0.01 base |
| Patina Material Extract | Balanced, with `--extract` | $0.10 |

## Dry run

Check the cost before you spend. The output path is where the file would go.

```sh
motif material linen.jpg --dry-run --fields cost,costBasis,output
```

```json
{
  "cost": 0.108,
  "costBasis": "projected",
  "output": "linen-material.png"
}
```
