Skip to main content
hyper3d avatar

Rodin Gen-2 by Hyper3D API

hyper3d/rodin/gen-2

Generate a clean, quad-topology 3D model with PBR textures (GLB, OBJ, USDZ, FBX, STL) from a text prompt or up to five reference images.

0.399

Model Input

Input

Text description of the 3D object to generate (English only, up to 400 characters; longer text is truncated). Required for text-to-3D; provide this OR one or more input images.

  • https://media.modelrunner.ai/652whXAMSt8ohZxvWYLAR.png

One to five reference image URLs to reconstruct into a 3D model. Required for image-to-3D; provide these OR a text prompt.

Additional Settings

Customize your input with more control.

Material set baked into the mesh: PBR (physically based, default), Shaded, All, or None.

Topology mode: Quad (default) for clean, animation-friendly quad topology, or Raw for a dense triangle mesh.

Export format of the generated 3D mesh.

Min: 500 - Max: 1000000

Target face count. Leave unset to use the mode default (about 18k for Quad, 500k for Raw). Valid range depends on mesh_mode: Raw 500 to 1,000,000, Quad 1,000 to 200,000.

Surface subdivision detail: high, medium (default), or low.

Generate high-definition texture maps for finer surface detail.

Generate human-like models in a rig-friendly T/A pose.

Random seed for reproducible generation. Leave unset for a random result.

You need to be logged in to run this model and view results.
Log in

Model Output

Output

Loading
Generated in 137 seconds
Logs (1 lines)

Model Example Requests

Examples

Rodin Gen-2 by Hyper3D API

Rodin Gen-2 by Hyper3D is a image-to-3d AI model by hyper3d. On ModelRunner it runs through a REST API or via MCP from any AI assistant, at $0.399 per output.

POST https://queue.modelrunner.run/hyper3d/rodin/gen-2

cURL

# Submit a request to the queue. Input fields go at the top level of the
# body. The optional reserved "metadata" object holds your own flat string
# tags — stored on the request, never sent to the model; filter later with
# GET https://queue.modelrunner.run/requests?metadata=<url-encoded JSON>.
curl -X POST https://queue.modelrunner.run/hyper3d/rodin/gen-2 \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "TAPose": false,
    "prompt": "a bronze owl figurine with folded wings and layered feather detail",
    "material": "PBR",
    "mesh_mode": "Quad",
    "hd_texture": true,
    "input_image_urls": [
      "https://media.modelrunner.ai/652whXAMSt8ohZxvWYLAR.png"
    ],
    "subdivisionlevel": "medium",
    "geometry_file_format": "glb",
    "metadata": {
      "project": "my-project"
    }
  }'
# → { "request_id": "...", "status_url": "...", "response_url": "..." }

# Poll status_url until "COMPLETED", then fetch the result
curl "https://queue.modelrunner.run/hyper3d/rodin/gen-2/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/hyper3d/rodin/gen-2/requests/$REQUEST_ID" \
  -H "Authorization: Key $MRUN_API_KEY"

JavaScript

import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("hyper3d/rodin/gen-2", {
  input: {
    "TAPose": false,
    "prompt": "a bronze owl figurine with folded wings and layered feather detail",
    "material": "PBR",
    "mesh_mode": "Quad",
    "hd_texture": true,
    "input_image_urls": [
      "https://media.modelrunner.ai/652whXAMSt8ohZxvWYLAR.png"
    ],
    "subdivisionlevel": "medium",
    "geometry_file_format": "glb"
  },
});
console.log(result);

Python

import os
import requests

headers = {"Authorization": f"Key {os.environ['MRUN_API_KEY']}"}

submitted = requests.post(
    "https://queue.modelrunner.run/hyper3d/rodin/gen-2",
    headers=headers,
    json={
      "TAPose": false,
      "prompt": "a bronze owl figurine with folded wings and layered feather detail",
      "material": "PBR",
      "mesh_mode": "Quad",
      "hd_texture": true,
      "input_image_urls": [
        "https://media.modelrunner.ai/652whXAMSt8ohZxvWYLAR.png"
      ],
      "subdivisionlevel": "medium",
      "geometry_file_format": "glb"
    },
).json()

# Poll submitted["status_url"] until "COMPLETED", then:
result = requests.get(submitted["response_url"], headers=headers).json()

Input parameters

