Remesh API
Remesh-API:et låter dig utföra Remesh på och exportera befintliga 3D-modeller som genererats av andra Meshy-API:er (som Bild till 3D eller Text till 3D) till olika format. Det här avsnittet ger detaljer om hur du använder Remesh-API:et.
Skapa en Remesh-uppgift
Denna endpoint skapar en ny Remesh-uppgift.
För formatkonvertering och storleksändring, använd de dedikerade Convert API och Resize API. De föråldrade (deprecated) parametrarna nedan kommer att fortsätta fungera, men vi rekommenderar de nya endpoint för nya integrationer.
Parametrar
Endast en av input_task_id eller model_url är obligatorisk. Om båda anges har input_task_id prioritet.
- Name
- input_task_id
- Type
- string
- Obligatorisk
- Description
ID:t för den slutförda Bild till 3D- eller Text till 3D-uppgift som du vill utföra remesh på. Denna uppgift måste vara en av följande uppgifter: Text till 3D Preview, Text till 3D Refine, Bild till 3D eller Omtexturering. Dessutom måste den ha statusen
SUCCEEDED.
- Name
- model_url
- Type
- string
- Obligatorisk
- Description
Ange en 3D-modell som Meshy ska utföra remesh på via en offentligt åtkomlig URL eller Data URI. Format som stöds:
.glb,.gltf,.obj,.fbx,.stl.För Data URI:er, använd MIME type:
application/octet-stream.
- Name
- target_formats
- Type
- string[]
- standard ["glb"]
- Description
En lista över målformat för den remeshade modellen. Om den utelämnas genereras endast GLB.
Tillgängliga värden:
glb,fbx,obj,usdz,blend,stl,3mf.
- Name
- topology
- Type
- string
- standard triangle
- Description
Ange topology för den genererade modellen.
Tillgängliga värden:
quad: Generera ett quad-dominerat nät.triangle: Generera ett decimerat triangelnät.
- Name
- target_polycount
- Type
- integer
- standard 30,000
- Description
Ange målantalet polygoner i den genererade modellen. Det faktiska antalet polygoner kan avvika från målet beroende på geometriens komplexitet.
Det giltiga värdeintervallet varierar beroende på användarnivå:
- 100 till 300 000 (inklusive)
- Name
- decimation_mode
- Type
- integer
- Description
Aktivera adaptiv decimering genom att ange en nivå för polygonantal. När den anges ignoreras
target_polycount.Tillgängliga värden:
1: Adaptiv — ultrahögt polygonantal.2: Adaptiv — högt polygonantal.3: Adaptiv — medelhögt polygonantal.4: Adaptiv — lågt polygonantal.
- Name
- resize_height
- Type
- number
- ⚠ föråldrad
- standard 0
- Description
Ändra storlek på modellen till en viss höjd mätt i meter. Vi rekommenderar att använda den dedikerade Resize API istället.
auto_size,resize_heightochresize_longest_sideär ömsesidigt uteslutande.
- Name
- resize_longest_side
- Type
- number
- ⚠ föråldrad
- standard 0
- Description
Ändra storlek på modellen så att den längsta dimensionen i bounding box motsvarar det angivna värdet i meter. Vi rekommenderar att använda den dedikerade Resize API istället.
auto_size,resize_heightochresize_longest_sideär ömsesidigt uteslutande.
- Name
- auto_size
- Type
- boolean
- ⚠ föråldrad
- standard false
- Description
När den är satt till
trueanvänder tjänsten AI-vision för att automatiskt uppskatta objektets verkliga höjd och ändra storlek på modellen därefter. Vi rekommenderar att använda den dedikerade Resize API istället.auto_size,resize_heightochresize_longest_sideär ömsesidigt uteslutande.
auto_size = true- Name
- origin_at
- Type
- string
- ⚠ föråldrad
- standard bottom
- Description
Position för origo. Vi rekommenderar att använda den dedikerade Resize API istället.
Tillgängliga värden:
bottom,center.
- Name
- convert_format_only
- Type
- boolean
- ⚠ föråldrad
- Description
Om
truekommer tjänsten endast att ändra formatet på inmatningsmodellfilen och ignorera andra indata somtopology,resize_heightochtarget_polycount. Vi rekommenderar att använda den dedikerade Convert API istället.target_formatsmåste anges omconvert_format_onlyär satt tilltrue.
- Name
- alpha_thumbnail
- Type
- boolean
- standard false
- Description
När den är satt till
truerenderar uppgiften dessutom en version av förhandsvisningen med transparent bakgrund (RGBA) och returnerar den somalpha_thumbnail_urli GET-svaret. Det befintliga fältetthumbnail_urlär oförändrat.
Returnerar
Egenskapen result i svaret innehåller id för den nyligen skapade Remesh-uppgiften.
Fellägen
- Name
400 - Bad Request- Description
Begäran var oacceptabel. Vanliga orsaker:
- Saknad parameter: Antingen
model_urlellerinput_task_idmåste anges. - Ogiltig inmatningsuppgift:
input_task_idmåste hänvisa till en lyckad uppgift från en modell som stöds. - Ogiltigt modellformat:
model_urlpekar på en fil med ett tillägg som inte stöds. - Oåtkomlig URL:
model_urlkunde inte laddas ned. - Ogiltig topology: Parametern
topologyär ogiltig. - Ömsesidigt uteslutande parametrar:
auto_sizeochresize_heightkan inte båda anges.
- Saknad parameter: Antingen
- Name
401 - Unauthorized- Description
Autentisering misslyckades. Kontrollera din API-nyckel.
- Name
402 - Payment Required- Description
Otillräckligt med credits för att utföra denna uppgift.
- Name
429 - Too Many Requests- Description
Du har överskridit din hastighetsgräns.
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"
}
Hämta en Remesh-uppgift
Denna endpoint hämtar en remesh-uppgift via dess ID.
Parametrar
- Name
- id
- Type
- path
- Description
ID:t för remesh-uppgiften som ska hämtas.
Returnerar
Remesh-uppgiftsobjektet.
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,
}
Ta bort en Remesh-uppgift
Denna endpoint tar permanent bort en Remesh-uppgift, inklusive alla associerade modeller och data. Denna åtgärd kan inte ångras.
Sökvägsparametrar
- Name
- id
- Type
- path
- Description
ID:t för Remesh-uppgiften som ska tas bort.
Returer
Returnerar 200 OK vid framgång.
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.
Lista Remesh-uppgifter
Denna endpoint låter dig hämta en lista över Remesh-uppgifter.
Parametrar
- Name
- page_num
- Type
- integer
- standard 1
- Description
Sidnummer för paginering.
- Name
- page_size
- Type
- integer
- standard 10
- Description
Gräns för sidstorlek. Högsta tillåtna är
50objekt.
- Name
- sort_by
- Type
- string
- Description
Fält att sortera efter.
Tillgängliga värden:
+created_at: Sortera efter skapandetid i stigande ordning.-created_at: Sortera efter skapandetid i fallande ordning.
Returnerar
Returnerar en paginerad lista över Remesh-uppgiftsobjekten.
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
}
]
Strömma en Remesh-uppgift
Denna endpoint strömmar realtidsuppdateringar för en Remesh-uppgift med Server-Sent Events (SSE).
Parametrar
- Name
- id
- Type
- path
- Description
Unik identifierare för Remesh-uppgiften som ska strömmas.
Returnerar
Returnerar en ström av Remesh-uppgiftsobjekten som Server-Sent Events.
För uppgifter med PENDING eller IN_PROGRESS kommer svarsströmmen endast att inkludera nödvändiga fält för progress och 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,
}
Remesh-uppgiftsobjektet
Remesh-uppgiftsobjektet representerar en arbetsenhet som Meshy använder för att utföra Remesh på och exportera en befintlig 3D-modell till olika format. Objektet har följande egenskaper:
Properties
- Name
- id
- Type
- string
- Description
Unik identifierare för uppgiften. Även om vi använder ett k-sorterbart UUID för uppgifts-id:n som implementeringsdetalj bör du inte göra några antaganden om id:ts format.
- Name
- type
- Type
- string
- Description
Typ av Remesh-uppgiften. Värdet är
remesh.
- Name
- model_urls
- Type
- object
- Description
Nedladdningsbar URL till den texturerade 3D-modellfilen som genererats av Meshy. Egenskapen för ett format utelämnas om formatet inte genereras, i stället för att returnera en tom sträng.
- Name
glb- Type
- string
- Description
Nedladdningsbar URL till GLB-filen.
- Name
fbx- Type
- string
- Description
Nedladdningsbar URL till FBX-filen.
- Name
obj- Type
- string
- Description
Nedladdningsbar URL till OBJ-filen.
- Name
usdz- Type
- string
- Description
Nedladdningsbar URL till USDZ-filen.
- Name
blend- Type
- string
- Description
Nedladdningsbar URL till Blender-filen.
- Name
stl- Type
- string
- Description
Nedladdningsbar URL till STL-filen.
- Name
3mf- Type
- string
- Description
Nedladdningsbar URL till 3MF-filen. Finns endast när
3mfbegärdes viatarget_formats.
- Name
- thumbnail_url
- Type
- string
- Description
Nedladdningsbar URL till en förhandsvisningsbild som renderats från den omnätade modellen.
- Name
- alpha_thumbnail_url
- Type
- string
- Description
Nedladdningsbar URL till en version med transparent bakgrund (RGBA) av
thumbnail_url. Finns endast när uppgiften skapades medalpha_thumbnail: trueoch den transparenta förhandsvisningen renderades framgångsrikt; annars utelämnas detta fält.
- Name
- progress
- Type
- integer
- Description
Uppgiftens progress. Om uppgiften inte har startats ännu är den här egenskapen
0. När uppgiften har slutförts framgångsrikt blir den100.
- Name
- status
- Type
- string
- Description
Uppgiftens status. Möjliga värden är ett av
PENDING,IN_PROGRESS,SUCCEEDED,FAILED.
- Name
- preceding_tasks
- Type
- integer
- Description
Antalet föregående uppgifter.
Värdet för detta fält är meningsfullt endast om uppgiftens status är
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
En tidsstämpel för när uppgiften skapades, i millisekunder.
- Name
- started_at
- Type
- timestamp
- Description
En tidsstämpel för när uppgiften startades, i millisekunder. Om uppgiften inte har startats ännu är den här egenskapen
0.
- Name
- finished_at
- Type
- timestamp
- Description
En tidsstämpel för när uppgiften slutfördes, i millisekunder. Om uppgiften inte är slutförd ännu är den här egenskapen
0.
- Name
- task_error
- Type
- object
- Description
Felinformation för misslyckade uppgifter. Se Fel för den fullständiga objektreferensen för
task_error.
- Name
- consumed_credits
- Type
- integer
- Description
Antalet credits som förbrukats av den här uppgiften. Finns när uppgiftens status är
PENDING,IN_PROGRESSellerSUCCEEDED. Returnerar0förFAILED-uppgifter (credits återbetalas vid fel).
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
}