Remesh API
Remesh API låter dig remesha 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 information om hur du använder Remesh API.
Create a Remesh Task
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 parametrarna nedan kommer fortsätta att fungera, men vi rekommenderar de nya endpointarna för nya integrationer.
Parametrar
Endast en av input_task_id eller model_url krävs. 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 remesha. Denna uppgift måste vara en av följande uppgiftstyper: 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 remesha via en publikt tillgänglig URL eller data-URI. Format som stöds:
.glb,.gltf,.obj,.fbx,.stl.För Data URI, använd MIME type:
application/octet-stream.
- Name
- target_formats
- Type
- string[]
- standard ["glb"]
- Description
En lista med målformat för den remeshade modellen. Om detta 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: Genererar ett nät som domineras av quads.triangle: Genererar 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å geometrins 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 polygonantal-nivå. När detta är satt 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 du istället använder den dedikerade Resize API.
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 dess bounding box motsvarar det angivna värdet i meter. Vi rekommenderar att du istället använder den dedikerade Resize API.
auto_size,resize_heightochresize_longest_sideär ömsesidigt uteslutande.
- Name
- auto_size
- Type
- boolean
- ⚠ föråldrad
- standard false
- Description
När detta sätts till
trueanvänder tjänsten AI-baserad synanalys för att automatiskt uppskatta objektets verkliga höjd och ändra storlek på modellen därefter. Vi rekommenderar att du istället använder den dedikerade Resize API.auto_size,resize_heightochresize_longest_sideär ömsesidigt uteslutande.
auto_size = true- Name
- origin_at
- Type
- string
- ⚠ föråldrad
- standard bottom
- Description
Origos position. Vi rekommenderar att du istället använder den dedikerade Resize API.
Tillgängliga värden:
bottom,center.
- Name
- convert_format_only
- Type
- boolean
- ⚠ föråldrad
- Description
Om
truekommer tjänsten endast att ändra format på indatamodellens fil och ignorera andra indata somtopology,resize_heightochtarget_polycount. Vi rekommenderar att du istället använder den dedikerade Convert API.target_formatsmåste anges omconvert_format_onlyär satt tilltrue.
- Name
- alpha_thumbnail
- Type
- boolean
- standard false
- Description
När detta sätts till
truerenderar uppgiften dessutom en version av förhandsgranskningen med transparent bakgrund (RGBA) och returnerar den somalpha_thumbnail_urli GET-svaret. Det befintliga fältetthumbnail_urlförblir oförändrat.
Returvärden
Svarets result-egenskap innehåller id för den nyskapade remesh-uppgiften.
Felorsaker
- Name
400 - Bad Request- Description
Begäran kunde inte accepteras. Vanliga orsaker:
- Saknad parameter: Antingen
model_urlellerinput_task_idmåste anges. - Ogiltig indatauppgift:
input_task_idmåste referera till en lyckad uppgift från en modell som stöds. - Ogiltigt modellformat:
model_urlpekar på en fil med en filändelse som inte stöds. - Onåbar URL:
model_urlkunde inte hämtas. - Ogiltig topology: Parametern
topologyär ogiltig. - Ömsesidigt uteslutande parametrar:
auto_sizeochresize_heightkan inte anges samtidigt.
- Saknad parameter: Antingen
- Name
401 - Unauthorized- Description
Autentiseringen 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 baserat på dess ID.
Parametrar
- Name
- id
- Type
- path
- Description
ID:t för den remesh-uppgift som ska hämtas.
Returnerar
Remesh Task-objektet.
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 tillhörande modeller och data. Denna åtgärd är irreversibel.
Sökvägsparametrar
- Name
- id
- Type
- path
- Description
ID:t för den remesh-uppgift som ska tas bort.
Returnerar
Returnerar 200 OK vid lyckad borttagning.
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 gör det möjligt att hämta en lista med 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. Maximalt tillåtet ä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 med The Remesh Task Objects.
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 hjälp av Server-Sent Events (SSE).
Parametrar
- Name
- id
- Type
- path
- Description
Unik identifierare för den Remesh-uppgift som ska strömmas.
Returnerar
Returnerar en ström av The Remesh Task Objects som Server-Sent Events.
För uppgifter med status PENDING eller IN_PROGRESS kommer svarsströmmen endast att innehålla 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 remesha och exportera en befintlig 3D-modell till olika format. Objektet har följande egenskaper:
Egenskaper
- Name
- id
- Type
- string
- Description
Unik identifierare för uppgiften. Även om vi använder en k-sorterbar UUID för uppgifts-id som implementationsdetalj, bör du inte göra några antaganden om formatet på id:t.
- Name
- type
- Type
- string
- Description
Typ av Remesh-uppgift. 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, istä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 med när
3mfbegärdes viatarget_formats.
- Name
- thumbnail_url
- Type
- string
- Description
Nedladdningsbar URL till en förhandsgranskningsbild renderad från den remeshade modellen.
- Name
- alpha_thumbnail_url
- Type
- string
- Description
Nedladdningsbar URL till en version av
thumbnail_urlmed transparent bakgrund (RGBA). Finns endast med när uppgiften skapades medalpha_thumbnail: trueoch den transparenta förhandsgranskningen renderades framgångsrikt; annars utelämnas detta fält.
- Name
- progress
- Type
- integer
- Description
Progress för uppgiften. Om uppgiften inte har startat än är denna egenskap
0. När uppgiften har lyckats blir den100.
- Name
- status
- Type
- string
- Description
Status för uppgiften. 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 på detta fält är endast meningsfullt om uppgiftens status är
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Tidsstämpel för när uppgiften skapades, i millisekunder.
- Name
- started_at
- Type
- timestamp
- Description
Tidsstämpel för när uppgiften startades, i millisekunder. Om uppgiften inte har startat än är denna egenskap
0.
- Name
- finished_at
- Type
- timestamp
- Description
Tidsstämpel för när uppgiften avslutades, i millisekunder. Om uppgiften inte är klar än är denna egenskap
0.
- Name
- task_error
- Type
- object
- Description
Feldetaljer för misslyckade uppgifter. Se Fel för hela referensen för
task_error-objektet.
- Name
- consumed_credits
- Type
- integer
- Description
Antalet credits som förbrukats av denna uppgift. Finns med när uppgiftens status är
PENDING,IN_PROGRESS, ellerSUCCEEDED. Returnerar0förFAILED-uppgifter (credits återbetalas vid misslyckande).
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
}