Reliëf API
Zet één foto om in een bas-reliëf 3D-model en een 16-bit dieptekaart, voor 3D-printen, lasergraveren en CNC-frezen.
Een Reliëf-taak maken
Maakt een Reliëf-taak aan. De taak zet een foto om in een bas-reliëf model. Als het slaagt, levert de taak het model op als een GLB-bestand en een STL-bestand, een 16-bit grijswaarden dieptekaart en een voorbeeldafbeelding. Om alleen de dieptekaart te krijgen, stel je should_generate_model in op false.
De taak draait op de achtergrond.
Een Reliëf-taak kan niet de invoer zijn van een andere endpoint, zoals Remesh, Converteren of Auto Split. Dergelijke verzoeken geven 403 terug.
Request
# Simple request: a low relief, 60 mm on its longer side
curl https://api.meshy.ai/openapi/v1/relief \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"image_url": "<your publicly accessible image url or base64-encoded data URI>"
}'
# Advanced request: a deep 120 mm relief with a thicker base, curved from side to side
curl https://api.meshy.ai/openapi/v1/relief \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"image_url": "<your publicly accessible image url or base64-encoded data URI>",
"variant": "high",
"size_mm": 120,
"carving_depth_mm": 10,
"base_thickness_mm": 3,
"bend_mode": "convex",
"bend_angle": 90
}'
Response
{
"result": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20"
}
Parameters
- Name
- image_url
- Type
- string
- Verplicht
- Description
De foto die wordt omgezet in een reliëf, als een openbare URL of een data-URI (
data:image/png;base64,...).De afbeelding moet een JPG-, JPEG-, PNG- of WebP-bestand zijn van maximaal 20 MB, en minstens 32 × 32 pixels. De langere zijde mag maximaal ongeveer 16 keer de kortere zijde zijn. Elke andere afbeelding geeft
400terug. Meshy vult transparante gebieden met zwart voordat het reliëf wordt opgebouwd.
- Name
- variant
- Type
- string
- standaard low
- Description
De reliëfstijl. Deze bepaalt de dieptekaart en stelt de standaard
carving_depth_mmin.Beschikbare waarden:
high: diepere uitsnijding, voor 3D-geprinte stukken.low: ondiepe uitsnijding, voor lasergraveren, CNC-graveren en dunne plaquettes.
Het sturen van
nullof""is hetzelfde als het weglaten. Elke andere waarde geeft400terug.
- Name
- should_generate_model
- Type
- boolean
- standaard true
- Description
Of het reliëfmodel wordt gebouwd. Stel dit in op
falsevoor een taak die alleen een dieptekaart oplevert, zonder model en zonder voorbeeldafbeelding. Meshy controleert nog steeds de parameters voor grootte, uitsnijding, basis, buiging en resolutie, maar gebruikt ze niet. Het verandert de credit-kosten niet.
- Name
- size_mm
- Type
- number
- standaard 60
- Description
De lengte van de langere zijde van de foto op het model, gemeten plat voor elke buiging, van
20tot250millimeter. Metremove_basekan het model kleiner zijn.
- Name
- carving_mode
- Type
- string
- standaard emboss
- Description
Of het onderwerp uit de plaat steekt of erin wordt uitgesneden.
Beschikbare waarden:
emboss: de dichterbij gelegen delen van de foto steken naar voren.engrave: de diepte wordt omgekeerd, zodat de dichterbij gelegen delen worden ingesneden.
De dieptekaart is in beide modi hetzelfde.
- Name
- carving_depth_mm
- Type
- number
- standaard 6 (high), 3 (low)
- Description
Hoe diep het reliëf wordt uitgesneden, van
0tot60millimeter. Metremove_baseingesteld optrue, laat0een leeg model achter. De taak slaagt nog steeds en kost 20 credits, en de GLB- en STL-bestanden bevatten geen geometrie.
- Name
- remove_base
- Type
- boolean
- standaard false
- Description
Of de achtergrond wordt weggesneden en er geen basisplaat wordt gebouwd. Als dit
trueis, bepaaltremoval_thresholdwat als achtergrond geldt. Meshy controleertremoval_thresholdin beide gevallen.
remove_base = true- Name
- removal_threshold
- Type
- number
- standaard 0.01
- Description
De diepte waaronder Meshy de achtergrond wegsnijdt, van
0.01tot1, waarbij de dieptekaart loopt van0tot1. Een hoge waarde kan het hele reliëf wegsnijden en een leeg model achterlaten, wat nog steeds slaagt en in rekening wordt gebracht.
- Name
- base_thickness_mm
- Type
- number
- standaard 1, or 0 with remove_base
- Description
De dikte van de basisplaat, van
0.1tot10millimeter. Alsremove_basetrueis, laat je dit weg of stuur je0.
- Name
- bend_mode
- Type
- string
- standaard off
- Description
Of het reliëf wordt gebogen, en in welke richting. Als dit niet
offis, bepalenbend_axisenbend_anglede vorm van de buiging. Meshy controleert ze in beide gevallen.Beschikbare waarden:
off: een plat reliëf.convex: de voorkant bolt naar buiten.concave: de voorkant kromt naar binnen.
bend_mode = convex or concave- Name
- bend_axis
- Type
- string
- standaard xz
- Description
Welke randen de buiging omkrult.
Beschikbare waarden:
xz: de linker- en rechterrand.yz: de boven- en onderrand.
- Name
- bend_angle
- Type
- number
- standaard 60
- Description
De boog die de buiging beslaat, van
0tot360graden. Onder1blijft het reliëf plat.
- Name
- mesh_resolution
- Type
- integer
- standaard 1024
- Description
Het aantal meshpunten langs de langere zijde van de foto, van
512tot2048. Een hogere waarde behoudt fijnere details en maakt grotere bestanden. Bij de standaardwaarde1024is het GLB-bestand ongeveer 40 tot 50 MB en het STL-bestand ongeveer 80 tot 105 MB. Een vierkante foto geeft de grotere bestandsgroottes. Bij2048zijn ze ongeveer 150 MB en 300 MB. Een buiging maakt ze groter: het STL-bestand kan bij2048oplopen tot ongeveer 800 MB.
Resultaat
202 Accepted, met de ID van de nieuwe Reliëf-taak in result.
Faalmodi
- Name
400 - Bad Request- Description
Het verzoek kan niet worden uitgevoerd. Het foutbericht geeft aan welk probleem er is gevonden. Bijvoorbeeld:
- Ontbrekende parameter:
image_urlwerd niet meegestuurd. - Ongeldige parameter: Een parameter heeft het verkeerde type, valt buiten het bereik, of is niet een van de beschikbare waarden. Bijvoorbeeld,
variantis niethighoflow, ofmesh_resolutionis geen geheel getal van512tot2048. - Basisdikte:
base_thickness_mmis niet0terwijlremove_baseoptruestaat, of is lager dan0.1zonder dat. - Onbereikbare URL: Meshy kan de
image_url-afbeelding niet downloaden, bijvoorbeeld omdat de URL404teruggeeft of een time-out optreedt. - Ongeldige afbeelding: De afbeelding is geen JPG-, JPEG-, PNG- of WebP-bestand, is groter dan 20 MB, is kleiner dan 32 × 32 pixels, heeft te veel pixels, of kan niet worden gelezen.
- Extreme beeldverhouding: De langere zijde van de afbeelding is meer dan ongeveer 16 keer de kortere zijde.
Herstel het verzoek en stuur het opnieuw. Meshy brengt hiervoor geen kosten in rekening. Zie Fouten.
- Ontbrekende parameter:
- 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 credit-limiet bereikt. Controleer je credit-saldo en probeer het opnieuw.
- Gratis abonnement: Het aanmaken van een taak vereist een betaald abonnement. Upgrade je abonnement in je abonnementsinstellingen en probeer het opnieuw.
- Name
403 - Forbidden- Description
Contentmoderatie heeft de afbeelding geblokkeerd. Meshy brengt hiervoor geen kosten in rekening. Stuur een andere afbeelding.
- Name
429 - Too Many Requests- Description
Een van deze limieten is bereikt:
- Je hebt te veel verzoeken verstuurd. Wacht en probeer het opnieuw. Zie Snelheidslimieten.
- Er staan te veel van je taken in de wachtrij of lopen er al te veel. Wacht tot sommige klaar zijn en probeer het opnieuw.
- Bij een onbeperkt abonnement zonder resterende credits heb je het aantal taken bereikt dat zonder credits kan draaien. Wacht tot een taak klaar is, of voeg credits toe.
Als een veiligheidscontrole de afbeelding weigert terwijl de taak draait, mislukt de taak met task_error.type ingesteld op invalid_input en task_error.code ingesteld op provider_content_refused. Meshy vergoedt de credits van de taak. Stuur een andere afbeelding. Zie Fouten.
Haal een Reliëf-taak op
Retourneert een Reliëf-taak op basis van de ID.
Request
curl https://api.meshy.ai/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
"type": "relief",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.stl?Expires=***"
},
"depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/depth.png?Expires=***",
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/preview.png?Expires=***",
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000060000,
"expires_at": 1700259260000,
"task_error": null,
"consumed_credits": 20
}
Parameters
- Name
- id
- Type
- path
- Description
De taak-ID uit het antwoord van het aanmaken.
Retourneert
Het Reliëf-taakobject.
Een Reliëftaak verwijderen
Verwijdert een Reliëftaak permanent, inclusief het model, de dieptekaart en de data. Je kunt een verwijdering niet ongedaan maken.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20 \
-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 restitueert de credits die werden gebruikt bij het aanmaken ervan.
Een IN_PROGRESS-taak kan niet worden verwijderd. Het verzoek geeft 409 Conflict terug,
en de taak blijft actief. Meshy restitueert geen taak die al is gestart,
dus het verwijderen ervan zou je zowel de credits als het resultaat kosten. Wacht tot de taak
SUCCEEDED of FAILED bereikt, en verwijder hem dan.
Het verwijderen van een SUCCEEDED-taak restitueert de credits niet. Een FAILED-taak is al gerestitueerd toen deze mislukte.
Retourwaarden
200 OK wanneer de taak is verwijderd, of 409 Conflict wanneer de taak
IN_PROGRESS is.
List van Reliëf-taken
Retourneert een lijst van uw Reliëf-taken.
Request
curl https://api.meshy.ai/openapi/v1/relief?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
"type": "relief",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.stl?Expires=***"
},
"depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/depth.png?Expires=***",
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/preview.png?Expires=***",
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000060000,
"expires_at": 1700259260000,
"task_error": null,
"consumed_credits": 20
}
]
Parameters
- Name
- page_num
- Type
- integer
- Description
Het paginanummer dat moet worden geretourneerd. Begint bij en standaard
1.
- Name
- page_size
- Type
- integer
- Description
Het aantal taken per pagina, tot
100. Standaard10. Meshy behandelt een waarde van101tot255als100, en een grotere waarde geeft400terug.
- Name
- sort_by
- Type
- string
- Description
De sorteervolgorde.
Beschikbare waarden:
+created_at: oudste eerst-created_at: nieuwste eerst
Retourneert
Een gepagineerde lijst van Reliëf-taakobjecten.
Stream een Reliëf-taak
Streamt de updates van een Reliëf-taak als Server-Sent Events (SSE).
Request
curl -N https://api.meshy.ai/openapi/v1/relief/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/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 (other task fields omitted here for brevity;
// each frame is the full task object).
event: message
data: {
"id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
"type": "relief",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.stl?Expires=***"
},
"depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/depth.png?Expires=***",
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/preview.png?Expires=***",
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000060000,
"expires_at": 1700259260000,
"task_error": null,
"consumed_credits": 20
}
Parameters
- Name
- id
- Type
- path
- Description
De taak-ID uit het aanmaakantwoord.
Retourneert
Een stream van Reliëf-taakobjecten als Server-Sent Events.
Elke message-gebeurtenis bevat het volledige taakobject, hetzelfde object dat Haal een Reliëf-taak op retourneert. Zolang de taak PENDING of IN_PROGRESS is, zijn de velden die tussen gebeurtenissen veranderen progress, status, started_at en preceding_tasks (alleen aanwezig zolang er taken voor deze in de rij staan). model_urls, depth_map_url en thumbnail_url krijgen hun waarden zodra de taak SUCCEEDED bereikt. Een taak die alleen een depth map genereert, behoudt model_urls {} en een lege thumbnail_url.
Een error-gebeurtenis bevat alleen status_code en message, controleer dus de naam van de gebeurtenis voordat je status uitleest.
Het Reliëf-taakobject
Een Reliëf-taakobject beschrijft één reliëf gemaakt van een foto. model_urls, depth_map_url en thumbnail_url zijn altijd aanwezig, en leeg totdat de taak slaagt.
The Relief Task Object
{
"id": "0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20",
"type": "relief",
"model_urls": {
"glb": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.glb?Expires=***",
"stl": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/model.stl?Expires=***"
},
"depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/depth.png?Expires=***",
"thumbnail_url": "https://assets.meshy.ai/***/tasks/0199c3d2-5a7e-7b14-9e2f-3c8d1a6b4f20/output/preview.png?Expires=***",
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000060000,
"expires_at": 1700259260000,
"task_error": null,
"consumed_credits": 20
}
Depth map only
{
"id": "0199c3d2-6b8f-7c25-8f3a-4d9e2b7c5a31",
"type": "relief",
"model_urls": {},
"depth_map_url": "https://assets.meshy.ai/***/tasks/0199c3d2-6b8f-7c25-8f3a-4d9e2b7c5a31/output/depth.png?Expires=***",
"thumbnail_url": "",
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000030000,
"expires_at": 1700259230000,
"task_error": null,
"consumed_credits": 20
}
- 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
relief.
- Name
- model_urls
- Type
- object
- Description
Downloadlinks voor het reliëfmodel. De bestanden kunnen groot zijn;
mesh_resolutiongeeft de gebruikelijke bestandsgroottes aan.- Name
glb- Type
- string
- Description
Het GLB-bestand, zonder textuur. De eenheden zijn meters. Afwezig bij een taak die alleen een dieptekaart genereert.
- Name
stl- Type
- string
- Description
Hetzelfde model als een binair STL-bestand. De eenheden zijn millimeters, zodat het bestand op de werkelijke grootte van het reliëf wordt geopend, met Z omhoog. Afwezig bij een taak die alleen een dieptekaart genereert.
- Name
- depth_map_url
- Type
- string
- Description
Downloadlink voor de 16-bit grijswaarden-dieptekaart waarop het reliëf is gebaseerd. Lichtere pixels zijn hoger. De waarden zijn relatieve hoogtes, geen millimeters. Lasergraveer- en CNC-software kan dit gebruiken als hoogtekaart. Het bestand is ongeveer 1 tot 2 MB groot. Leeg als er geen is.
- Name
- thumbnail_url
- Type
- string
- Description
Downloadlink voor een voorbeeldafbeelding van het reliëfmodel. Leeg als er geen is gerenderd, ook bij een taak die alleen een dieptekaart genereert.
- Name
- progress
- Type
- integer
- Description
Hoeveel van de taak is voltooid, als percentage. Dit is
0totdat de taak begint en100zodra deze slaagt.
- Name
- status
- Type
- string
- Description
De taakstatus, een van
PENDING,IN_PROGRESS,SUCCEEDED, ofFAILED.
- Name
- preceding_tasks
- Type
- integer
- Description
Het aantal taken dat voor deze taak in de wachtrij staat. Dit veld wordt weggelaten wanneer de waarde
0is, en verschijnt dus alleen zolang er taken voor deze taak staan.
- Name
- created_at
- Type
- timestamp
- Description
Tijdstip waarop de taak is 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 voltooid, in Unix-milliseconden. Dit is
0totdat de taak is voltooid.
- Name
- expires_at
- Type
- timestamp
- Description
Tijdstip waarop het resultaat van de taak verloopt, in Unix-milliseconden. Dit is
0totdat de taak is voltooid.
- Name
- task_error
- Type
- object
- Description
De foutgegevens wanneer de taak mislukt. Zie Fouten.
- Name
- consumed_credits
- Type
- integer
- Description
Het aantal credits dat de taak heeft gebruikt:
20, of0voor eenFAILED-taak, wat Meshy terugbetaalt.