Remesh API
Bygg om en 3D-modells nät med en ny topology och ett nytt antal ytor, och exportera den i de format du väljer. Modellen kan komma från en annan Meshy-uppgift, till exempel Bild till 3D eller Text till 3D, eller från en modellfil.
Skapa en Remesh-uppgift
Skapar en Remesh-uppgift. Uppgiften körs i bakgrunden. För information om hur lång tid en uppgift vanligtvis tar, se Bearbetningstider.
För att konvertera en modells format eller ändra dess storlek, använd Convert API eller Resize API. De föråldrade parametrarna på den här sidan fungerar fortfarande, men nya integrationer bör använda dessa endpoints.
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"
}
Parametrar
- Name
- input_task_id
- Type
- string
- Obligatorisk
- Description
Krävs om du inte skickar
model_url. ID:t för uppgiften vars modell du vill remesh:a, till exempel en Text till 3D-, Bild till 3D-, Omtexturerings- eller Remesh-uppgift. Uppgiften måste vara en som du skapade med API:et och ha statusenSUCCEEDED.
- Name
- model_url
- Type
- string
- Obligatorisk
- Description
Krävs om du inte skickar
input_task_id. Modellen som ska remeshas, som en offentlig URL eller en data-URI. Om du skickar båda använder Meshyinput_task_id.Modellen måste vara en GLB-, glTF-, OBJ-, FBX- eller STL-fil på högst 400 MB från en
http- ellerhttps-URL, eller 100 MB som en data-URI. För en data-URI, använd MIME typeapplication/octet-stream.En fil över 100 MB måste också följa dessa regler:
- En GLB-, glTF-, FBX- eller OBJ-fil kan ha högst 10 000 000 ytor. Meshy räknar ytor som trianglar, så en fyrhörning räknas som 2, och ett nät som ritas flera gånger räknas en gång per kopia.
- En FBX-fil måste vara binär FBX 7.1 eller nyare.
- En GLB- eller glTF-fil får inte använda Draco-komprimering.
- Name
- target_formats
- Type
- string[]
- standard ["glb"]
- Description
Filformaten som ska genereras.
Tillgängliga värden:
glbfbxobjusdzblendstl3mf
- Name
- topology
- Type
- string
- standard triangle
- Description
Ytans typ för den remeshade modellen.
Tillgängliga värden:
quad: ett nät som domineras av fyrhörningartriangle: ett decimerat triangelnät
- Name
- target_polycount
- Type
- integer
- standard 30000
- Description
Antalet ytor att sikta mot, från
100till300000. Resultatet kan skilja sig från målet, beroende på modellens geometri. Ett värde utanför intervallet returnerar400.
- Name
- decimation_mode
- Type
- integer
- Description
Adaptivt ytantal, per nivå. När du anger detta ignorerar Meshy
target_polycount.Tillgängliga värden:
1: ultra2: hög3: medel4: låg
- Name
- resize_height
- Type
- number
- ⚠ föråldrad
- standard 0
- Description
Använd Resize API istället. Höjden att ändra modellens storlek till, i meter. Skicka högst en av
resize_height,resize_longest_sideochauto_size.
- Name
- resize_longest_side
- Type
- number
- ⚠ föråldrad
- standard 0
- Description
Använd Resize API istället. Längden att ändra modellens begränsningsrutas längsta sida till, i meter. Skicka högst en av
resize_height,resize_longest_sideochauto_size.
- Name
- auto_size
- Type
- boolean
- ⚠ föråldrad
- standard false
- Description
Använd Resize API istället. Huruvida objektets verkliga höjd ska uppskattas med AI-seende och modellen ändras till den storleken. Skicka högst en av
resize_height,resize_longest_sideochauto_size.
- Name
- origin_at
- Type
- string
- ⚠ föråldrad
- standard bottom
- Description
Använd Resize API istället. Var modellens origo ska placeras,
bottomellercenter. Standardvärdet gäller när du skickarresize_height,resize_longest_sideellerauto_size. Utan någon av dem flyttar Meshy origo endast om du skickarorigin_at.
- Name
- convert_format_only
- Type
- boolean
- ⚠ föråldrad
- Description
Använd Convert API istället. Huruvida modellen bara ska konverteras till
target_formats. Närtrueignorerar Meshytopology,target_polycount,decimation_mode,resize_height,resize_longest_sideochauto_size, men kontrollerar ändå deras värden, så ett ogiltigt värde returnerar400. Medconvert_format_only: truereturnerar en tom ellernulltarget_formats400.
- Name
- alpha_thumbnail
- Type
- boolean
- standard false
- Description
Huruvida en förhandsgranskning med transparent bakgrund (RGBA) också ska renderas, som returneras i
alpha_thumbnail_urlnär du hämtar uppgiften.thumbnail_urländras inte.
Returvärden
Fältet result i svaret innehåller ID:t för den nya Remesh-uppgiften.
Felscenarier
- Name
400 - Bad Request- Description
Begäran kan inte köras. Felmeddelandet anger vilket problem som hittades. Till exempel:
- Saknad parameter: Varken
model_urlellerinput_task_idskickades. - Ogiltig indatauppgift:
input_task_idär inte en lyckad API-uppgift, eller dess AI-modell stöder inte remeshing. - Ogiltigt modellformat: Filen i
model_urlhar ett filtillägg som inte stöds. - Oåtkomlig URL: Meshy kan inte ladda ner filen i
model_url. - Modellfilen är för stor: Filen i
model_urlär över 400 MB från enhttp- ellerhttps-URL, eller över 100 MB som en data-URI. - För många ytor: Filen i
model_urlär över 100 MB och har fler än 10 000 000 ytor. Minska antalet ytor och skicka sedan filen igen. - ASCII FBX över 100 MB: Filen i
model_urlär en ASCII FBX över 100 MB. Skicka den som binär FBX eller GLB. - Oläsbar modellfil: Filen i
model_urlär över 100 MB, och Meshy kan inte läsa dess header. Till exempel är den en Draco-komprimerad GLB eller glTF, eller en binär FBX äldre än 7.1. - Modellens header är för komplex: Filen i
model_urlär över 100 MB, och dess header har för många nät, noder eller poster att kontrollera. Minska antalet objekt i filen och skicka den sedan igen. - Ogiltig topology:
topologyär varkenquadellertriangle. - Ömsesidigt uteslutande parametrar: Begäran innehåller mer än en av
auto_size,resize_heightochresize_longest_side. Skicka bara en.
Åtgärda begäran och skicka den sedan igen. Se Fel.
- Saknad parameter: Varken
- Name
401 - Unauthorized- Description
API-nyckeln saknas eller är ogiltig. Kontrollera
Authorization-headern.
- Name
402 - Payment Required- Description
Till exempel:
- Otillräckligt med credits: Kontot har inte tillräckligt med credits för den här uppgiften, eller kontot har nått en creditgräns. Kontrollera ditt credit-saldo och försök sedan igen.
- Gratisplan: Att skapa en uppgift kräver en betald plan. Uppgradera din plan i dina prenumerationsinställningar och försök sedan igen.
- Name
403 - Forbidden- Description
input_task_idär en basreliefmodell, vilket den här endpointen inte kan remesh:a. Meddelandet ärThis model type does not support this operation. Skicka en annan modell.
- Name
404 - Not Found- Description
input_task_idmatchar ingen av dina uppgifter. Kontrollera uppgifts-ID:t och skicka sedan begäran igen.
- Name
429 - Too Many Requests- Description
Du överskred din hastighetsgräns. Vänta och försök sedan igen. Se Hastighetsgränser.
Hämta en Remesh-uppgift
Returnerar en Remesh-uppgift baserat på dess ID.
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
}
Parametrar
- Name
- id
- Type
- path
- Description
Uppgifts-ID:t från skaparsvaret.
Returnerar
Ta bort en Remesh-uppgift
Tar bort en Remesh-uppgift permanent, inklusive dess modeller och data. Du kan inte ångra en 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
// 200 OK on success, with an empty body.
//
// 409 Conflict when the task is IN_PROGRESS. The task keeps 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."
}
Sökvägsparametrar
- Name
- id
- Type
- path
- Description
ID:t för uppgiften som ska tas bort.
Uppgiftsstatus
Att ta bort en PENDING-uppgift återbetalar de credits som användes när du skapade den.
En IN_PROGRESS-uppgift kan inte tas bort. Förfrågan returnerar 409 Conflict,
och uppgiften fortsätter att köras. Meshy återbetalar inte en uppgift som har
påbörjats, så att ta bort den skulle kosta dig både credits och resultatet. Vänta
tills den når SUCCEEDED, FAILED eller CANCELED, och ta sedan bort den.
Att ta bort en uppgift i en slutgiltig status (SUCCEEDED, FAILED eller CANCELED)
återbetalar inte dess credits.
Returnerar
200 OK när uppgiften har tagits bort, eller 409 Conflict när uppgiften är
IN_PROGRESS.
Lista Remesh-uppgifter
Returnerar en lista över dina Remesh-uppgifter.
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
}
]
Parametrar
- Name
- page_num
- Type
- integer
- standard 1
- Description
Sidnumret som ska returneras, upp till
255. Ett större värde returnerar400.
- Name
- page_size
- Type
- integer
- standard 10
- Description
Antalet uppgifter per sida, upp till
100.
- Name
- sort_by
- Type
- string
- Description
Sorteringsordningen.
Tillgängliga värden:
+created_at: äldsta först-created_at: nyaste först
Returnerar
En paginerad lista med Remesh-uppgiftsobjekt.
Strömma en Remesh-uppgift
Strömmar uppdateringar för en Remesh-uppgift som Server-Sent Events (SSE).
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.
// These examples are shortened. Each event holds the full task object.
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,
}
Parametrar
- Name
- id
- Type
- path
- Description
Uppgifts-ID från skapandesvaret.
Returnerar
En ström av Remesh-uppgiftsobjekt som Server-Sent Events.
Varje händelse innehåller hela uppgiftsobjektet, i samma format som Get-endpointen returnerar. Medan uppgiften är PENDING eller IN_PROGRESS har dess resultatfält ännu inga värden.
Remesh-uppgiftsobjektet
Ett Remesh-uppgiftsobjekt beskriver en remesh av en 3D-modell. Det innehåller statusen, progress och modellfilerna när uppgiften lyckas.
Egenskaper
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
}
- Name
- id
- Type
- string
- Description
Uppgifts-ID:t. Behandla det som en opak sträng och lita inte på dess format.
- Name
- type
- Type
- string
- Description
Uppgiftstypen, alltid
remesh.
- Name
- model_urls
- Type
- object
- Description
Nedladdningslänkar för den remeshade modellen, en per filformat. Ett format som uppgiften inte genererade saknar nyckel, istället för att ha en tom sträng.
- Name
glb- Type
- string
- Description
GLB-filen.
- Name
fbx- Type
- string
- Description
FBX-filen.
- Name
obj- Type
- string
- Description
OBJ-filen.
- Name
usdz- Type
- string
- Description
USDZ-filen.
- Name
blend- Type
- string
- Description
Blender-filen.
- Name
stl- Type
- string
- Description
STL-filen.
- Name
3mf- Type
- string
- Description
3MF-filen. Finns endast när
target_formatsinnehåller3mf.
- Name
- thumbnail_url
- Type
- string
- Description
Nedladdningslänk för en förhandsgranskningsbild av den remeshade modellen.
- Name
- alpha_thumbnail_url
- Type
- string
- Description
Nedladdningslänk för en version av
thumbnail_urlmed transparent bakgrund (RGBA). Finns endast om du skapade uppgiften medalpha_thumbnail: trueoch Meshy renderade den transparenta förhandsgranskningen.
- Name
- progress
- Type
- integer
- Description
Hur mycket av uppgiften som är klar, i procent. Den är
0tills uppgiften startar och100när den lyckas.
- Name
- status
- Type
- string
- Description
Uppgiftens status, en av
PENDING,IN_PROGRESS,SUCCEEDED,FAILEDellerCANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Antalet uppgifter före denna i kön. Värdet är endast meningsfullt medan uppgiften är
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Tidpunkten då uppgiften skapades, i Unix-millisekunder.
- Name
- started_at
- Type
- timestamp
- Description
Tidpunkten då uppgiften startade, i Unix-millisekunder. Den är
0tills uppgiften startar.
- Name
- finished_at
- Type
- timestamp
- Description
Tidpunkten då uppgiften avslutades, i Unix-millisekunder. Den är
0tills uppgiften avslutas.
- Name
- expires_at
- Type
- timestamp
- Description
Tidpunkten då uppgiftens nedladdningslänkar upphör att gälla, i Unix-millisekunder. Den är
0tills uppgiften avslutas.
- Name
- texture_urls
- Type
- array
- Description
Nedladdningslänkar för modellens texturkartor, när uppgiften lyckas: en array av objekt, ett per texturset. Varje objekt har en
base_color-URL, och kan även hametallic-,roughness-,normal-,emission- ochmetallic_roughness-URL:er. Den ärnulltills uppgiften lyckas, och en tom array när modellen saknar texturkartor.
- Name
- task_error
- Type
- object
- Description
Feldetaljerna när uppgiften misslyckas. Se Fel.
- Name
- consumed_credits
- Type
- integer
- Description
Antalet credits som uppgiften förbrukade. Finns när statusen är
PENDING,IN_PROGRESSellerSUCCEEDED. Den är0för enFAILED-uppgift, eftersom Meshy återbetalar credits när en uppgift misslyckas.