# Hyper3D - Rodin V2.5 - Image to 3D

> Rodin V2.5 by Hyper3D generates realistic and production ready 3D models from text or images. 


## Overview

- **Endpoint**: `https://fal.run/fal-ai/hyper3d/rodin/v2.5`
- **Model ID**: `fal-ai/hyper3d/rodin/v2.5`
- **Category**: image-to-3d
- **Kind**: inference
**Tags**: image-to-3d



## Pricing

Your request will cost **$0.4** per generation. If `Gen-2.5-Extreme-High` is selected in `tier`, it will cost **$0.8** per generation. Furthermore, if **HighPack** is added to the `addons`, it will cost an additional **$0.8** per generation.

For more details, see [fal.ai pricing](https://fal.ai/pricing).

## API Information

This model can be used via our HTTP API or more conveniently via our client libraries.
See the input and output schema below, as well as the usage examples.


### Input Schema

The API accepts the following input parameters:


- **`prompt`** (`string`, _optional_):
  A textual prompt to guide model generation. Optional for Image-to-3D mode - if empty, the model auto-generates a prompt from the images. Default value: `""`
  - Default: `""`
  - Examples: "A futuristic robot with sleek metallic design."

- **`image_urls`** (`list<string>`, _optional_):
  URL of images to use while generating the 3D model. Required for Image-to-3D mode. Up to 5 images allowed.
  - Array of string
  - Examples: ["https://v3.fal.media/files/panda/l7mQrG8plbB42lBNqVjm0_image.png","https://v3b.fal.media/files/b/kangaroo/scq50Bf1PB2NZOW8szphV_image.png","https://v3.fal.media/files/penguin/X21qtlVMazAtljzRCJD2__image.png"]

- **`tier`** (`TierEnum`, _optional_):
  Generation tier. Higher tiers produce more detailed meshes but cost more. Extreme-High enables the highest-detail mode and bills at double the base rate. See more info in the [documentation](https://developer.hyper3d.ai/api-specification/rodin-gen2.5#use-gen-2.5-generation-with-following-gen-2.5-tiers). Default value: `"Gen-2.5-Medium"`
  - Default: `"Gen-2.5-Medium"`
  - Options: `"Gen-2.5-Extreme-Low"`, `"Gen-2.5-Low"`, `"Gen-2.5-Medium"`, `"Gen-2.5-High"`, `"Gen-2.5-Extreme-High"`

- **`use_original_alpha`** (`boolean`, _optional_):
  When enabled, preserves the transparency channel from input images during 3D generation.
  - Default: `false`

- **`seed`** (`integer`, _optional_):
  Seed value for randomization, ranging from 0 to 65535. Optional.
  - Range: `0` to `65535`

- **`geometry_file_format`** (`GeometryFileFormatEnum`, _optional_):
  Format of the geometry file. Possible values: glb, usdz, fbx, obj, stl. Default is glb. Default value: `"glb"`
  - Default: `"glb"`
  - Options: `"glb"`, `"usdz"`, `"fbx"`, `"obj"`, `"stl"`

- **`material`** (`MaterialEnum`, _optional_):
  Material type. PBR: physically-based materials with realistic lighting. Shaded: baked lighting with no PBR maps. All: both PBR and Shaded variants. None: geometry only with no textures. Default value: `"All"`
  - Default: `"All"`
  - Options: `"PBR"`, `"Shaded"`, `"All"`, `"None"`

- **`quality_mesh_option`** (`QualityMeshOptionEnum`, _optional_):
  Combined quality and mesh type selection. Quad = smooth surfaces, Triangle = detailed geometry. Maps to `mesh_mode` (Quad/Raw) and `quality_override` (face count) on the Hyper3D API. Valid face counts depend on the selected tier. Default value: `"500K Triangle"`
  - Default: `"500K Triangle"`
  - Options: `"4K Quad"`, `"8K Quad"`, `"18K Quad"`, `"50K Quad"`, `"2K Triangle"`, `"20K Triangle"`, `"150K Triangle"`, `"500K Triangle"`

- **`texture_mode`** (`Enum`, _optional_):
  Texture generation quality. When unset, the API picks a default appropriate for the tier.
  - Options: `"legacy"`, `"extreme-low"`, `"low"`, `"medium"`, `"high"`

- **`geometry_instruct_mode`** (`GeometryInstructModeEnum`, _optional_):
  Faithful mode follows the input closely; creative mode permits more variation. Only effective in the Medium and High tiers. Default value: `"faithful"`
  - Default: `"faithful"`
  - Options: `"faithful"`, `"creative"`

- **`hd_texture`** (`boolean`, _optional_):
  Enables enhanced texture post-processing for higher visual fidelity.
  - Default: `false`

- **`texture_delight`** (`boolean`, _optional_):
  Removes baked lighting/highlights from the generated textures.
  - Default: `false`

- **`is_symmetric`** (`IsSymmetricEnum`, _optional_):
  Symmetry mode for the generated mesh. `symmetric` forces left-right symmetry; `balanced` favors symmetry without enforcing it; `asymmetric` allows freely asymmetric geometry; `unknown` lets the model decide based on the inputs. Default value: `"unknown"`
  - Default: `"unknown"`
  - Options: `"symmetric"`, `"balanced"`, `"asymmetric"`, `"unknown"`

- **`is_micro`** (`boolean`, _optional_):
  Generate finer micro-scale geometric detail. Only effective with `tier="Gen-2.5-Extreme-High"`.
  - Default: `false`

- **`TAPose`** (`boolean`, _optional_):
  Generate characters in T-pose or A-pose format, making them easier to rig and animate in 3D software.
  - Default: `false`

- **`bbox_condition`** (`list<integer>`, _optional_):
  An array that specifies the bounding box dimensions [width, height, length]. Must be exactly three positive integers.
  - Array of integer

- **`addons`** (`list<string>`, _optional_):
  Optional add-ons. Possible values are `HighPack`. HighPack provides 4K resolution textures and high-poly geometry, instead of default 2K. If in `quality_mesh_option` Quad is selected, the number of faces will be ~16 times of the number of faces selected in the quality part. Single values are accepted as a shorthand for a list with one item.
  - Array of string

- **`preview_render`** (`boolean`, _optional_):
  Generate a preview render image of the 3D model along with the model files.
  - Default: `false`



**Required Parameters Example**:

```json
{}
```

**Full Example**:

```json
{
  "prompt": "A futuristic robot with sleek metallic design.",
  "image_urls": [
    "https://v3.fal.media/files/panda/l7mQrG8plbB42lBNqVjm0_image.png",
    "https://v3b.fal.media/files/b/kangaroo/scq50Bf1PB2NZOW8szphV_image.png",
    "https://v3.fal.media/files/penguin/X21qtlVMazAtljzRCJD2__image.png"
  ],
  "tier": "Gen-2.5-Medium",
  "geometry_file_format": "glb",
  "material": "All",
  "quality_mesh_option": "500K Triangle",
  "geometry_instruct_mode": "faithful",
  "is_symmetric": "unknown"
}
```


### Output Schema

The API returns the following output format:

- **`model_mesh`** (`File`, _required_):
  Generated 3D object file.
  - Examples: {"url":"https://storage.googleapis.com/falserverless/model_tests/video_models/base_basic_shaded.glb"}

- **`model_meshes`** (`list<File>`, _optional_):
  Additional generated 3D object files returned by Hyper3D besides model_mesh.
  - Array of File

- **`seed`** (`integer`, _required_):
  Seed value used for generation.

- **`textures`** (`list<Image>`, _required_):
  Generated textures for the 3D object.
  - Array of Image



**Example Response**:

```json
{
  "model_mesh": {
    "url": "https://storage.googleapis.com/falserverless/model_tests/video_models/base_basic_shaded.glb"
  },
  "model_meshes": [
    {
      "url": "",
      "content_type": "image/png",
      "file_name": "z9RV14K95DvU.png",
      "file_size": 4404019
    }
  ],
  "textures": [
    {
      "url": "",
      "content_type": "image/png",
      "file_name": "z9RV14K95DvU.png",
      "file_size": 4404019,
      "width": 1024,
      "height": 1024
    }
  ]
}
```


## Usage Examples

### cURL

```bash
curl --request POST \
  --url https://fal.run/fal-ai/hyper3d/rodin/v2.5 \
  --header "Authorization: Key $FAL_KEY" \
  --header "Content-Type: application/json" \
  --data '{}'
```

### Python

Ensure you have the Python client installed:

```bash
pip install fal-client
```

Then use the API client to make requests:

```python
import fal_client

def on_queue_update(update):
    if isinstance(update, fal_client.InProgress):
        for log in update.logs:
           print(log["message"])

result = fal_client.subscribe(
    "fal-ai/hyper3d/rodin/v2.5",
    arguments={},
    with_logs=True,
    on_queue_update=on_queue_update,
)
print(result)
```

### JavaScript

Ensure you have the JavaScript client installed:

```bash
npm install --save @fal-ai/client
```

Then use the API client to make requests:

```javascript
import { fal } from "@fal-ai/client";

const result = await fal.subscribe("fal-ai/hyper3d/rodin/v2.5", {
  input: {},
  logs: true,
  onQueueUpdate: (update) => {
    if (update.status === "IN_PROGRESS") {
      update.logs.map((log) => log.message).forEach(console.log);
    }
  },
});
console.log(result.data);
console.log(result.requestId);
```


## Additional Resources

### Documentation

- [Model Playground](https://fal.ai/models/fal-ai/hyper3d/rodin/v2.5)
- [API Documentation](https://fal.ai/models/fal-ai/hyper3d/rodin/v2.5/api)
- [OpenAPI Schema](https://fal.ai/api/openapi/queue/openapi.json?endpoint_id=fal-ai/hyper3d/rodin/v2.5)

### fal.ai Platform

- [Platform Documentation](https://docs.fal.ai)
- [Python Client](https://docs.fal.ai/clients/python)
- [JavaScript Client](https://docs.fal.ai/clients/javascript)
