Hitem3d Hi3d V3.0 Multi View To 3d API Documentation

Hitem3d Hi3d V3.0 Multi View To 3d API Documentation

Playground

Try it on WaveSpeedAI!

Hi3D V3.0 Multi-View-to-3D reconstructs a detailed 3D mesh from canonical front, back, left, and right reference views, with optional textures, PBR materials, and multiple export formats for game assets, product visualization, 3D design, and production workflows. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

Features

Hi3D V3.0 Multi-view to 3D reconstructs one 3D asset from canonical views of the same object. Provide a front image and optionally add back, left, and right views to improve geometry accuracy, shape consistency, and texture quality.


Why Choose This?

  • Multi-view 3D reconstruction
    Build a 3D model from multiple views of the same object for stronger shape consistency.

  • Canonical-view workflow
    Start with a required front view, then add back, left, and right images when available.

  • Higher geometry reliability
    Multi-view input helps the model better preserve structure, silhouette, and spatial detail.

  • Texture and PBR support
    Generate textured output and optional PBR material maps for more production-ready assets.

  • Configurable geometry
    Control target face count for different quality and downstream workflow needs.

  • Multiple export formats
    Export generated models as glb, obj, stl, fbx, or usdz.

  • Shading control
    Adjust de-shading strength to improve texture and material quality.


Parameters

ParameterRequiredDescription
front_imageYesFront-view PNG, JPEG, or WebP image of the object. Maximum file size: 20 MB.
back_imageNoOptional back-view image of the same object.
left_imageNoOptional left-view image of the same object.
right_imageNoOptional right-view image of the same object.
resolutionNoGeneration quality mode: 2048quality for faster generation or 2048master for the highest quality.
enable_textureNoGenerate textures in addition to geometry. Default: true.
enable_pbrNoGenerate PBR material maps with the texture. Default: true. Ignored when enable_texture is disabled.
face_countNoTarget face count for the generated mesh. Range: 100000–5000000.
export_formatNoOutput format: glb, obj, stl, fbx, or usdz.
shadingNoDe-shading strength. Range: 0–1. Default: 0.5.

How to Use

  1. Upload the front image — Provide a clear front-view image of the object.
  2. Add more views optional — Upload back, left, and right images of the same object when available.
  3. Choose resolution — Use 2048quality for faster generation or 2048master for higher-quality output.
  4. Configure texture optional — Keep enable_texture enabled when textured output is needed.
  5. Configure PBR optional — Keep enable_pbr enabled when material maps are required.
  6. Set face count optional — Choose a target face count based on your geometry detail needs.
  7. Choose export format — Select glb, obj, stl, fbx, or usdz.
  8. Adjust shading optional — Use shading to control de-shading strength.
  9. Submit — Generate the 3D model and retrieve the output through the standard WaveSpeed prediction response.

Pricing

Pricing is based on selected resolution, texture generation, and PBR generation.

ResolutionGeometry onlyTextureTexture + PBR
2048quality$1.98$2.20$2.31
2048master$9.68$9.90$10.01

PBR is only generated and priced when texture generation is enabled.


Best Use Cases

  • Multi-view object reconstruction — Build a more accurate 3D model from multiple angles of the same object.
  • Product 3D assets — Convert product photos into textured 3D models for previews and visualization.
  • E-commerce workflows — Create 3D assets for interactive product display.
  • Design and prototyping — Turn reference photos into editable 3D assets for iteration.
  • Game and real-time pipelines — Generate geometry with configurable face counts for downstream optimization.
  • Production-ready exports — Use GLB, OBJ, STL, FBX, or USDZ depending on your workflow.

Pro Tips

  • Use images of the same object with consistent lighting, framing, and scale.
  • Canonical input order is front, back, left, then right.
  • Provide as many clean views as possible for better shape reconstruction.
  • Avoid cluttered backgrounds, reflections, heavy shadows, occlusion, or motion blur.
  • Use 2048quality for faster iteration and 2048master for higher-quality final output.
  • Enable textures when color and surface appearance matter.
  • Enable PBR when the output will be used in rendering, visualization, or game-engine workflows.
  • Set face_count lower for lightweight assets and higher for more detailed geometry.

