Hyper3DHyper3D Docs
API Specification

Bang

Submit a Bang task from a Rodin asset or an uploaded model.

POST
/api/v2/bang

Authorization

bearer
headerAuthorizationBearer <token>

Request Body

multipart/form-data
  1. body
asset_id?string
Formatuuid
prompt?string
image?file
Formatbinary
model?file
Formatbinary
strength?integer
Range1 <= value <= 12
Default5
escore?number
Range0 <= value <= 10
Default3.5
reference_scale?number
Range0 <= value <= 1
Default0.5
seed?integer
Range0 <= value <= 65535
geometry_file_format?string

Optional. File format for the generated geometry files.

Default"glb"
Value in"glb""usdz""fbx""obj""stl"
material?string
Default"PBR"
Value in"PBR""Shaded""All""Hybrid""None"
resolution?string
Default"Basic"
Value in"Basic""High"
instruction?string
quality_override?integer
Range500 <= value <= 2000000
mesh_mode?string
Default"Raw"
Value in"Quad""Raw"

Response Body

application/json
  1. response
error?string
Value in"NO_SUCH_TASK""ASSET_NOT_AVAILABLE""IMAGE_LABEL_LENGTH_TOO_LONG""INVALID_REQUEST""API_NO_ACTIVE_SUBSCRIPTION""API_SUBSCRIPTION_PLAN_TOO_LOW""API_PARALLELISM_LIMIT_REACHED""API_INSUFFICIENT_FUNDS""API_OBJECT_NOT_FOUND_ON_IMAGE""IMAGE_CONTENT_VIOLATION""PERMISSION_DENIED""API_UNKNOWN"
message?string

Success message or detailed error information.

uuid?string

Unique identifier for the submitted generation task.

Formatuuid
submit_time?string

Server time when the task was submitted.

Formatdate-time
jobs?
consumed?number

Credits consumed by this request.

Example Request
curl -X POST 'https://api.hyper3d.com/api/v2/bang'
Example Response
{  "error": "NO_SUCH_TASK",  "message": "Submitted.",  "uuid": "123e4567-e89b-12d3-a456-426614174000",  "submit_time": "2019-08-24T14:15:22Z",  "jobs": {    "uuids": [      "52faea01-729e-4195-85e8-6050a65315e3"    ],    "subscription_key": "string"  },  "consumed": 0.5}

Bang accepts exactly one of two input modes. Sending both asset_id and model, or neither, is rejected.

Rodin asset input

Use the top-level uuid returned by a completed Rodin generation as asset_id.

  • Required: asset_id.
  • Optional: geometry_file_format, strength, material, resolution, seed, escore, and reference_scale.
  • Mutually exclusive: model, image and prompt must be omitted.

When material generation is enabled, escore and reference_scale apply in both input modes. Values sent with an asset_id override the corresponding settings stored on that asset; when omitted, the endpoint uses its request defaults.

curl --fail-with-body --request POST 'https://api.hyper3d.com/api/v2/bang' \
  --header "Authorization: Bearer ${RODIN_API_KEY}" \
  --form 'asset_id=123e4567-e89b-12d3-a456-426614174000' \
  --form 'strength=5' \
  --form 'geometry_file_format=glb'

Custom model input

Upload one model. A reference image is required unless material is None, because material generation needs something to sample from; omitting it is rejected with INVALID_REQUEST and a descriptive message.

  • Required: model, and image unless material=None.
  • Optional: geometry_file_format, prompt, strength, material, resolution, reference_scale, escore, seed.
  • Mutually exclusive: asset_id must be omitted.
  • Supported model formats: obj, glb, stl, fbx, usd, usda, usdz, and usdc.
  • strength accepts 1 to 12 and defaults to 5. Higher values split the model into more pieces.
curl --fail-with-body --request POST 'https://api.hyper3d.com/api/v2/bang' \
  --header "Authorization: Bearer ${RODIN_API_KEY}" \
  --form 'model=@./model.glb' \
  --form 'image=@./reference.png' \
  --form 'prompt=Separate the main structural parts' \
  --form 'strength=5' \
  --form 'geometry_file_format=glb'

Pricing

Every Bang request costs 0.5 credits, regardless of whether it uses a Rodin asset or an uploaded custom model and regardless of the selected input options.

Response and errors

{
  "message": "Submitted.",
  "uuid": "123e4567-e89b-12d3-a456-426614174000",
  "jobs": {
    "uuids": ["223e4567-e89b-12d3-a456-426614174000"],
    "subscription_key": "subscription-key-from-generation-response"
  },
  "consumed": 0.5
}

Bang uses the same application error codes as the other generation endpoints. HTTP 201 means the endpoint handled the request, but the task is accepted only when error is absent or empty and the top-level uuid is non-empty. HTTP 400 covers invalid fields, unsupported files, or conflicting input modes; 401 indicates invalid authentication; 429 indicates throttling. Poll and download using the same identifier rules as other generation endpoints.