---
title: "A 3D model from a photo"
description: "A textured 3D mesh, rigged if asked."
sidebar:
  label: mesh
---

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

## Synopsis

```sh
motif mesh [image] [--rig] [options]
```

## Example

A person as a textured 3D mesh with a skeleton.

```sh
motif mesh figure.jpg --rig
```

<div class="docs-pictures docs-pictures-2">
  <figure>
    <img src="/docs/images/commands/figure.jpg" alt="A person in linen standing in an empty room" loading="lazy" />
    <figcaption>Before</figcaption>
  </figure>
  <figure>
    <img src="/docs/images/commands/figure-rigged.png" alt="The rigged 3D mesh" loading="lazy" />
    <figcaption>After</figcaption>
  </figure>
</div>

## Options

| Flag | What it does |
| --- | --- |
| `--body` | Reconstruct a human body. |
| `--objects <object>` | Reconstruct every instance of one named object. |
| `--rig` | Rig the mesh with a skeleton for animation. |
| `--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 |
| --- | --- | ---: |
| TRELLIS 2 | Balanced | $0.300 |
| SAM 3D Body | Balanced, with `--body` | $0.02 per unit |
| SAM 3D Objects | Balanced, with `--objects` | $0.02 per unit |
| Meshy v7 Image to 3D | Quality | $1.20/generation at the default textured model |
| Hunyuan3D v3 Image to 3D | Quality | $0.375 |

## Dry run

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

```sh
motif mesh figure.jpg --rig --dry-run --fields cost,costBasis,output
```

```json
{
  "cost": 1.4,
  "costBasis": "projected",
  "output": "figure-mesh.glb"
}
```
