Remesh API
Bouw de mesh van een 3D-model opnieuw op met een nieuwe topology en een nieuw aantal vlakken, en exporteer het in de formaten die u kiest. Het model kan afkomstig zijn van een andere Meshy-taak, zoals Afbeelding naar 3D of Tekst naar 3D, of van een modelbestand.
Een Remesh-taak aanmaken
Maakt een Remesh-taak aan. De taak draait op de achtergrond. Voor de gebruikelijke duur van een taak, zie Verwerkingstijden.
Gebruik de Convert API of de Resize API om het formaat van een model te converteren of de afmetingen te wijzigen. De verouderde parameters op deze pagina werken nog steeds, maar nieuwe integraties moeten deze endpoints gebruiken.
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"
}
Parameters
- Name
- input_task_id
- Type
- string
- Verplicht
- Description
Vereist, tenzij u
model_urlmeestuurt. De ID van de taak waarvan u het model wilt remeshen, bijvoorbeeld een Tekst naar 3D-, Afbeelding naar 3D-, Hertextureren- of Remesh-taak. De taak moet er een zijn die u met de API heeft aangemaakt en de statusSUCCEEDEDhebben.
- Name
- model_url
- Type
- string
- Verplicht
- Description
Vereist, tenzij u
input_task_idmeestuurt. Het model om te remeshen, als een publieke URL of een data-URI. Als u beide meestuurt, gebruikt Meshyinput_task_id.Het model moet een GLB-, glTF-, OBJ-, FBX- of STL-bestand zijn van maximaal 400 MB vanaf een
http- ofhttps-URL, of 100 MB als data-URI. Gebruik voor een data-URI het MIME typeapplication/octet-stream.Een bestand groter dan 100 MB moet ook aan deze regels voldoen:
- Een GLB-, glTF-, FBX- of OBJ-bestand mag maximaal 10.000.000 vlakken hebben. Meshy telt vlakken als driehoeken, dus een quad telt als 2, en een mesh die meerdere keren wordt getekend telt één keer per kopie.
- Een FBX-bestand moet binaire FBX 7.1 of nieuwer zijn.
- Een GLB- of glTF-bestand mag geen Draco-compressie gebruiken.
- Name
- target_formats
- Type
- string[]
- standaard ["glb"]
- Description
De te genereren bestandsindelingen.
Beschikbare waarden:
glbfbxobjusdzblendstl3mf
- Name
- topology
- Type
- string
- standaard triangle
- Description
Het vlaktype van het geremeshte model.
Beschikbare waarden:
quad: een overwegend uit quads bestaande meshtriangle: een gedecimeerde driehoeksmesh
- Name
- target_polycount
- Type
- integer
- standaard 30000
- Description
Het beoogde aantal vlakken, van
100tot300000. Het resultaat kan afwijken van het doel, afhankelijk van de geometrie van het model. Een waarde buiten het bereik geeft400terug.
- Name
- decimation_mode
- Type
- integer
- Description
Adaptief aantal vlakken, per niveau. Wanneer u dit instelt, negeert Meshy
target_polycount.Beschikbare waarden:
1: ultra2: hoog3: gemiddeld4: laag
- Name
- resize_height
- Type
- number
- ⚠ verouderd
- standaard 0
- Description
Gebruik in plaats daarvan de Resize API. De hoogte om het model op te schalen, in meters. Stuur maximaal één van
resize_height,resize_longest_sideenauto_size.
- Name
- resize_longest_side
- Type
- number
- ⚠ verouderd
- standaard 0
- Description
Gebruik in plaats daarvan de Resize API. De lengte om de langste zijde van de bounding box van het model naar te schalen, in meters. Stuur maximaal één van
resize_height,resize_longest_sideenauto_size.
- Name
- auto_size
- Type
- boolean
- ⚠ verouderd
- standaard false
- Description
Gebruik in plaats daarvan de Resize API. Of de werkelijke hoogte van het object moet worden geschat met AI-visie en het model daarnaar moet worden geschaald. Stuur maximaal één van
resize_height,resize_longest_sideenauto_size.
- Name
- origin_at
- Type
- string
- ⚠ verouderd
- standaard bottom
- Description
Gebruik in plaats daarvan de Resize API. Waar de oorsprong van het model moet worden geplaatst,
bottomofcenter. De standaardwaarde geldt wanneer uresize_height,resize_longest_sideofauto_sizemeestuurt. Zonder één daarvan verplaatst Meshy de oorsprong alleen als uorigin_atmeestuurt.
- Name
- convert_format_only
- Type
- boolean
- ⚠ verouderd
- Description
Gebruik in plaats daarvan de Convert API. Of het model alleen naar
target_formatsmoet worden geconverteerd. Als dittrueis, negeert Meshytopology,target_polycount,decimation_mode,resize_height,resize_longest_sideenauto_size, maar controleert hun waarden nog steeds, dus een ongeldige waarde geeft400terug. Metconvert_format_only: truegeeft een lege ofnulltarget_formats400terug.
- Name
- alpha_thumbnail
- Type
- boolean
- standaard false
- Description
Of er ook een voorbeeld met een transparante achtergrond (RGBA) moet worden gerenderd, dat wordt teruggegeven in
alpha_thumbnail_urlwanneer u de taak ophaalt.thumbnail_urlverandert niet.
Retourwaarden
Het veld result van de respons bevat de ID van de nieuwe Remesh-taak.
Foutmodi
- Name
400 - Bad Request- Description
Het verzoek kan niet worden uitgevoerd. Het foutbericht geeft aan welk probleem er is gevonden. Bijvoorbeeld:
- Ontbrekende parameter: Noch
model_urlnochinput_task_idis meegestuurd. - Ongeldige invoertaak:
input_task_idis geen geslaagde API-taak, of het AI-model ondersteunt geen remeshen. - Ongeldige modelindeling: Het
model_url-bestand heeft een niet-ondersteunde extensie. - Onbereikbare URL: Meshy kan het
model_url-bestand niet downloaden. - Modelbestand te groot: Het
model_url-bestand is groter dan 400 MB vanaf eenhttp- ofhttps-URL, of groter dan 100 MB als data-URI. - Te veel vlakken: Het
model_url-bestand is groter dan 100 MB en heeft meer dan 10.000.000 vlakken. Verminder het aantal vlakken en stuur het bestand opnieuw. - ASCII FBX groter dan 100 MB: Het
model_url-bestand is een ASCII FBX groter dan 100 MB. Stuur het als binaire FBX of GLB. - Onleesbaar modelbestand: Het
model_url-bestand is groter dan 100 MB, en Meshy kan de header niet lezen. Bijvoorbeeld een met Draco gecomprimeerde GLB of glTF, of een binaire FBX ouder dan 7.1. - Modelheader te complex: Het
model_url-bestand is 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 stuur het opnieuw. - Ongeldige topology:
topologyis nietquadoftriangle. - Elkaar uitsluitende parameters: Het verzoek bevat meer dan één van
auto_size,resize_heightenresize_longest_side. Stuur er slechts één.
Corrigeer het verzoek en stuur het opnieuw. Zie Fouten.
- Ontbrekende parameter: Noch
- Name
401 - Unauthorized- Description
De API-sleutel ontbreekt of is ongeldig. Controleer de
Authorization-header.
- Name
402 - Payment Required- Description
Bijvoorbeeld:
- Onvoldoende credits: Het account heeft niet genoeg credits voor deze taak, of het account heeft een creditlimiet bereikt. Controleer uw creditsaldo en probeer het opnieuw.
- Gratis abonnement: Voor het aanmaken van een taak is een betaald abonnement vereist. Upgrade uw abonnement in uw abonnementsinstellingen en probeer het opnieuw.
- Name
403 - Forbidden- Description
input_task_idis een basreliëfmodel, dat deze endpoint niet kan remeshen. Het bericht isThis model type does not support this operation. Stuur een ander model.
- Name
404 - Not Found- Description
input_task_idkomt niet overeen met een van uw taken. Controleer de taak-ID en stuur het verzoek opnieuw.
- Name
429 - Too Many Requests- Description
U heeft uw rate limit overschreden. Wacht en probeer het opnieuw. Zie Rate limits.
Haal een Remesh-taak op
Geeft een Remesh-taak terug op basis van de 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
}
Parameters
- Name
- id
- Type
- path
- Description
De taak-ID uit de aanmaakrespons.
Retourneert
Het Remesh-taakobject.
Een Remesh-taak verwijderen
Verwijdert een Remesh-taak permanent, inclusief de bijbehorende modellen en gegevens. Je kunt een verwijdering niet ongedaan maken.
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."
}
Padparameters
- Name
- id
- Type
- path
- Description
De ID van de te verwijderen taak.
Taakstatus
Het verwijderen van een PENDING-taak vergoedt de credits die zijn gebruikt bij het aanmaken ervan.
Een IN_PROGRESS-taak kan niet worden verwijderd. Het verzoek retourneert 409 Conflict,
en de taak blijft actief. Meshy vergoedt geen taak die al is gestart,
dus het verwijderen ervan zou je zowel de credits als het resultaat kosten. Wacht tot de taak
de status SUCCEEDED, FAILED of CANCELED bereikt en verwijder deze dan.
Het verwijderen van een taak met een definitieve status (SUCCEEDED, FAILED of CANCELED)
leidt niet tot terugbetaling van de credits.
Resultaat
200 OK wanneer de taak is verwijderd, of 409 Conflict wanneer de taak
IN_PROGRESS is.
Lijst van Remesh-taken
Geeft een lijst van uw Remesh-taken terug.
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
}
]
Parameters
- Name
- page_num
- Type
- integer
- standaard 1
- Description
Het paginanummer dat wordt geretourneerd, tot
255. Een hogere waarde geeft400terug.
- Name
- page_size
- Type
- integer
- standaard 10
- Description
Het aantal taken per pagina, tot
100.
- Name
- sort_by
- Type
- string
- Description
De sorteervolgorde.
Beschikbare waarden:
+created_at: oudste eerst-created_at: nieuwste eerst
Retourneert
Een gepagineerde lijst van Remesh-taakobjecten.
Stream een Remesh-taak
Streamt de updates van een Remesh-taak als 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,
}
Parameters
- Name
- id
- Type
- path
- Description
De taak-ID uit de create-respons.
Retourwaarden
Een stream van Remesh-taakobjecten als Server-Sent Events.
Elk event bevat het volledige taakobject, in dezelfde vorm als de Get endpoint retourneert. Zolang de taak PENDING of IN_PROGRESS is, hebben de resultaatvelden nog geen waarden.
Het Remesh-taakobject
Een Remesh-taakobject beschrijft één remesh van een 3D-model. Het bevat de status, de progress en de modelbestanden wanneer de taak slaagt.
Eigenschappen
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
De taak-ID. Behandel dit als een ondoorzichtige string en vertrouw niet op het formaat ervan.
- Name
- type
- Type
- string
- Description
Het taaktype, altijd
remesh.
- Name
- model_urls
- Type
- object
- Description
Downloadlinks voor het geremeshte model, één per bestandsformaat. Een formaat dat de taak niet heeft gegenereerd, heeft geen sleutel, in plaats van een lege string.
- Name
glb- Type
- string
- Description
Het GLB-bestand.
- Name
fbx- Type
- string
- Description
Het FBX-bestand.
- Name
obj- Type
- string
- Description
Het OBJ-bestand.
- Name
usdz- Type
- string
- Description
Het USDZ-bestand.
- Name
blend- Type
- string
- Description
Het Blender-bestand.
- Name
stl- Type
- string
- Description
Het STL-bestand.
- Name
3mf- Type
- string
- Description
Het 3MF-bestand. Alleen aanwezig wanneer
target_formats3mfbevat.
- Name
- thumbnail_url
- Type
- string
- Description
Downloadlink voor een voorbeeldafbeelding van het geremeshte model.
- Name
- alpha_thumbnail_url
- Type
- string
- Description
Downloadlink voor een versie van
thumbnail_urlmet een transparante achtergrond (RGBA). Alleen aanwezig wanneer je de taak hebt aangemaakt metalpha_thumbnail: trueen Meshy het transparante voorbeeld heeft gerenderd.
- Name
- progress
- Type
- integer
- Description
Hoeveel van de taak is voltooid, als een percentage. Dit is
0totdat de taak start en100wanneer deze slaagt.
- Name
- status
- Type
- string
- Description
De taakstatus, één van
PENDING,IN_PROGRESS,SUCCEEDED,FAILED, ofCANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Het aantal taken dat voor deze in de wachtrij staat. De waarde is alleen betekenisvol zolang de taak
PENDINGis.
- Name
- created_at
- Type
- timestamp
- Description
Tijdstip waarop de taak werd aangemaakt, in Unix-milliseconden.
- Name
- started_at
- Type
- timestamp
- Description
Tijdstip waarop de taak is gestart, in Unix-milliseconden. Dit is
0totdat de taak start.
- Name
- finished_at
- Type
- timestamp
- Description
Tijdstip waarop de taak is beëindigd, in Unix-milliseconden. Dit is
0totdat de taak beëindigd is.
- Name
- expires_at
- Type
- timestamp
- Description
Tijdstip waarop de downloadlinks van de taak verlopen, in Unix-milliseconden. Dit is
0totdat de taak beëindigd is.
- Name
- texture_urls
- Type
- array
- Description
Downloadlinks voor de textuurmaps van het model, wanneer de taak slaagt: een array van objecten, één per textuurset. Elk object heeft een
base_color-URL, en kan ookmetallic-,roughness-,normal-,emission- enmetallic_roughness-URL's hebben. Dit isnulltotdat de taak slaagt, en een lege array wanneer het model geen textuurmaps heeft.
- Name
- task_error
- Type
- object
- Description
De foutdetails wanneer de taak mislukt. Zie Fouten.
- Name
- consumed_credits
- Type
- integer
- Description
Het aantal credits dat de taak heeft gebruikt. Aanwezig wanneer de status
PENDING,IN_PROGRESS, ofSUCCEEDEDis. Dit is0voor eenFAILED-taak, omdat Meshy de credits terugbetaalt wanneer een taak mislukt.