Notes

  • front_image is required.
  • Use canonical views of the same object for the best results.
  • PBR is only generated and billed when texture generation is enabled.
  • The safety checker follows the upstream default and is not exposed in the public form.
  • The generated model file is returned through the standard WaveSpeed prediction response.

Authentication

For authentication details, please refer to the Authentication Guide.

API Endpoints

Submit Task & Query Result

set -euo pipefail

export WAVESPEED_API_KEY="your-api-key"

REQUEST_BODY=$(cat <<'JSON'
{
  "front_image": "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg",
  "resolution": "2048quality",
  "enable_texture": true,
  "enable_pbr": true,
  "face_count": 2000000,
  "export_format": "glb",
  "shading": 0.5
}
JSON
)

# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
  -X POST "https://api.wavespeed.ai/api/v3/hitem3d/hi3d-v3.0/multi-view-to-3d" \
  -H "Authorization: Bearer ${WAVESPEED_API_KEY}" \
  -H "Content-Type: application/json" \
  -d "${REQUEST_BODY}")

TASK=$(printf '%s' "${SUBMIT_RESPONSE}" | jq 'if type == "object" and has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "${TASK}" | jq -r '.id // empty')
if [ -z "${PREDICTION_ID}" ]; then
  printf 'Submission response did not contain a prediction id
' >&2
  exit 1
fi
RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/${PREDICTION_ID}/result"

# 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 type == "object" and has("data") then .data else . end')
  STATUS=$(printf '%s' "${RESULT}" | jq -r '.status // empty')

  case "${STATUS}" in
    completed) printf '%s\n' "${RESULT}" | jq '.outputs'; break ;;
    failed|cancelled|timeout|deleted) printf '%s\n' "${RESULT}" | jq . >&2; exit 1 ;;
    *) sleep 2 ;;
  esac
done

Parameters

Task Submission Parameters

Request Parameters

ParameterTypeRequiredDefaultRangeDescription
front_imagestringYes--Front-view reference image. PNG, JPEG, and WebP are supported, up to 20 MB.
back_imagestringNo--Optional back-view reference image, up to 20 MB.
left_imagestringNo--Optional left-view reference image, up to 20 MB.
right_imagestringNo--Optional right-view reference image, up to 20 MB.
resolutionstringNo2048quality2048quality, 2048masterGeneration quality tier. 2048quality is faster; 2048master provides the highest quality.
enable_texturebooleanNotrue-Generate textures in addition to the geometry mesh.
enable_pbrbooleanNotrue-Generate PBR material maps with the texture. Ignored when enable_texture is false.
face_countintegerNo2000000100000 ~ 5000000Optional target face count. Hi3D recommends 2,000,000 for 2048quality and 5,000,000 for 2048master.
export_formatstringNoglbglb, obj, stl, fbx, usdzFile format of the generated 3D model.
shadingnumberNo0.50 ~ 1De-shading strength applied to the input images.

Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
data.idstringUnique identifier for the prediction, Task Id
data.modelstringModel ID used for the prediction
data.outputsarrayOutput values, usually URL strings; some models return text strings or structured result objects (empty when status is not completed)
data.urlsobjectObject containing related API endpoints
data.statusstringTask status. completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses.
data.created_atstringISO timestamp of when the request was created (e.g., “2023-04-01T12:34:56.789Z”)
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds

Result Request Parameters

ParameterTypeRequiredDefaultDescription
idstringYes-Task ID

Result Response Parameters

ParameterTypeDescription
codeintegerHTTP status code (e.g., 200 for success)
messagestringStatus message (e.g., “success”)
dataobjectThe prediction data object containing all details
data.idstringUnique identifier for the prediction
data.modelstringModel ID used for the prediction
data.outputsarray<string | object>Array of generated outputs (empty when status is not completed). Items are usually URL strings, but may be text strings or structured result objects, depending on the model.
data.urlsobjectObject containing related API endpoints
data.statusstringStatus: completed is successful; failed, cancelled, timeout, and deleted are failure terminal statuses
data.created_atstringISO timestamp of when the request was created
data.errorstringError message (empty if no error occurred)
data.timingsobjectObject containing timing details
data.timings.inferenceintegerInference time in milliseconds
© 2026 WaveSpeedAI. All rights reserved.