> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tigo3d.art/llms.txt
> Use this file to discover all available pages before exploring further.

# Generations

> A generation is one creation job, with a type, a status, and a normalized result.

A **generation** is a single creation job. Every generation records the type of
work, its current status, a progress value, the exact settings that were
submitted, and a normalized snapshot of the result.

## Types

| Type                | What it does                                          |
| ------------------- | ----------------------------------------------------- |
| `TEXT_TO_3D`        | Prompt to 3D geometry, then an optional texture pass. |
| `IMAGE_TO_3D`       | One image to a textured mesh.                         |
| `MULTI_IMAGE_TO_3D` | Up to four images of the same object to a mesh.       |
| `RETEXTURE`         | Restyle the surface of an existing model.             |
| `REMESH`            | Rebuild geometry to a polygon budget.                 |
| `RIG`               | Add a skeleton to a humanoid model.                   |
| `ANIMATE`           | Apply a motion clip to a rigged model.                |

## Status

Every generation moves through one state machine:

```
DRAFT → UPLOADING → QUEUED → IN_PROGRESS → SUCCEEDED | FAILED | CANCELED
```

<ResponseField name="DRAFT" type="state">
  Being assembled in the client, not submitted.
</ResponseField>

<ResponseField name="UPLOADING" type="state">
  Input files are transferring.
</ResponseField>

<ResponseField name="QUEUED" type="state">
  Accepted and waiting for a worker.
</ResponseField>

<ResponseField name="IN_PROGRESS" type="state">
  Running. `progress` climbs from 0 to 100 with a stage label.
</ResponseField>

<ResponseField name="SUCCEEDED" type="terminal">
  Done. An asset is available.
</ResponseField>

<ResponseField name="FAILED" type="terminal">
  Could not complete. Credits are refunded automatically.
</ResponseField>

<ResponseField name="CANCELED" type="terminal">
  Stopped before completion.
</ResponseField>

`DRAFT` and `UPLOADING` are client-side only. The backend emits `QUEUED`
onward.

## Result shape

Responses are normalized. You never receive a raw engine payload.

<CodeGroup>
  ```json Created theme={null}
  { "id": "gen_…", "type": "IMAGE_TO_3D", "status": "QUEUED", "progress": 0, "createdAt": "…" }
  ```

  ```json In progress theme={null}
  { "id": "gen_…", "status": "IN_PROGRESS", "progress": 42, "stage": "Generating texture", "asset": null }
  ```

  ```json Complete theme={null}
  {
    "id": "gen_…",
    "status": "SUCCEEDED",
    "progress": 100,
    "asset": { "id": "ast_…", "thumbnailUrl": "…", "modelUrl": "…" }
  }
  ```
</CodeGroup>

## Running in the background

A generation does not depend on the browser staying open. Once submitted it
runs on the backend; progress is delivered by webhook, with polling as a
fallback.
