Hyper3D Rodin v2 generates production-ready 3D assets from text prompts, delivering clean meshes with UVs and textures. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
ว่าง

$0.3ต่อครั้ง·~33 / $10
3D model output
Open preview to inspect the generated asset.
Create a fully textured 3D model of a female sci-fi explorer in a sleek white and teal exosuit. She is in a neutral T-pose, no helmet, short hair, athletic but realistic proportions. The suit has layered armor plates, glowing blue accents and flexible fabric areas at the joints. Output a game-ready character with clean topology and PBR textures (metal, fabric, emissive), suitable for real-time use in Unity or Unreal. No base, no environment, just the character on a neutral ground plane.
3D model output
Open preview to inspect the generated asset.
A cat.
3D model output
Open preview to inspect the generated asset.
Cute fluffy red panda, wearing a small adventure backpack, wearing aviator goggles on head, happy smile, big expressive eyes, forest background, soft studio lighting, Pixar style, Disney style, 3d render, c4d, octane render, blind box style, clay texture, 4k.
3D model output
Open preview to inspect the generated asset.
Anthropomorphic British Shorthair cat, wearing a vintage beige trench coat and fedora hat, wearing a monocle, holding a pipe, standing on a rainy London street, noir atmosphere, cinematic lighting, furry art, highly detailed, 8k resolution.
3D model output
Open preview to inspect the generated asset.
Cool gorilla character, wearing oversized basketball jersey, thick gold chains and sunglasses, backwards baseball cap, holding a boombox, graffiti wall background, vibrant colors, street photography style, wide angle lens, fashion editorial.
3D model output
Open preview to inspect the generated asset.
Adorable Shiba Inu dog, wearing a white chef hat and apron, making sushi, kitchen background, warm lighting, cozy atmosphere, 3d cartoon style, minimalist, bubble mart style, smooth texture.
3D model output
Open preview to inspect the generated asset.
a 3D model of a small companion robot with a spherical main body, two short cylindrical legs with rounded feet, no arms, a flat circular face screen showing expressive LED eyes, smooth plastic shell with panel lines, primary color white with soft gray accents, a thin glowing ring around the middle of the body, low-to-mid poly friendly design
hyper3d/rodin-v2/text-to-3d turns a single text prompt into a fully textured 3D asset, using Hyper3D’s Rodin v2 generation pipeline. It’s designed for game props, characters, film previs, XR assets and 3D printing where you want clean topology plus usable UVs and textures straight out of the API.
material
quality_and_mesh Controls topology type and approximate face count:
4k_Quad, 8k_Quad, 18k_Quad, 50k_Quad – Quad meshes at increasing resolution Best for sculpting, retopo, rigging, hero characters.
2K_Triangle, 20K_Triangle, 250K_Triangle, 500K_Triangle – Triangle meshes at increasing density Good for direct engine use or high-detail props.
geometry_file_format Choose preferred output format:
addons
bbox_condition Optional bounding-box constraint (ControlNet-style) to cap the maximum size of the generated model (width/height/depth). Useful when you need scale consistency across a library of assets.
TAPose When enabled, enforces a T/A-pose for humanoid characters, simplifying rigging and animation.
use_original_alpha Reserved for workflows that process existing images; can usually be left off for pure text-to-3D on this endpoint.
preview_render If enabled, adds a quick preview render of the generated model (e.g. turntable) to the download bundle so you can inspect it without opening a 3D app.
seed Random seed for reproducibility:
Simple, flat pricing:
Each run generates one 3D asset (mesh + textures) with your chosen quality and format. Change any parameters (prompt, mesh tier, format, etc.) → counts as a new run at $0.30.
Write a clear prompt describing:
Choose material (usually PBR for pipelines, Shaded for stylised/baked).
Set quality_and_mesh:
Pick geometry_file_format that fits your toolchain (e.g. glb or fbx).
(Optional)
Set a seed if you want reproducible results, otherwise leave blank.
Click Run – after generation, download the archive and import the asset into your DCC, engine, or printing workflow.
tripo3d/v2.5/image-to-3d Tripo3D’s v2.5 image-to-3D model turns a single product or concept image into a textured, game-ready 3D asset for e-commerce, AR/VR and real-time engines.
tripo3d/v2.5/multiview-to-3d Tripo3D’s multi-view 3D reconstruction model uses several photos of the same object to generate higher-fidelity meshes and textures for digital twins and 3D catalogs.
hunyuan3d/v2.1 Tencent Hunyuan3D v2.1 (hosted by WaveSpeedAI) converts text prompts into detailed 3D models, ideal for stylised characters, props and environment assets in games and animation.
hunyuan3d-v2-multi-view Tencent Hunyuan3D v2 multi-view leverages multiple reference images to create accurate, textured 3D assets for digital humans, product visualization and virtual production workflows.
Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/hyper3d/rodin-v2/text-to-3d with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Rodin v2 Text To 3d below.
set -euo pipefail
: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"
REQUEST_BODY=$(cat <<'JSON'
{
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"material": "PBR",
"quality_and_mesh": "4k_Quad",
"geometry_file_format": "glb",
"addons": "HighPack"
}
JSON
)
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/hyper3d/rodin-v2/text-to-3d" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $WAVESPEED_API_KEY" \
-d "$REQUEST_BODY")
TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
printf 'Submission response did not contain a prediction id
' >&2
exit 1
fi
RESULT_URL=$(printf '%s' "$TASK" | jq -r '.urls.get // empty')
if [ -z "$RESULT_URL" ]; then
RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
fi
# 2. Poll until the prediction finishes.
while true; do
RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
-H "Authorization: Bearer $WAVESPEED_API_KEY")
RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
case "$STATUS" in
completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
failed|cancelled|timeout) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
created|processing) sleep 2 ;;
*) printf 'Unexpected status: %s
' "$STATUS" >&2; exit 1 ;;
esac
doneconst submitUrl = "https://api.wavespeed.ai/api/v3/hyper3d/rodin-v2/text-to-3d";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');
async function requestJson(url, options = {}) {
const response = await fetch(url, options);
if (!response.ok) throw new Error(await response.text());
return response.json();
}
// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
method: "POST",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"material": "PBR",
"quality_and_mesh": "4k_Quad",
"geometry_file_format": "glb",
"addons": "HighPack"
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
`https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;
// 2. Poll until the prediction finishes.
while (true) {
const resultBody = await requestJson(resultUrl, {
headers: { "Authorization": `Bearer ${apiKey}` },
});
const result = resultBody.data ?? resultBody;
if (result.status === "completed") {
console.log(result.outputs);
break;
}
if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
await new Promise(resolve => setTimeout(resolve, 2000));
}import json
import os
import time
from urllib.request import Request, urlopen
api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"material": "PBR",
"quality_and_mesh": "4k_Quad",
"geometry_file_format": "glb",
"addons": "HighPack"
}
def request_json(url, data=None):
request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
with urlopen(request) as response:
return json.load(response)
# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/hyper3d/rodin-v2/text-to-3d", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"
# 2. Poll until the prediction finishes.
while True:
result_body = request_json(result_url)
result = result_body.get("data", result_body)
status = result.get("status")
if status == "completed":
print(result.get("outputs", []))
break
if status in {"failed", "cancelled", "timeout"}:
raise RuntimeError(result)
if status not in {"created", "processing"}:
raise RuntimeError(f"Unexpected status: {status}")
time.sleep(2)Rodin v2 Text To 3d is a Hyper3d model for 3D asset generation, exposed as a REST API on WaveSpeedAI. Hyper3D Rodin v2 generates production-ready 3D assets from text prompts, delivering clean meshes with UVs and textures. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.
POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/hyper3d/hyper3d-rodin-v2-text-to-3d.
Rodin v2 Text To 3d starts at $0.30 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.
Key inputs: `prompt`, `seed`, `addons`, `bbox_condition`, `geometry_file_format`, `material`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/hyper3d/hyper3d-rodin-v2-text-to-3d.
Median end-to-end generation time on WaveSpeedAI is around 73 seconds per request, based on recent successful runs. Queue time varies with global demand; live status is visible in the prediction record.
Commercial usage rights depend on the model's license, set by its provider (Hyper3d). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.