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.
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 parametrarna nedan fortsätter att fungera, men vi rekommenderar de nya endpointerna 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-uppgiften du vill remescha. 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 för Meshy att remescha via en publikt tillgänglig URL eller data URI. Format som stöds:
.glb,.gltf,.obj,.fbx,.stl.För Data URIs, använd MIME type:
application/octet-stream.
- Name
- target_formats
- Type
- string[]
- standard ["glb"]
- Description
En lista med målformat för den remeschade 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 topologin 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 den är inställd 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 det 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 av bounding-boxen motsvarar det angivna värdet i meter. Vi rekommenderar att du istället använder det 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 är satt till
trueanvänder tjänsten AI-syn för att automatiskt uppskatta objektets verkliga höjd och ändra modellens storlek därefter. Vi rekommenderar att du istället använder det 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 det 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 formatet på den inmatade modellfilen och ignorera andra indata somtopology,resize_heightochtarget_polycount. Vi rekommenderar att du istället använder det dedikerade Convert API.target_formatsmåste anges omconvert_format_onlyär satt tilltrue.
- Name
- alpha_thumbnail
- Type
- boolean
- standard false
- Description
När detta är satt 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.
Returnerar
Svarets result-egenskap innehåller id för den nyskapade remesh-uppgiften.
Felscenarier
- Name
400 - Bad Request- Description
Begäran var oacceptabel. Vanliga orsaker:
- Saknad parameter: Antingen
model_urlellerinput_task_idmåste anges. - Ogiltig ingångsuppgift:
input_task_idmåste referera till en lyckad uppgift från en modell som stöds. - Ogiltigt modellformat:
model_urlpekar på en fil med ett filtillägg som inte stöds. - Onåbar URL:
model_urlkunde inte laddas ner. - Ogiltig topology: Parametern
topologyär ogiltig. - Ömsesidigt uteslutande parametrar:
auto_sizeochresize_heightkan inte vara satta samtidigt.
- 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 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 oåterkallelig.
Sökvägsparametrar
- Name
- id
- Type
- path
- Description
ID:t för remesh-uppgiften som ska tas bort.
Uppgiftsstatus
En uppgift som fortfarande är PENDING tas bort och de credits som
förbrukades vid skapandet återbetalas.
En uppgift som redan är IN_PROGRESS kan inte tas bort: förfrågan
avvisas med 409 Conflict och uppgiften fortsätter att köras. Credits för en uppgift
som arbetaren redan har påbörjat kan inte återbetalas, så att ta bort den mitt i körningen
skulle kosta dig både credits och resultatet. Vänta tills den når
SUCCEEDED, FAILED eller CANCELED, och ta sedan bort den.
En uppgift i ett sluttillstånd (SUCCEEDED, FAILED eller CANCELED) tas bort
utan återbetalning.
Returer
Returnerar 200 OK vid lyckad borttagning, eller 409 Conflict när uppgiften är
IN_PROGRESS.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS — the task is left running:
{
"message": "Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."
}
Lista Remesh-uppgifter
Denna endpoint låter dig 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
100objekt.
- 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 Remesh-uppgiftsobjekt.
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
}
]
Streama en Remesh-uppgift
Denna endpoint streamar 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 streamas.
Returer
Returnerar en ström av 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:n 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 har genererats, 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örhandsvisningsbild 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örhandsvisningen renderades framgångsrikt; annars utelämnas detta fält.
- Name
- progress
- Type
- integer
- Description
Uppgiftens progress. Om uppgiften ännu inte har påbörjats är denna egenskap
0. När uppgiften har lyckats 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 i 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 ännu inte har startats är denna egenskap
0.
- Name
- finished_at
- Type
- timestamp
- Description
Tidsstämpel för när uppgiften avslutades, i millisekunder. Om uppgiften ännu inte är avslutad är denna egenskap
0.
- Name
- task_error
- Type
- object
- Description
Feldetaljer för misslyckade uppgifter. Se Fel för den fullständiga referensen till
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_PROGRESSellerSUCCEEDED. Returnerar0för uppgifter medFAILED(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
}