Remesh API
De Remesh API stelt je in staat om bestaande 3D-modellen, gegenereerd door andere Meshy API's (zoals Afbeelding naar 3D of Tekst naar 3D), te remeshen en te exporteren naar verschillende formaten. Dit gedeelte biedt details over hoe je de Remesh API kunt gebruiken.
Maak een Remesh Taak
Deze endpoint creëert een nieuwe remesh taak.
Voor formaatconversie en formaatwijziging, gebruik de speciale Convert API en Resize API. De verouderde parameters hieronder blijven werken, maar we raden de nieuwe endpoints aan voor nieuwe integraties.
Parameters
Slechts één van input_task_id of model_url is vereist. Als beide worden verstrekt, heeft input_task_id prioriteit.
- Name
- input_task_id
- Type
- string
- Verplicht
- Description
De ID van de voltooide Afbeelding naar 3D of Tekst naar 3D taak die je wilt remeshen. Deze taak moet een van de volgende taken zijn: Tekst naar 3D Voorbeeld, Tekst naar 3D Verfijnen, Afbeelding naar 3D of Hertextureren. Bovendien moet het een status van
SUCCEEDEDhebben.
- Name
- model_url
- Type
- string
- Verplicht
- Description
Geef een 3D-model voor Meshy om te remeshen via een openbaar toegankelijke URL of data URI. Ondersteunde formaten:
.glb,.gltf,.obj,.fbx,.stl.Voor Data URI's, gebruik de MIME type:
application/octet-stream.
- Name
- target_formats
- Type
- string[]
- standaard ["glb"]
- Description
Een lijst van doelformaten voor het geremeshte model. Als dit wordt weggelaten, wordt alleen GLB gegenereerd.
Beschikbare waarden:
glb,fbx,obj,usdz,blend,stl,3mf.
- Name
- topology
- Type
- string
- standaard triangle
- Description
Specificeer de topology van het gegenereerde model.
Beschikbare waarden:
quad: Genereer een quad-dominante mesh.triangle: Genereer een gedecimeerde triangle mesh.
- Name
- target_polycount
- Type
- integer
- standaard 30,000
- Description
Specificeer het doel polygonaantal in het gegenereerde model. Het werkelijke aantal polygonen kan afwijken van het doel afhankelijk van de complexiteit van de geometrie.
Het geldige waardebereik varieert afhankelijk van het gebruikersniveau:
- 100 tot 300,000 (inclusief)
- Name
- decimation_mode
- Type
- integer
- Description
Schakel adaptieve decimatie in door een polygonaantalniveau in te stellen. Wanneer ingesteld, wordt
target_polycountgenegeerd.Beschikbare waarden:
1: Adaptief — ultra polygonaantal.2: Adaptief — hoog polygonaantal.3: Adaptief — gemiddeld polygonaantal.4: Adaptief — laag polygonaantal.
- Name
- resize_height
- Type
- number
- ⚠ verouderd
- standaard 0
- Description
Wijzig het formaat van het model naar een bepaalde hoogte gemeten in meters. We raden aan om de speciale Resize API te gebruiken.
auto_size,resize_height, enresize_longest_sidezijn wederzijds exclusief.
- Name
- resize_longest_side
- Type
- number
- ⚠ verouderd
- standaard 0
- Description
Wijzig het formaat van het model zodat de langste dimensie van de omhullende doos gelijk is aan de opgegeven waarde in meters. We raden aan om de speciale Resize API te gebruiken.
auto_size,resize_height, enresize_longest_sidezijn wederzijds exclusief.
- Name
- auto_size
- Type
- boolean
- ⚠ verouderd
- standaard false
- Description
Wanneer ingesteld op
true, gebruikt de service AI-visie om automatisch de werkelijke hoogte van het object te schatten en het model dienovereenkomstig aan te passen. We raden aan om de speciale Resize API te gebruiken.auto_size,resize_height, enresize_longest_sidezijn wederzijds exclusief.
auto_size = true- Name
- origin_at
- Type
- string
- ⚠ verouderd
- standaard bottom
- Description
Positie van de oorsprong. We raden aan om de speciale Resize API te gebruiken.
Beschikbare waarden:
bottom,center.
- Name
- convert_format_only
- Type
- boolean
- ⚠ verouderd
- Description
Als
true, zal de service alleen het formaat van het invoermodelbestand wijzigen, waarbij andere invoer zoalstopology,resize_height, entarget_polycountworden genegeerd. We raden aan om de speciale Convert API te gebruiken.target_formatsmoet worden verstrekt alsconvert_format_onlyis ingesteld optrue.
- Name
- alpha_thumbnail
- Type
- boolean
- standaard false
- Description
Wanneer ingesteld op
true, rendert de taak daarnaast een versie van de preview met een transparante achtergrond (RGBA) en retourneert deze alsalpha_thumbnail_urlin de GET-respons. Het bestaandethumbnail_urlveld blijft ongewijzigd.
Retourneert
De result eigenschap van de respons bevat de id van de nieuw aangemaakte remesh taak.
Foutmodi
- Name
400 - Bad Request- Description
Het verzoek was onacceptabel. Veelvoorkomende oorzaken:
- Ontbrekende parameter: Ofwel
model_urlofinput_task_idmoet worden verstrekt. - Ongeldige invoertaak: De
input_task_idmoet verwijzen naar een succesvolle taak van een ondersteund model. - Ongeldig modelformaat: De
model_urlwijst naar een bestand met een niet-ondersteunde extensie. - Onbereikbare URL: De
model_urlkon niet worden gedownload. - Ongeldige topology: De
topologyparameter is ongeldig. - Wederzijds exclusieve parameters:
auto_sizeenresize_heightkunnen niet beide worden ingesteld.
- Ontbrekende parameter: Ofwel
- Name
401 - Unauthorized- Description
Authenticatie mislukt. Controleer uw API-sleutel.
- Name
402 - Payment Required- Description
Onvoldoende credits om deze taak uit te voeren.
- Name
429 - Too Many Requests- Description
U heeft uw rate limit overschreden.
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"
}
Haal een Remesh Taak op
Deze endpoint haalt een remesh taak op via zijn ID.
Parameters
- Name
- id
- Type
- path
- Description
De ID van de remesh taak die moet worden opgehaald.
Retourneert
Het Remesh Taak object.
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,
}
Verwijder een Remesh Taak
Deze endpoint verwijdert permanent een remesh taak, inclusief alle bijbehorende modellen en gegevens. Deze actie is onomkeerbaar.
Padparameters
- Name
- id
- Type
- path
- Description
De ID van de remesh taak die moet worden verwijderd.
Retourneert
Retourneert 200 OK bij succes.
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.
Lijst Remesh Taken
Deze endpoint stelt je in staat om een lijst van Remesh taken op te halen.
Parameters
- Name
- page_num
- Type
- integer
- standaard 1
- Description
Paginanummer voor paginering.
- Name
- page_size
- Type
- integer
- standaard 10
- Description
Limiet voor paginagrootte. Maximum toegestaan is
50items.
- Name
- sort_by
- Type
- string
- Description
Veld om op te sorteren.
Beschikbare waarden:
+created_at: Sorteren op creatietijd in oplopende volgorde.-created_at: Sorteren op creatietijd in aflopende volgorde.
Retourneert
Retourneert een gepagineerde lijst van De Remesh Taak Objecten.
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
}
]
Stream een Remesh Taak
Deze endpoint streamt real-time updates voor een Remesh taak met behulp van Server-Sent Events (SSE).
Parameters
- Name
- id
- Type
- path
- Description
Unieke identificatie voor de Remesh taak om te streamen.
Retourneert
Retourneert een stream van De Remesh Taak Objecten als Server-Sent Events.
Voor PENDING of IN_PROGRESS taken, zal de responsstream alleen de noodzakelijke progress en status velden bevatten.
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,
}
Het Remesh Taakobject
Het Remesh Taakobject vertegenwoordigt een werkunit die Meshy gebruikt om een bestaand 3D-model te remeshen en te exporteren naar verschillende formaten. Het object heeft de volgende eigenschappen:
Eigenschappen
- Name
- id
- Type
- string
- Description
Unieke identificatie voor de taak. Hoewel we een k-sortable UUID gebruiken voor taak-id's als implementatiedetail, moet je geen aannames maken over het formaat van de id.
- Name
- type
- Type
- string
- Description
Type van de Remesh taak. De waarde is
remesh.
- Name
- model_urls
- Type
- object
- Description
Downloadbare URL naar het getextureerde 3D-modelbestand gegenereerd door Meshy. De eigenschap voor een formaat wordt weggelaten als het formaat niet is gegenereerd in plaats van een lege string terug te geven.
- Name
glb- Type
- string
- Description
Downloadbare URL naar het GLB-bestand.
- Name
fbx- Type
- string
- Description
Downloadbare URL naar het FBX-bestand.
- Name
obj- Type
- string
- Description
Downloadbare URL naar het OBJ-bestand.
- Name
usdz- Type
- string
- Description
Downloadbare URL naar het USDZ-bestand.
- Name
blend- Type
- string
- Description
Downloadbare URL naar het Blender-bestand.
- Name
stl- Type
- string
- Description
Downloadbare URL naar het STL-bestand.
- Name
3mf- Type
- string
- Description
Downloadbare URL naar het 3MF-bestand. Alleen aanwezig wanneer
3mfis aangevraagd viatarget_formats.
- Name
- thumbnail_url
- Type
- string
- Description
Downloadbare URL naar een voorbeeldafbeelding gerenderd van het geremeshede model.
- Name
- alpha_thumbnail_url
- Type
- string
- Description
Downloadbare URL naar een versie van
thumbnail_urlmet transparante achtergrond (RGBA). Alleen aanwezig wanneer de taak is aangemaakt metalpha_thumbnail: trueen de transparante preview succesvol is gerenderd; anders wordt dit veld weggelaten.
- Name
- progress
- Type
- integer
- Description
Voortgang van de taak. Als de taak nog niet is gestart, zal deze eigenschap
0zijn. Zodra de taak is geslaagd, wordt dit100.
- Name
- status
- Type
- string
- Description
Status van de taak. Mogelijke waarden zijn een van
PENDING,IN_PROGRESS,SUCCEEDED,FAILED.
- Name
- preceding_tasks
- Type
- integer
- Description
Het aantal voorgaande taken.
De waarde van dit veld is alleen betekenisvol als de taakstatus
PENDINGis.
- Name
- created_at
- Type
- timestamp
- Description
Tijdstempel van wanneer de taak is aangemaakt, in milliseconden.
- Name
- started_at
- Type
- timestamp
- Description
Tijdstempel van wanneer de taak is gestart, in milliseconden. Als de taak nog niet is gestart, zal deze eigenschap
0zijn.
- Name
- finished_at
- Type
- timestamp
- Description
Tijdstempel van wanneer de taak is voltooid, in milliseconden. Als de taak nog niet is voltooid, zal deze eigenschap
0zijn.
- Name
- task_error
- Type
- object
- Description
Foutdetails voor mislukte taken. Zie Fouten voor de volledige
task_errorobjectreferentie.
- Name
- consumed_credits
- Type
- integer
- Description
Het aantal credits dat door deze taak is verbruikt. Aanwezig wanneer de taakstatus
PENDING,IN_PROGRESS, ofSUCCEEDEDis. Geeft0terug voorFAILEDtaken (credits worden terugbetaald bij mislukking).
Voorbeeld Remesh Taakobject
{
"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
}