Remesh API
Met de Remesh API kunt u bestaande 3D-modellen die zijn gegenereerd door andere Meshy API's (zoals Afbeelding naar 3D of Tekst naar 3D) remeshen en exporteren naar verschillende formaten. Dit gedeelte bevat details over het gebruik van de Remesh API.
Create a Remesh Task
Deze endpoint maakt een nieuwe remesh-taak aan.
De taak wordt op de achtergrond uitgevoerd. Voor een indicatie van de verwerkingstijd, zie Verwerkingstijden.
Gebruik voor formaatconversie en het wijzigen van formaat 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 een van input_task_id of model_url is vereist. Als beide worden opgegeven, heeft input_task_id voorrang.
- Name
- input_task_id
- Type
- string
- Verplicht
- Description
De ID van de voltooide Afbeelding naar 3D- of Tekst naar 3D-taak die u 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 de status
SUCCEEDEDzijn.
- Name
- model_url
- Type
- string
- Verplicht
- Description
Geef Meshy een 3D-model om te 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.Maximale bestandsgrootte: 400 MB voor een
http- ofhttps-URL, 100 MB voor eendata:-URI.Een GLB-, glTF-, FBX- of OBJ-bestand groter dan 100 MB mag maximaal 10.000.000 vlakken bevatten. Vlakken worden geteld als driehoeken: een vierhoek telt als 2, en een mesh die meerdere keren wordt getekend, telt één keer per kopie. Boven 100 MB moet een FBX-bestand binaire FBX 7.1 of nieuwer zijn, en mag een GLB- of glTF-bestand geen Draco-compressie gebruiken.
- Name
- target_formats
- Type
- string[]
- standaard ["glb"]
- Description
Een lijst met doelformaten voor het geremeshte model. Indien weggelaten, wordt alleen GLB gegenereerd.
Beschikbare waarden:
glb,fbx,obj,usdz,blend,stl,3mf.
- Name
- topology
- Type
- string
- standaard triangle
- Description
Geef de topology van het gegenereerde model op.
Beschikbare waarden:
quad: Genereer een mesh die overwegend uit vierhoeken bestaat.triangle: Genereer een gedecimeerde driehoeksmesh.
- Name
- target_polycount
- Type
- integer
- standaard 30,000
- Description
Geef het gewenste aantal polygonen in het gegenereerde model op. Het werkelijke aantal polygonen kan afwijken van het doel, afhankelijk van de complexiteit van de geometrie.
Het geldige bereik is 100 tot 300.000 (inclusief).
- Name
- decimation_mode
- Type
- integer
- Description
Schakel adaptieve decimatie in door een polygoonaantal-niveau in te stellen. Indien 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 in meters. We raden aan hiervoor de speciale Resize API te gebruiken.
auto_size,resize_heightenresize_longest_sidesluiten elkaar wederzijds uit.
- Name
- resize_longest_side
- Type
- number
- ⚠ verouderd
- standaard 0
- Description
Wijzig het formaat van het model zodat de langste afmeting van de bounding box gelijk is aan de opgegeven waarde in meters. We raden aan hiervoor de speciale Resize API te gebruiken.
auto_size,resize_heightenresize_longest_sidesluiten elkaar wederzijds uit.
- Name
- auto_size
- Type
- boolean
- ⚠ verouderd
- standaard false
- Description
Als dit op
trueis ingesteld, gebruikt de service AI-vision om automatisch de werkelijke hoogte van het object in te schatten en het formaat van het model hierop aan te passen. We raden aan hiervoor de speciale Resize API te gebruiken.auto_size,resize_heightenresize_longest_sidesluiten elkaar wederzijds uit.
auto_size = true- Name
- origin_at
- Type
- string
- ⚠ verouderd
- standaard bottom
- Description
Positie van de oorsprong. We raden aan hiervoor de speciale Resize API te gebruiken.
Beschikbare waarden:
bottom,center.
- Name
- convert_format_only
- Type
- boolean
- ⚠ verouderd
- Description
Als dit op
truestaat, wijzigt de service alleen het formaat van het invoermodelbestand en negeert daarbij andere invoer zoalstopology,resize_heightentarget_polycount. We raden aan hiervoor de speciale Convert API te gebruiken.target_formatsmoet worden opgegeven alsconvert_format_onlyoptrueis ingesteld.
- Name
- alpha_thumbnail
- Type
- boolean
- standaard false
- Description
Als dit op
trueis ingesteld, rendert de taak bovendien een versie van de preview met transparante achtergrond (RGBA) en retourneert deze alsalpha_thumbnail_urlin de GET-respons. Het bestaande veldthumbnail_urlblijft ongewijzigd.
Retourwaarden
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: Er moet ofwel
model_urlofwelinput_task_idworden opgegeven. - Ongeldige invoertaak:
input_task_idmoet verwijzen naar een succesvolle taak van een ondersteund model. - Ongeldig modelformaat:
model_urlverwijst naar een bestand met een niet-ondersteunde extensie. - Onbereikbare URL:
model_urlkon niet worden gedownload. - Modelbestand te groot: Het bestand bij
model_urlis groter dan 400 MB (http- ofhttps-URL) of 100 MB (data:-URI). - Te veel vlakken: Het bestand bij
model_urlis groter dan 100 MB en heeft meer dan 10.000.000 vlakken. Verminder het aantal vlakken en verstuur het bestand opnieuw. - ASCII FBX groter dan 100 MB: Het bestand bij
model_urlis een ASCII FBX groter dan 100 MB. Verstuur het als binaire FBX of GLB. - Onleesbaar modelbestand: Het bestand bij
model_urlis groter dan 100 MB en de header kan niet worden gelezen, bijvoorbeeld een Draco-gecomprimeerde GLB of glTF, of een binaire FBX ouder dan 7.1. - Modelheader te complex: Het bestand bij
model_urlis groter dan 100 MB en de header bevat te veel meshes, nodes of records om te controleren. Verminder het aantal objecten in het bestand en verstuur het opnieuw. - Ongeldige topology: De parameter
topologyis ongeldig. - Elkaar uitsluitende parameters:
auto_sizeenresize_heightkunnen niet beide worden ingesteld.
- Ontbrekende parameter: Er moet 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"
}
Een Remesh-taak ophalen
Dit endpoint haalt een remesh-taak op aan de hand van de ID.
Parameters
- Name
- id
- Type
- path
- Description
De ID van de remesh-taak die moet worden opgehaald.
Retourneert
Het Remesh Task-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,
}
Een Remesh-taak verwijderen
Dit endpoint verwijdert een remesh-taak permanent, inclusief alle bijbehorende modellen en gegevens. Deze actie is onomkeerbaar.
Padparameters
- Name
- id
- Type
- path
- Description
De ID van de remesh-taak die verwijderd moet worden.
Taakstatus
Een taak die nog PENDING is, wordt verwijderd en de credits die bij het
aanmaken zijn verbruikt, worden terugbetaald.
Een taak die al IN_PROGRESS is, kan niet worden verwijderd: het verzoek
wordt afgewezen met 409 Conflict en de taak blijft doorlopen. Credits voor
een taak waarmee de worker al is begonnen, zijn niet terugbetaalbaar,
dus als u deze halverwege verwijdert, verliest u zowel de credits als het
resultaat. Wacht tot de taak SUCCEEDED, FAILED of CANCELED bereikt,
en verwijder deze daarna.
Een taak in een eindstatus (SUCCEEDED, FAILED of CANCELED) wordt
verwijderd zonder terugbetaling.
Retourwaarden
Retourneert 200 OK bij succes, of 409 Conflict wanneer de taak
IN_PROGRESS is.
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."
}
List Remesh Tasks
Met deze 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
Paginagroottelimiet. Maximaal toegestaan is
100items.
- 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 van 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
}
]
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 die gestreamd moet worden.
Retourneert
Retourneert een stream van The Remesh Task Objects als Server-Sent Events.
Voor taken met status PENDING of IN_PROGRESS 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 Task Object
Het Remesh Task object vertegenwoordigt een werkeenheid 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 identifier voor de taak. Hoewel we een k-sorteerbare UUID gebruiken voor taak-id's als implementatiedetail, moet je geen aannames doen 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 bewerkte 3D-modelbestand met textuur, gegenereerd door Meshy. De eigenschap voor een formaat wordt weggelaten als het formaat niet is gegenereerd, in plaats van een lege string 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 gerenderd vanuit het geremeshte 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 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 beëindigd, in milliseconden. Als de taak nog niet is beëindigd, is deze eigenschap
0.
- Name
- task_error
- Type
- object
- Description
Foutdetails voor mislukte taken. Zie Fouten voor de volledige
task_errorobject-referentie.
- Name
- consumed_credits
- Type
- integer
- Description
Het aantal credits dat door deze taak is verbruikt. Aanwezig wanneer de taakstatus
PENDING,IN_PROGRESS, ofSUCCEEDEDis. Retourneert0voorFAILED-taken (credits worden bij falen terugbetaald).
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
}