3D Object Generation
Generate 3D models and objects from text prompts.
Endpoint
POST /v1/3d/generationsRequest
{
"model": "model-id",
"prompt": "A low-poly medieval castle with towers and a moat",
"format": "glb"
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | 3D model ID |
prompt | string | Yes | Text description of the 3D object |
format | string | No | Output format (glb, obj, fbx) |
Response
3D generation is asynchronous:
{
"id": "3d_abc123",
"status": "processing",
"created_at": 1709251200
}Check Status
GET /v1/3d/generations/{id}When complete:
{
"id": "3d_abc123",
"status": "completed",
"model_url": "https://api.yuhuanstudio.com/v1/temp-images/3d_abc123.glb"
}Available Models
For a list of available 3D models and their capabilities, please use the Models API with GET /v1/models?type=3d_generation.
Example
import httpx
import time
response = httpx.post(
"https://api.yuhuanstudio.com/v1/3d/generations",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"model": "model-id",
"prompt": "A futuristic sports car, metallic blue finish",
"format": "glb"
}
)
task = response.json()
task_id = task["id"]
# Poll for completion
while True:
status = httpx.get(
f"https://api.yuhuanstudio.com/v1/3d/generations/{task_id}",
headers={"Authorization": "Bearer YOUR_API_KEY"}
).json()
if status["status"] == "completed":
print(f"3D model ready: {status['model_url']}")
break
elif status["status"] == "failed":
print(f"Generation failed: {status.get('error')}")
break
time.sleep(5)3D generation is an emerging capability. Available models depend on your provider configuration. Check GET /v1/models?type=3d_generation.
How is this guide?