Remesh API
Pinapayagan ka ng Remesh API na mag-Remesh at mag-export ng mga umiiral na 3D model na nabuo ng ibang Meshy API (tulad ng Image to 3D o Text to 3D) sa iba't ibang format. Nagbibigay ang seksyong ito ng mga detalye kung paano gamitin ang Remesh API.
Gumawa ng Remesh Task
Gumagawa ang endpoint na ito ng bagong Remesh task.
Para sa pag-convert ng format at pag-resize, gamitin ang nakalaang I-convert API at Resize API. Patuloy na gagana ang mga deprecated na parameter sa ibaba, ngunit inirerekomenda namin ang mga bagong endpoint para sa mga bagong integration.
Mga Parameter
Isa lang sa input_task_id o model_url ang required. Kung pareho ang ibinigay, mas may priority ang input_task_id.
- Name
- input_task_id
- Type
- string
- Kinakailangan
- Description
Ang ID ng nakumpletong Image to 3D o Text to 3D task na nais mong i-remesh. Ang task na ito ay dapat isa sa mga sumusunod na task: Text to 3D Preview, Text to 3D Refine, Image to 3D o Retexture. Bukod dito, dapat ay mayroon itong status na
SUCCEEDED.
- Name
- model_url
- Type
- string
- Kinakailangan
- Description
Mangyaring magbigay ng 3D model para i-remesh ng Meshy sa pamamagitan ng publicly accessible URL o data URI. Mga suportadong format:
.glb,.gltf,.obj,.fbx,.stl.Para sa mga Data URI, gamitin ang MIME type:
application/octet-stream.
- Name
- target_formats
- Type
- string[]
- default ["glb"]
- Description
Isang listahan ng mga target format para sa na-remesh na model. Kapag hindi inilagay, GLB lang ang gagawin.
Mga available na value:
glb,fbx,obj,usdz,blend,stl,3mf.
- Name
- topology
- Type
- string
- default triangle
- Description
Tukuyin ang topology ng generated model.
Mga available na value:
quad: Gumawa ng quad-dominant na mesh.triangle: Gumawa ng decimated na triangle mesh.
- Name
- target_polycount
- Type
- integer
- default 30,000
- Description
Tukuyin ang target na bilang ng mga polygon sa generated model. Maaaring lumihis ang aktuwal na bilang ng mga polygon mula sa target depende sa complexity ng heometriya.
Nag-iiba ang valid na value range depende sa user tier:
- 100 hanggang 300,000 (kasama)
- Name
- decimation_mode
- Type
- integer
- Description
I-enable ang adaptive decimation sa pamamagitan ng pagtatakda ng polycount level. Kapag itinakda, binabalewala ang
target_polycount.Mga available na value:
1: Adaptive — ultra polycount.2: Adaptive — high polycount.3: Adaptive — medium polycount.4: Adaptive — low polycount.
- Name
- resize_height
- Type
- number
- ⚠ lipas na
- default 0
- Description
I-resize ang model sa isang partikular na taas na sinusukat sa metro. Inirerekomenda naming gamitin na lang ang nakalaang Resize API.
Ang
auto_size,resize_height, atresize_longest_sideay mutually exclusive.
- Name
- resize_longest_side
- Type
- number
- ⚠ lipas na
- default 0
- Description
I-resize ang model upang ang pinakamahabang bounding-box dimension ay maging katumbas ng tinukoy na value sa metro. Inirerekomenda naming gamitin na lang ang nakalaang Resize API.
Ang
auto_size,resize_height, atresize_longest_sideay mutually exclusive.
- Name
- auto_size
- Type
- boolean
- ⚠ lipas na
- default false
- Description
Kapag itinakda sa
true, gumagamit ang serbisyo ng AI vision upang awtomatikong tantiyahin ang real-world na taas ng object at i-resize ang model nang naaayon. Inirerekomenda naming gamitin na lang ang nakalaang Resize API.Ang
auto_size,resize_height, atresize_longest_sideay mutually exclusive.
auto_size = true- Name
- origin_at
- Type
- string
- ⚠ lipas na
- default bottom
- Description
Posisyon ng origin. Inirerekomenda naming gamitin na lang ang nakalaang Resize API.
Mga available na value:
bottom,center.
- Name
- convert_format_only
- Type
- boolean
- ⚠ lipas na
- Description
Kung
true, babaguhin lang ng serbisyo ang format ng input model file, at babalewalain ang iba pang input tulad ngtopology,resize_height, attarget_polycount. Inirerekomenda naming gamitin na lang ang nakalaang I-convert API.Dapat ibigay ang
target_formatskung angconvert_format_onlyay nakatakda satrue.
- Name
- alpha_thumbnail
- Type
- boolean
- default false
- Description
Kapag itinakda sa
true, bukod pa rito ay nagre-render ang task ng transparent-background (RGBA) na bersyon ng preview at ibinabalik ito bilangalpha_thumbnail_urlsa GET response. Hindi nababago ang kasalukuyangthumbnail_urlfield.
Mga Ibinabalik
Ang result property ng response ay naglalaman ng id ng bagong gawang remesh task.
Mga Failure Mode
- Name
400 - Bad Request- Description
Hindi katanggap-tanggap ang request. Mga karaniwang sanhi:
- Nawawalang parameter: Dapat ibigay ang alinman sa
model_urloinput_task_id. - Invalid na input task: Dapat tumukoy ang
input_task_idsa isang successful na task mula sa suportadong model. - Invalid na model format: Ang
model_urlay tumuturo sa file na may hindi suportadong extension. - Hindi maabot na URL: Hindi ma-download ang
model_url. - Invalid na topology: Invalid ang
topologyparameter. - Mutually exclusive na mga parameter: Hindi maaaring parehong nakatakda ang
auto_sizeatresize_height.
- Nawawalang parameter: Dapat ibigay ang alinman sa
- Name
401 - Unauthorized- Description
Nabigo ang authentication. Pakisuri ang iyong API key.
- Name
402 - Payment Required- Description
Hindi sapat ang credits upang maisagawa ang task na ito.
- Name
429 - Too Many Requests- Description
Lumampas ka na sa iyong rate limit.
Request
# Basic remesh with custom formats and resize
curl https://api.meshy.ai/openapi/v1/remesh \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"target_formats": ["glb", "fbx"],
"topology": "quad",
"target_polycount": 50000,
"resize_height": 1.0,
"origin_at": "bottom"
}'
# Quad remesh with auto-size
curl https://api.meshy.ai/openapi/v1/remesh \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"target_formats": ["glb", "fbx"],
"topology": "quad",
"target_polycount": 50000,
"auto_size": true
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Kunin ang isang Remesh Task
Kinukuha ng endpoint na ito ang isang remesh task gamit ang ID nito.
Mga Parameter
- Name
- id
- Type
- path
- Description
Ang ID ng remesh task na kukunin.
Mga Ibinabalik
Ang object na Remesh Task.
Request
curl https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "remesh",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
"usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
"blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
}
Magtanggal ng Gawain sa Remesh
Permanenteng tinatanggal ng endpoint na ito ang isang gawain sa Remesh, kasama ang lahat ng kaugnay na mga modelo at data. Hindi na maibabalik ang aksyong ito.
Mga Parameter ng Path
- Name
- id
- Type
- path
- Description
Ang ID ng gawain sa Remesh na tatanggalin.
Mga Ibinabalik
Nagbabalik ng 200 OK kapag matagumpay.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// Returns 200 Ok on success.
Ilista ang mga Remesh Task
Pinapayagan ka ng endpoint na ito na kunin ang listahan ng mga Remesh task.
Mga Parameter
- Name
- page_num
- Type
- integer
- default 1
- Description
Numero ng page para sa pagination.
- Name
- page_size
- Type
- integer
- default 10
- Description
Limitasyon sa laki ng page. Ang pinakamataas na pinapayagan ay
50item.
- Name
- sort_by
- Type
- string
- Description
Field na pagbabatayan ng pag-uuri.
Mga available na value:
+created_at: Pag-uri-uriin ayon sa oras ng paggawa sa pataas na ayos.-created_at: Pag-uri-uriin ayon sa oras ng paggawa sa pababang ayos.
Mga Ibinabalik
Nagbabalik ng naka-pagination na listahan ng Mga Remesh Task Object.
Request
curl https://api.meshy.ai/openapi/v1/remesh?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "remesh",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
"usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
"blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null
}
]
Mag-stream ng Remesh Task
Ang endpoint na ito ay nag-stream ng real-time na mga update para sa isang Remesh task gamit ang Server-Sent Events (SSE).
Mga Parameter
- Name
- id
- Type
- path
- Description
Natatanging identifier para sa Remesh task na i-stream.
Mga Ibinabalik
Nagbabalik ng stream ng Mga Object ng Remesh Task bilang Server-Sent Events.
Para sa mga task na PENDING o IN_PROGRESS, isasama lamang ng response stream ang kinakailangang mga field na progress at status.
Request
curl -N https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response Stream
// Error event example
event: error
data: {
"status_code": 404,
"message": "Task not found"
}
// Message event examples illustrate task progress.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "remesh",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
"usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
"blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
},
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": null,
}
Ang Remesh Task Object
Ang Remesh Task object ay kumakatawan sa isang work unit na ginagamit ng Meshy para mag-Remesh at mag-export ng umiiral na modelong 3D sa iba't ibang format. Ang object ay may mga sumusunod na property:
Mga Property
- Name
- id
- Type
- string
- Description
Natatanging identifier para sa task. Bagama't gumagamit kami ng k-sortable UUID para sa mga task id bilang detalye ng implementasyon, hindi ka dapat gumawa ng anumang palagay tungkol sa format ng id.
- Name
- type
- Type
- string
- Description
Uri ng Remesh task. Ang value ay
remesh.
- Name
- model_urls
- Type
- object
- Description
Nada-download na URL papunta sa may texture na 3D model file na binuo ng Meshy. Aalisin ang property para sa isang format kung hindi nabuo ang format, sa halip na magbalik ng empty string.
- Name
glb- Type
- string
- Description
Nada-download na URL papunta sa GLB file.
- Name
fbx- Type
- string
- Description
Nada-download na URL papunta sa FBX file.
- Name
obj- Type
- string
- Description
Nada-download na URL papunta sa OBJ file.
- Name
usdz- Type
- string
- Description
Nada-download na URL papunta sa USDZ file.
- Name
blend- Type
- string
- Description
Nada-download na URL papunta sa Blender file.
- Name
stl- Type
- string
- Description
Nada-download na URL papunta sa STL file.
- Name
3mf- Type
- string
- Description
Nada-download na URL papunta sa 3MF file. Naroon lamang kapag hiniling ang
3mfsa pamamagitan ngtarget_formats.
- Name
- thumbnail_url
- Type
- string
- Description
Nada-download na URL papunta sa preview image na ni-render mula sa na-remesh na model.
- Name
- alpha_thumbnail_url
- Type
- string
- Description
Nada-download na URL papunta sa bersyong may transparent na background (RGBA) ng
thumbnail_url. Naroon lamang kapag ginawa ang task gamit angalpha_thumbnail: trueat matagumpay na na-render ang transparent preview; kung hindi, aalisin ang field na ito.
- Name
- progress
- Type
- integer
- Description
Progress ng task. Kung hindi pa nasisimulan ang task, magiging
0ang property na ito. Kapag matagumpay na ang task, magiging100ito.
- Name
- status
- Type
- string
- Description
Status ng task. Ang mga posibleng value ay isa sa
PENDING,IN_PROGRESS,SUCCEEDED,FAILED.
- Name
- preceding_tasks
- Type
- integer
- Description
Ang bilang ng mga nauunang task.
Makabuluhan lamang ang value ng field na ito kung ang task status ay
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Timestamp kung kailan ginawa ang task, sa milliseconds.
- Name
- started_at
- Type
- timestamp
- Description
Timestamp kung kailan sinimulan ang task, sa milliseconds. Kung hindi pa nasisimulan ang task, magiging
0ang property na ito.
- Name
- finished_at
- Type
- timestamp
- Description
Timestamp kung kailan natapos ang task, sa milliseconds. Kung hindi pa tapos ang task, magiging
0ang property na ito.
- Name
- task_error
- Type
- object
- Description
Mga detalye ng error para sa mga bigong task. Tingnan ang Errors para sa buong
task_errorobject reference.
- Name
- consumed_credits
- Type
- integer
- Description
Ang bilang ng credits na nagamit ng task na ito. Naroon kapag ang task status ay
PENDING,IN_PROGRESS, oSUCCEEDED. Nagbabalik ng0para sa mgaFAILEDtask (ibinabalik ang credits kapag nabigo).
Example Remesh Task Object
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "remesh",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"fbx": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.fbx?Expires=***",
"obj": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***",
"usdz": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.usdz?Expires=***",
"blend": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.blend?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.stl?Expires=***"
},
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000001000,
"task_error": {
"message": ""
},
"consumed_credits": 5
}