## Basic tool info Model name: tencent/HY-World-2.0-World-Reconstruction Model description: Reconstruct a 3D scene from multi-view photos or a short video. Produces 3D Gaussian splats with depth maps and cameras, plus a colored point cloud. Model cover: https://cdn.wiro.ai/uploads/models/tencent-hy-world-2-0-world-reconstruction-cover.mp4 Model categories: - persistent - 3d-generation - price-list - model Run Task Endpoint (POST): https://api.wiro.ai/v1/Run/tencent/hy-world-2-0-world-reconstruction Get Task Detail Endpoint (POST): https://api.wiro.ai/v1/Task/Detail ## Model Inputs: - name: inputImage label: Input Image help: Image files for multi-view 3D reconstruction. Supported formats: .jpg, .jpeg, .png, .webp. Ignored if video is also provided. type: combinefileinput default: tencent-hy-world-2-0-world-reconstruction-input-1-1.jpg,tencent-hy-world-2-0-world-reconstruction-input-1-2.jpg - name: targetSize label: Target Size help: Maximum inference resolution along the longest image edge. type: number default: 952 - name: inputVideo label: Input Video help: Video file for video-based 3D reconstruction. Supported formats: .mp4, .avi, .mov, .webm, .gif. Takes priority over image. When both are set, video is used and image is ignored. type: combinefileinput default: - name: fps label: FPS help: Frames per second to extract when input is a video and videoStrategy set to old. Higher FPS yields more frames per second of source video. type: number default: 1 - name: videoStrategy label: Video Strategy help: Frame extraction strategy for video inputs. new = motion-aware (skips static frames), old = uniform sampling at the requested FPS. type: select default: new options: - value: "new" label: New - value: "old" label: Old - name: videoMinFrames label: Video Min Frames help: Minimum number of frames to extract from a video input. Must be ≤ videoMaxFrames. type: number default: 1 - name: videoMaxFrames label: Video Max Frames help: Maximum number of frames to extract from a video input. type: number default: 32 - name: applySkyMask label: Apply Sky Mask help: When true, sky regions are filtered out of the Gaussian splats. Recommended for outdoor scenes; can be disabled for indoor scenes. type: select default: true options: - value: "true" label: True - value: "false" label: False - name: applyEdgeMask label: Apply Edge Mask help: When true, points at depth/normal discontinuities (object edges) are filtered out for cleaner geometry. type: select default: true options: - value: "true" label: True - value: "false" label: False - name: applyConfidenceMask label: Apply Confidence Mask help: When true, the bottom 10% of points by model confidence are removed. Useful for very noisy inputs. type: select default: false options: - value: "true" label: True - value: "false" label: False - name: skyMaskSource label: Sky Mask Source help: Sky mask method. auto = ONNX + model fusion (strictest), model = WorldMirror 2.0's internal depth_mask only (no ONNX needed), onnx = skyseg.onnx alone. type: select default: auto options: - value: "auto" label: Auto - value: "model" label: Model - value: "onnx" label: Onnx - name: saveVideo label: Save Video help: When true, renders a fly-through preview video from the generated 3D Gaussian Splats. type: select default: true options: - value: "true" label: True - value: "false" label: False ## Model Parameter Inspires: - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-1-1.jpg,https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-1-2.jpg - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-2-1.jpg,https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-2-2.jpg,https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-2-3.jpg,https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-2-4.jpg,https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-2-5.jpg,https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-2-6.jpg,https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-2-7.jpg,https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-2-8.jpg,https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-2-9.jpg,https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-2-10.jpg,https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-2-11.jpg - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-3-1.jpg,https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-3-2.jpg,https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-3-3.jpg,https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-3-4.jpg - inputImage: https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-4-1.jpg,https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-4-2.jpg,https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-4-3.jpg,https://cdn.wiro.ai/uploads/sampleinputs/tencent-hy-world-2-0-world-reconstruction-input-4-4.jpg ## Integration Header Prepare ```bash # Sign up Wiro dashboard and create project export YOUR_API_KEY="{{useSelectedProjectAPIKey}}"; export YOUR_API_SECRET="XXXXXXXXX"; # unix time or any random integer value export NONCE=$(date +%s); # hmac-SHA256 (YOUR_API_SECRET+Nonce) with YOUR_API_KEY export SIGNATURE="$(echo -n "${YOUR_API_SECRET}${NONCE}" | openssl dgst -sha256 -hmac "${YOUR_API_KEY}")"; ``` ## Run Command - Make HTTP Post Request ```bash curl -X POST "https://api.wiro.ai/v1/Run/tencent/hy-world-2-0-world-reconstruction" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "inputImage": [ "tencent-hy-world-2-0-world-reconstruction-input-1-1.jpg", "tencent-hy-world-2-0-world-reconstruction-input-1-2.jpg" ], "targetSize": 952, "inputVideo": "", "fps": 1, "videoStrategy": "new", "videoMinFrames": 1, "videoMaxFrames": 32, "applySkyMask": "true", "applyEdgeMask": "true", "applyConfidenceMask": "false", "skyMaskSource": "auto", "saveVideo": "true", "callbackUrl": "You can provide a callback URL; Wiro will send a POST request to it when the task is completed." }'; ``` ## Run Command - Response ```json { "errors": [], "taskid": "2221", "socketaccesstoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt", "result": true } ``` ## Get Task Detail - Make HTTP Post Request with Task ID ```bash curl -X POST "https://api.wiro.ai/v1/Task/Detail" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "2221" }'; ``` ## Get Task Detail - Make HTTP Post Request with Socket Access Token ```bash curl -X POST "https://api.wiro.ai/v1/Task/Detail" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "tasktoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt" }'; ``` ## Get Task Detail - Response ```json { "total": "1", "errors": [], "tasklist": [ { "id": "2221", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "socketaccesstoken": "eDcCm5yyUfIvMFspTwww49OUfgXkQt", "parameters": {}, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_postprocess_end", "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Kill Task - Make HTTP Post Request with Task ID ```bash curl -X POST "https://api.wiro.ai/v1/Task/Kill" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "534574" }'; ``` ## Kill Task - Make HTTP Post Request with Socket Access Token ```bash curl -X POST "https://api.wiro.ai/v1/Task/Kill" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE" }'; ``` ## Kill Task - Response ```json { "errors": [], "tasklist": [ { "id": "534574", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "name": "", "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE", "parameters": { "inputImage": "https://api.wiro.ai/v1/File/mCmUXgZLG1FNjjjwmbtPFr2LVJA112/inputImage-6060136.png" }, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_cancel", "cps": "0.000585000000", "totalcost": "0.003510000000", "guestid": null, "projectid": "699", "modelid": "598", "description": "", "basemodelid": "0", "runtype": "model", "modelfolderid": "", "modelfileid": "", "callbackurl": "", "marketplaceid": null, "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "pexit": "0", "categories": "["tool","image-to-image","quick-showcase","compare-landscape"]", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "foldercount": "0", "filecount": "0", "ispublic": 0, "expiretime": null, "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Cancel Task - Make HTTP Post Request (For tasks on queue) ```bash curl -X POST "https://api.wiro.ai/v1/Task/Cancel" -H "Content-Type: multipart/form-data" -H "x-api-key: ${YOUR_API_KEY}" -H "x-nonce: ${NONCE}" -H "x-signature: ${SIGNATURE}" -d '{ "taskid": "634574" }'; ``` ## Cancel Task - Response ```json { "errors": [], "tasklist": [ { "id": "634574", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "name": "", "socketaccesstoken": "ZpYote30on42O4jjHXNiKmrWAZqbRE", "parameters": { "inputImage": "https://api.wiro.ai/v1/File/mCmUXgZLG1FNjjjwmbtPFr2LVJA112/inputImage-6060136.png" }, "debugoutput": "", "debugerror": "", "starttime": "1734513809", "endtime": "1734513813", "elapsedseconds": "6.0000", "status": "task_cancel", "cps": "0.000585000000", "totalcost": "0.003510000000", "guestid": null, "projectid": "699", "modelid": "598", "description": "", "basemodelid": "0", "runtype": "model", "modelfolderid": "", "modelfileid": "", "callbackurl": "", "marketplaceid": null, "createtime": "1734513807", "canceltime": "0", "assigntime": "1734513807", "accepttime": "1734513807", "preprocessstarttime": "1734513807", "preprocessendtime": "1734513807", "postprocessstarttime": "1734513813", "postprocessendtime": "1734513814", "pexit": "0", "categories": "["tool","image-to-image","quick-showcase","compare-landscape"]", "outputs": [ { "id": "6bc392c93856dfce3a7d1b4261e15af3", "name": "0.png", "contenttype": "image/png", "parentid": "6c1833f39da71e6175bf292b18779baf", "uuid": "15bce51f-442f-4f44-a71d-13c6374a62bd", "size": "202472", "addedtime": "1734513812", "modifiedtime": "1734513812", "accesskey": "dFKlMApaSgMeHKsJyaDeKrefcHahUK", "foldercount": "0", "filecount": "0", "ispublic": 0, "expiretime": null, "url": "https://cdn1.wiro.ai/6a6af820-c5050aee-40bd7b83-a2e186c6-7f61f7da-3894e49c-fc0eeb66-9b500fe2/0.png" } ], "size": "202472" } ], "result": true } ``` ## Task Status Information This section defines the possible task status values returned by the API when polling for task completion. ### Completed Task Statuses (Polling can stop) These indicate that the task has reached a terminal state — either success or failure. Once any of these is received, polling should stop. - task_postprocess_end : Task completed successfully and post-processing is done. - task_cancel : Task was cancelled by the user or system. ### Running Task Statuses (Continue polling) These statuses indicate that the task is still in progress. Polling should continue if one of these is returned. - task_queue : Task is waiting in the queue. - task_accept : Task has been accepted for processing. - task_assign : Task is being assigned to a worker. - task_preprocess_start : Preprocessing is starting. - task_preprocess_end : Preprocessing is complete. - task_start : Task execution has started. - task_output : Output is being generated.