Install
openclaw skills install hitem3dGenerate production-grade 3D models from images with the Hitem3D API. Use when the user wants to turn product shots, concept art, character images, portraits...
openclaw skills install hitem3dUse this skill to turn images into downloadable 3D models via scripts/hitem3d.sh.
Resolve all relative paths against this skill directory.
scripts/hitem3d.shreferences/api.mdreferences/product-guide.mdreferences/clawhub-description.mdreferences/release-checklist.mdreferences/live-validation.mdIf the user asks for a normal one-off generation, prefer the full pipeline:
Do not leave the user with only a task ID unless they explicitly want async handling.
Act like a production 3D operator, not a thin API wrapper.
curl, python3, base64HITEM3D_AK, HITEM3D_SKHITEM3D_TOKENThe user must provide credentials through environment variables:
export HITEM3D_AK="your_access_key"
export HITEM3D_SK="your_secret_key"
If credentials are missing, stop and tell the user exactly which variables are not set.
When the user says “turn this image into 3D” without more detail, use these defaults:
hitem3dv2.03 (geometry + texture)15362 (GLB)Why: this is the best general-purpose quality/output tradeoff.
Use when the input is one product shot, concept image, illustration, object render, furniture photo, toy, packaging, or other non-portrait asset.
Default command pattern:
scripts/hitem3d.sh run input.png
Use portrait models when the user explicitly wants a person, face, bust, avatar head, or half-body likeness.
Preferred defaults:
scene-portraitv2.11536proCommand pattern:
scripts/hitem3d.sh run face.jpg --model scene-portraitv2.1 --resolution 1536pro
If the user mentions 3D printing, printer, slicer, or STL, prefer:
3 (STL)1 for mesh-only when texture is irrelevantCommand pattern:
scripts/hitem3d.sh run object.png --format 3 --type 1 --face 500000
If the user mentions Apple AR, Quick Look, Vision Pro, AR preview, or iPhone preview, prefer format 5 (USDZ).
If the user wants a rough draft, cheap test, or low-cost preview, prefer:
hitem3dv1.55121 or 3 depending on whether texture mattersUse multi-view when the user provides 2-4 images of the same subject from different angles.
Use:
generate-multi or run-multiBitmap order is:
Examples:
101011111001Do not use multi-view mode for unrelated images.
Use batch mode only when the user wants to process many separate images independently. Do not confuse batch with multi-view.
Batch means:
Before batch jobs or obviously expensive jobs, tell the user the expected cost and ask for confirmation.
Must confirm before proceeding when either is true:
For one-off standard jobs, confirmation is not required unless the user has asked to be cost-cautious.
Reference pricing in references/api.md.
Practical heuristics:
hitem3dv1.5 + 512 + mesh-only = 5 creditshitem3dv2.0 + 1536 + textured = 50 creditsWhen estimating cost, say whether the number is per task or total batch cost.
Prefer saving downloads into a user-relevant folder under the current workspace unless the user provides a destination.
Suggested defaults:
./output/hitem3d/./output/hitem3d/<batch-name>/When reporting completion, include:
If the API returns a preview/cover URL, include it when useful.
scripts/hitem3d.sh balance
scripts/hitem3d.sh generate photo.png
scripts/hitem3d.sh run photo.png
For long jobs, explicitly raise the timeout instead of assuming 10 minutes is enough:
scripts/hitem3d.sh run photo.png --timeout-seconds 3600 --poll-seconds 8
scripts/hitem3d.sh run photo.png --model hitem3dv1.5 --resolution 1024 --format 3 --type 1 --download-dir ./output/hitem3d/
scripts/hitem3d.sh generate-multi front.png left.png --views 1010
scripts/hitem3d.sh run-multi front.png back.png left.png right.png --views 1111 --model hitem3dv2.0 --download-dir ./output/hitem3d/multi/
If a job is likely to take a while, set explicit polling and timeout values:
scripts/hitem3d.sh run-multi front.png left.png --views 1010 --timeout-seconds 3600 --poll-seconds 8
scripts/hitem3d.sh wait <task_id> --download ./output/hitem3d/
For slow tasks:
scripts/hitem3d.sh wait <task_id> --download ./output/hitem3d/ --timeout-seconds 3600 --poll-seconds 8
scripts/hitem3d.sh batch ./images --glob '*.png' --download-dir ./output/hitem3d/batch/
If the user does not specify format:
If the user does not specify model:
scene-portraitv2.1 for portraitshitem3dv2.0If the user does not specify resolution:
1536 for general work1536pro for portrait premium output512 for cheap draftsIf the user says “highest quality”:
hitem3dv2.0 + 1536scene-portraitv2.1 + 1536proStop and ask the user to set HITEM3D_AK and HITEM3D_SK.
Reject unsupported formats and files larger than 20MB before calling the API.
Tell the user credentials are invalid or expired. Do not keep retrying.
If API error is 50010001, tell the user the image likely could not be parsed and credits should be refunded automatically.
The script auto-fetches tokens. Retry once if a token-related request fails.
If the returned download URL has expired, re-query task status to fetch a fresh URL before declaring failure.
If the user labels images as multi-view but the set is missing the front view, warn that Hitem3D expects the front view and that results may fail or degrade.
If the result URL expired, re-query task status to obtain a fresh result URL if available, then download again.
Reject obviously bad combos before calling the API, especially:
2 with hitem3dv2.0