Remesh API
Met de Remesh API kun je bestaande 3D-modellen die zijn gegenereerd door andere Meshy-API's (zoals Afbeelding naar 3D of Tekst naar 3D) remeshen en exporteren naar verschillende indelingen. Deze sectie geeft details over hoe je de Remesh API gebruikt.
Een Remesh-taak maken
Deze endpoint maakt een nieuwe Remesh-taak aan.
Gebruik voor formaatconversie en formaat wijzigen de speciale Convert API en Resize API. De verouderde (deprecated) 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 opgegeven, krijgt 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 Preview, Tekst naar 3D Refine, Afbeelding naar 3D of Hertextureren. Daarnaast moet deze de status
SUCCEEDEDhebben.
- Name
- model_url
- Type
- string
- Verplicht
- Description
Geef een 3D-model op dat Meshy kan remeshen via een publiek toegankelijke URL of Data URI. Ondersteunde formaten:
.glb,.gltf,.obj,.fbx,.stl.Gebruik voor Data URI's het MIME type:
application/octet-stream.
- Name
- target_formats
- Type
- string[]
- standaard ["glb"]
- Description
Een lijst met doelformaten voor het ge-remeshte model. Wanneer 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 driehoeksmesh.
- Name
- target_polycount
- Type
- integer
- standaard 30,000
- Description
Specificeer het beoogde aantal polygonen 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 en met 300.000 (inclusief)
- Name
- decimation_mode
- Type
- integer
- Description
Schakel adaptieve decimatie in door een polygonaantalniveau in te stellen. Wanneer dit is ingesteld, wordt
target_polycountgenegeerd.Beschikbare waarden:
1: Adaptief — ultrahoog 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 in plaats daarvan de speciale Resize API te gebruiken.
auto_size,resize_heightenresize_longest_sidesluiten elkaar uit.
- Name
- resize_longest_side
- Type
- number
- ⚠ verouderd
- standaard 0
- Description
Wijzig het formaat van het model zodat de langste afmeting van het bounding box gelijk is aan de opgegeven waarde in meters. We raden aan in plaats daarvan de speciale Resize API te gebruiken.
auto_size,resize_heightenresize_longest_sidesluiten elkaar uit.
- Name
- auto_size
- Type
- boolean
- ⚠ verouderd
- standaard false
- Description
Wanneer ingesteld op
true, gebruikt de service AI-visie om automatisch de echte hoogte van het object te schatten en het formaat van het model dienovereenkomstig te wijzigen. We raden aan in plaats daarvan de speciale Resize API te gebruiken.auto_size,resize_heightenresize_longest_sidesluiten elkaar uit.
auto_size = true- Name
- origin_at
- Type
- string
- ⚠ verouderd
- standaard bottom
- Description
Positie van de oorsprong. We raden aan in plaats daarvan de speciale Resize API te gebruiken.
Beschikbare waarden:
bottom,center.
- Name
- convert_format_only
- Type
- boolean
- ⚠ verouderd
- Description
Als
true, wijzigt de service alleen het formaat van het invoermodelbestand en negeert andere invoer zoalstopology,resize_heightentarget_polycount. We raden aan in plaats daarvan de speciale Convert API te gebruiken.target_formatsmoet worden opgegeven alsconvert_format_onlyis ingesteld optrue.
- Name
- alpha_thumbnail
- Type
- boolean
- standaard false
- Description
Wanneer ingesteld op
true, rendert de taak aanvullend een versie van de preview met transparante achtergrond (RGBA) en retourneert deze alsalpha_thumbnail_urlin de GET-respons. Het bestaande veldthumbnail_urlblijft ongewijzigd.
Retourneert
De eigenschap result van de respons bevat de id van de nieuw aangemaakte Remesh-taak.
Foutmodi
- Name
400 - Bad Request- Description
De aanvraag was ongeldig. Veelvoorkomende oorzaken:
- Ontbrekende parameter: Ofwel
model_urlofinput_task_idmoet worden opgegeven. - Ongeldige invoertaak: De
input_task_idmoet verwijzen naar een geslaagde taak van een ondersteund model. - Ongeldig modelformaat: De
model_urlverwijst naar een bestand met een niet-ondersteunde extensie. - Onbereikbare URL: De
model_urlkon niet worden gedownload. - Ongeldige topology: De parameter
topologyis ongeldig. - Elkaar uitsluitende parameters:
auto_sizeenresize_heightkunnen niet beide worden ingesteld.
- Ontbrekende parameter: Ofwel
- Name
401 - Unauthorized- Description
Authenticatie mislukt. Controleer je API-sleutel.
- Name
402 - Payment Required- Description
Onvoldoende credits om deze taak uit te voeren.
- Name
429 - Too Many Requests- Description
Je hebt je 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"
}
Een Remesh-taak ophalen
Deze endpoint haalt een remesh-taak op via de ID.
Parameters
- Name
- id
- Type
- path
- Description
De ID van de remesh-taak die moet worden opgehaald.
Retourneert
Het Remesh-taakobject.
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,
}
Een Remesh-taak verwijderen
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.
Remesh-taken weergeven
Met dit endpoint kunt u een lijst met Remesh-taken ophalen.
Parameters
- Name
- page_num
- Type
- integer
- standaard 1
- Description
Paginanummer voor paginering.
- Name
- page_size
- Type
- integer
- standaard 10
- Description
Limiet voor paginagrootte. Maximaal toegestaan is
50items.
- Name
- sort_by
- Type
- string
- Description
Veld om op te sorteren.
Beschikbare waarden:
+created_at: Sorteer op aanmaaktijd in oplopende volgorde.-created_at: Sorteer op aanmaaktijd in aflopende volgorde.
Retourneert
Retourneert een gepagineerde lijst met De Remesh-taakobjecten.
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 realtime updates voor een Remesh-taak met Server-Sent Events (SSE).
Parameters
- Name
- id
- Type
- path
- Description
Unieke identifier voor de Remesh-taak die moet worden gestreamd.
Retourneert
Retourneert een stream van De Remesh-taakobjecten als Server-Sent Events.
Voor PENDING- of IN_PROGRESS-taken bevat de responsstream alleen de noodzakelijke velden progress en 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,
}
Het Remesh-taakobject
Het Remesh-taakobject vertegenwoordigt een werkeenheid die Meshy gebruikt om een bestaand 3D-model te remeshen en naar verschillende formaten te exporteren. Het object heeft de volgende eigenschappen:
Eigenschappen
- Name
- id
- Type
- string
- Description
Unieke identificatie voor de taak. Hoewel we een k-sorteerbare UUID gebruiken voor taak-id's als implementatiedetail, moet je geen aannames doen over de indeling 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 3D-modelbestand met texture dat door Meshy is gegenereerd. De eigenschap voor een formaat wordt weggelaten als het formaat niet wordt gegenereerd, in plaats van een lege tekenreeks te retourneren.
- 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 die is gerenderd vanuit het geremeshte model.
- Name
- alpha_thumbnail_url
- Type
- string
- Description
Downloadbare URL naar een versie met transparante achtergrond (RGBA) van
thumbnail_url. Alleen aanwezig wanneer de taak is aangemaakt metalpha_thumbnail: trueen het transparante voorbeeld succesvol is gerenderd; anders wordt dit veld weggelaten.
- Name
- progress
- Type
- integer
- Description
Progress van de taak. Als de taak nog niet is gestart, is deze eigenschap
0. 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 voorafgaande 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, is deze eigenschap
0.
- Name
- finished_at
- Type
- timestamp
- Description
Tijdstempel van wanneer de taak is voltooid, in milliseconden. Als de taak nog niet is voltooid, is deze eigenschap
0.
- Name
- task_error
- Type
- object
- Description
Foutdetails voor mislukte taken. Zie Fouten voor de volledige objectreferentie van
task_error.
- Name
- consumed_credits
- Type
- integer
- Description
Het aantal credits dat door deze taak is verbruikt. Aanwezig wanneer de taakstatus
PENDING,IN_PROGRESSofSUCCEEDEDis. Retourneert0voorFAILED-taken (credits worden terugbetaald bij mislukking).
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
}