Input parameters of Rodin Gen-2 by Hyper3D
NameTypeRequiredDescription
promptstringnoText description of the 3D object to generate (English only, up to 400 characters; longer text is truncated). Required for text-to-3D; provide this OR one or more input images. Default: "".
input_image_urlsarraynoOne to five reference image URLs to reconstruct into a 3D model. Required for image-to-3D; provide these OR a text prompt.
materialenumnoMaterial set baked into the mesh: PBR (physically based, default), Shaded, All, or None. One of: PBR, Shaded, All, None. Default: "PBR".
mesh_modeenumnoTopology mode: Quad (default) for clean, animation-friendly quad topology, or Raw for a dense triangle mesh. One of: Raw, Quad. Default: "Quad".
geometry_file_formatenumnoExport format of the generated 3D mesh. One of: glb, obj, usdz, fbx, stl. Default: "glb".
quality_overrideintegernoTarget face count. Leave unset to use the mode default (about 18k for Quad, 500k for Raw). Valid range depends on mesh_mode: Raw 500 to 1,000,000, Quad 1,000 to 200,000.
subdivisionlevelenumnoSurface subdivision detail: high, medium (default), or low. One of: high, medium, low. Default: "medium".
hd_texturebooleannoGenerate high-definition texture maps for finer surface detail. Default: false.
TAPosebooleannoGenerate human-like models in a rig-friendly T/A pose. Default: false.
seedintegernoRandom seed for reproducible generation. Leave unset for a random result.

Machine-readable: OpenAPI schema · llms.txt

Use Rodin Gen-2 by Hyper3D from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and Rodin Gen-2 by Hyper3D becomes a tool your assistant can call directly — it authorizes via OAuth (no API key in config) and runs this model with the run_model tool using the endpoint hyper3d/rodin/gen-2.

MCP client config (Claude Desktop, Cursor)

{
  "mcpServers": {
    "modelrunner": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.modelrunner.run/mcp"]
    }
  }
}

Claude Code

claude mcp add --transport http modelrunner https://mcp.modelrunner.run/mcp

Then ask your assistant, for example: “Run hyper3d/rodin/gen-2 on ModelRunner to generate 3d”. MCP setup guide.

Model Details

Model Details

Rodin Gen-2 by Hyper3D turns a text description or one to five reference images into a complete, textured 3D model, running both text-to-3D and image-to-3D through a single endpoint. It returns a downloadable mesh (GLB, OBJ, USDZ, FBX, or STL) with PBR materials baked in. Its standout over the previous generation is clean, quad-based topology with a roughly 4x jump in geometry quality — fewer distorted surfaces and less manual cleanup. A recursive, part-based approach keeps complex objects structurally coherent rather than one fused blob.

## Best for - Turn a product or concept photo into a clean, textured 3D asset for games, AR, or web - Generate a 3D model from a text prompt alone, no reference image - Reconstruct an object from up to five photos into game-ready geometry - Export to USDZ for Apple AR, FBX/OBJ for DCC tools, or STL for 3D printing

## Choose another model when - You only need a flat 2D image, not a 3D mesh — use a text-to-image or image-editing model - You need an animated 3D scene or a video rather than a static mesh — use an image-to-video model - You want the previous Rodin generation with a simpler quality control set (`quality`/`tier` rather than mesh mode plus a face-count target) — use `hyper3d/rodin`

## Tips - Keep the prompt under 400 characters and in English; longer text is truncated. Be specific about shape, materials, and finish. - Provide a `prompt`, `input_image_urls`, or both; sending neither fails at generation time. - Leave `mesh_mode` on `Quad` for clean, animation-friendly topology; use `Raw` for a denser triangle mesh. - Enable `hd_texture` when surface detail matters; keep `material` on `PBR` for production-ready textures. - Turn on `TAPose` for humanoid models to get a rig-friendly T/A pose.

## Limitations - Mesh density caps at about 200,000 quad faces (`Quad`) or 1,000,000 triangles (`Raw`); for denser meshes this generation is not the right tool. - No rendered preview is returned — only the mesh file — so use a 3D viewer to inspect results.

## Advanced Configuration - `material`: `PBR` (default), `Shaded`, `All`, or `None` — which material set is baked into the mesh. - `quality_override`: target face count; leave unset to use the mode default. Valid range depends on `mesh_mode` (`Raw` 500–1,000,000, `Quad` 1,000–200,000).

To run via the ModelRunner JavaScript client: ```js import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("hyper3d/rodin/gen-2", { input: { prompt: "a vintage brass diving helmet with rounded portholes and rivets", mesh_mode: "Quad", geometry_file_format: "glb", material: "PBR", hd_texture: true, }, }); ```