Remesh API
Remesh API:n 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. Denna sektion ger detaljer om hur man använder Remesh API:n.
Skapa en Remesh-uppgift
Denna endpoint skapar en ny remesh-uppgift.
För formatkonvertering och storleksändring, använd den dedikerade Convert API och Resize API. De föråldrade parametrarna nedan kommer fortsätta att fungera, men vi rekommenderar de nya endpoints för nya integrationer.
Parametrar
Endast en av input_task_id eller model_url är obligatorisk. Om båda tillhandahålls, har input_task_id prioritet.
- Name
- input_task_id
- Type
- string
- Obligatorisk
- Description
ID för den slutförda Bild till 3D eller Text till 3D-uppgiften du vill remesh. Denna uppgift måste vara en av följande uppgifter: Text till 3D Förhandsvisning, Text till 3D Förfina, Bild till 3D eller Omtexturering. Dessutom måste den ha statusen
SUCCEEDED.
- Name
- model_url
- Type
- string
- Obligatorisk
- Description
Vänligen tillhandahåll en 3D-modell för Meshy att remesh via en offentligt tillgänglig URL eller data URI. Stödda format:
.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 över målformat för den remeshade modellen. När den utelämnas genereras endast GLB.
Tillgängliga värden:
glb,fbx,obj,usdz,blend,stl,3mf.
- Name
- topology
- Type
- string
- standard triangle
- Description
Specificera topologin för den genererade modellen.
Tillgängliga värden:
quad: Generera ett quad-dominerande nät.triangle: Generera ett decimerat triangelnät.
- Name
- target_polycount
- Type
- integer
- standard 30,000
- Description
Specificera det önskade antalet polygoner i den genererade modellen. Det faktiska antalet polygoner kan avvika från målet beroende på komplexiteten i geometrin.
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 ställa in en polygonantalnivå. När den är inställd ignoreras
target_polycount.Tillgängliga värden:
1: Adaptiv — ultra polygonantal.2: Adaptiv — högt polygonantal.3: Adaptiv — medel 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_height, ochresize_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 begränsningsboxen motsvarar det angivna värdet i meter. Vi rekommenderar att använda den dedikerade Resize API istället.
auto_size,resize_height, ochresize_longest_sideär ömsesidigt uteslutande.
- Name
- auto_size
- Type
- boolean
- ⚠ föråldrad
- standard false
- Description
När den är inställd på
true, använder tjänsten AI-vision för att automatiskt uppskatta objektets verkliga höjd och ändra modellens storlek därefter. Vi rekommenderar att använda den dedikerade Resize API istället.auto_size,resize_height, ochresize_longest_sideär ömsesidigt uteslutande.
auto_size = true- Name
- origin_at
- Type
- string
- ⚠ föråldrad
- standard bottom
- Description
Position av 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
true, kommer tjänsten endast att ändra formatet på den inmatade modelfilen, och ignorera andra inmatningar somtopology,resize_height, ochtarget_polycount. Vi rekommenderar att använda den dedikerade Convert API istället.target_formatsmåste tillhandahållas omconvert_format_onlyär inställd påtrue.
- Name
- alpha_thumbnail
- Type
- boolean
- standard false
- Description
När den är inställd på
true, renderar uppgiften dessutom en version av förhandsvisningen med transparent bakgrund (RGBA) och returnerar den somalpha_thumbnail_urli GET-svaret. Det befintliga fältetthumbnail_urlförblir oförändrat.
Returnerar
result-egenskapen i svaret innehåller id för den nyss skapade remesh-uppgiften.
Feltyper
- Name
400 - Bad Request- Description
Begäran var oacceptabel. Vanliga orsaker:
- Saknad parameter: Antingen
model_urlellerinput_task_idmåste tillhandahållas. - Ogiltig inmatningsuppgift:
input_task_idmåste referera till en lyckad uppgift från en stödd modell. - Ogiltigt modelformat:
model_urlpekar på en fil med en icke-stödd filändelse. - Oåtkomlig URL:
model_urlkunde inte laddas ner. - Ogiltig topologi:
topology-parametern är ogiltig. - Ömsesidigt uteslutande parametrar:
auto_sizeochresize_heightkan inte båda ställas in.
- Saknad parameter: Antingen
- Name
401 - Unauthorized- Description
Autentisering misslyckades. Vänligen kontrollera din API-nyckel.
- Name
402 - Payment Required- Description
Otillräckliga 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 med dess ID.
Parametrar
- Name
- id
- Type
- path
- Description
ID för den remesh-uppgift som ska hämtas.
Returnerar
Remesh-uppgiftsobjektet.
Förfrågan
curl https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Svar
{
"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
Detta endpoint tar permanent bort en remesh-uppgift, inklusive alla associerade modeller och data. Denna åtgärd är oåterkallelig.
Sökvägsparametrar
- Name
- id
- Type
- path
- Description
ID för den remesh-uppgift som ska tas bort.
Returnerar
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
Detta endpoint tillåter dig att 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
Sidstorleksgräns. Max 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 av 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 Remesh-uppgiften att strömma.
Returnerar
Returnerar en ström av The Remesh Task Objects som Server-Sent Events.
För PENDING eller IN_PROGRESS uppgifter kommer svarströmmen endast att inkludera nödvändiga progress och status fält.
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 ett k-sorterbart UUID för uppgifts-id:n som implementeringsdetalj, 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 genereras av Meshy. Egenskapen för ett format kommer att 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. Endast närvarande 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). Endast närvarande 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
Framsteg för uppgiften. Om uppgiften inte har startat ännu, kommer denna egenskap att vara
0. När uppgiften har lyckats, kommer detta att bli100.
- Name
- status
- Type
- string
- Description
Status för uppgiften. Möjliga värden är en av
PENDING,IN_PROGRESS,SUCCEEDED,FAILED.
- Name
- preceding_tasks
- Type
- integer
- Description
Antalet föregående uppgifter.
Värdet av detta fält är meningsfullt endast 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 ännu, kommer denna egenskap att vara
0.
- Name
- finished_at
- Type
- timestamp
- Description
Tidsstämpel för när uppgiften avslutades, i millisekunder. Om uppgiften inte har avslutats ännu, kommer denna egenskap att vara
0.
- Name
- task_error
- Type
- object
- Description
Felformation för misslyckade uppgifter. Se Fel för fullständig referens till
task_error-objektet.
- Name
- consumed_credits
- Type
- integer
- Description
Antalet credits som förbrukats av denna uppgift. Närvarande när uppgiftens status är
PENDING,IN_PROGRESSellerSUCCEEDED. Returnerar0förFAILED-uppgifter (credits återbetalas vid misslyckande).
Exempel på Remesh-uppgiftsobjekt
{
"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
}