Zet een bronfoto in twee fasen om in een 3D-printbare lampenkap: in de fase
prototype wordt een gestileerde matwitte conceptafbeelding gegenereerd en
omgezet in een hol 3D-model (GLB), waarna de fase build de lampprocessor
op dat model uitvoert om de printbare STL-onderdelen te produceren — een
lampenkap zonder bodem met een basisplaat voor de lichtbronarmatuur, plus de
armatuurbevestiging zelf. De twee fasen zijn gekoppeld via input_task_id.
Genereer een enkele mat-witte conceptafbeelding op basis van een referentiefoto en
converteer deze naar een hol 3D-lampenkapmodel. Het antwoord bevat zowel de
conceptafbeelding (image_urls) als het 3D-model (model_urls.glb met een
thumbnail_url). De geretourneerde task-ID is wat u doorgeeft als input_task_id
aan de build-endpoint. Raadpleeg
Het Lamp Prototype Task-object
voor de vorm van het antwoord.
Parameters
Name
image_url
Type
string
Verplicht
Description
Bronfoto die Meshy gebruikt als visuele referentie voor de lampenkap. We ondersteunen momenteel de formaten .jpg, .jpeg, .png en .webp.
Er zijn twee manieren om de afbeelding aan te leveren:
Openbaar toegankelijke URL: Een URL die toegankelijk is vanaf het openbare internet.
Data URI: Een base64-gecodeerde data-URI van de afbeelding. Voorbeeld van een data-URI: data:image/jpeg;base64,<uw base64-gecodeerde afbeeldingsdata>.
Name
image_subject
Type
string
standaard character
Description
Onderwerpcategorie-hint die de stylization-prompt bepaalt. Beschikbare waarden:
character (standaard) — enkel personage/object-onderwerp (figuurtje, dier, mascotte, enz.).
Optionele taaknaam voor weergavedoeleinden. Maximaal 100 tekens.
Name
remove_background
Type
boolean
standaard false
Description
Wanneer ingesteld op true, wordt de prototypeafbeelding geretourneerd als een transparante RGBA-PNG met de achtergrond verwijderd, zodat u het onderwerp op elke gewenste achtergrond kunt plaatsen.
Retourneert
De result-property van het antwoord bevat de task-id van de nieuw aangemaakte lamp-prototypetaak. Poll de Get a Task-endpoint of abonneer u op de stream totdat de taak SUCCEEDED bereikt, en geef die ID vervolgens door aan de build-endpoint als input_task_id.
Faalscenario's
Name
400 - Bad Request
Description
Het verzoek was onaanvaardbaar. Veelvoorkomende oorzaken:
Ontbrekende parameter: image_url is verplicht.
Ongeldig afbeeldingsformaat: De opgegeven image_url heeft geen ondersteund formaat (.jpg, .jpeg, .png, .webp).
Afbeeldingsafmetingen buiten bereik: De afbeelding is te klein, overschrijdt de maximale bestandsgrootte, of overschrijdt het maximale aantal pixels.
Onbereikbare URL: De image_url kon niet worden gedownload (404 of timeout).
Ongeldige Data URI: De base64-string is onjuist opgemaakt.
Content gemarkeerd: De invoerafbeelding werd gemarkeerd door NSFW- of intellectuele-eigendom-moderation.
Ongeldige image_subject: Niet een van character / landscape.
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
POST
/openapi/creative-lab/lamp/v1/prototype
# Stage 1: concept image + hollow 3D lampshade model from a source photocurlhttps://api.meshy.ai/openapi/creative-lab/lamp/v1/prototype \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "image_url": "<your publicly accessible image url or base64-encoded data URI>", "image_subject": "character" }'
Response
{"result":"018a210d-8ba4-705c-b111-1f1776f7f578"}
Prototypevoorbeeld
Begin met een bronfoto; het prototype retourneert de conceptafbeelding en een hol 3D-model dat door de build-fase wordt verwerkt.
Genereer de definitieve 3D-printbare onderdelen op basis van een geslaagde prototype-taak.
De build voert de lamp-processor uit op het 3D-model van het prototype: het schaalt
het model naar diameter_mm, maakt de onderkant vlak met cut_amount_percent,
holt het uit tot thickness_mm, opent de onderkant en — wanneer een fixture-
preset is gekozen — voegt het een bodemplaat toe met het fixture-gat en een aparte
montage voor de lichtbron. Raadpleeg
Het Lamp Build Task-object voor de
vorm van de response.
Parameters
Name
input_task_id
Type
string
Verplicht
Description
De task-ID van een prototype-taak die is aangemaakt via dezelfde OpenAPI-endpoint. Het prototype moet zijn aangemaakt met dezelfde API-sleutel, moet SUCCEEDED hebben bereikt en moet een 3D-model hebben opgeleverd.
Prototype-taken die via de webapp zijn aangemaakt worden niet geaccepteerd — de build-endpoint accepteert alleen prototype-taken die zijn aangemaakt via POST /openapi/creative-lab/lamp/v1/prototype en weigert elke andere bron met 404.
Name
name
Type
string
Description
Optionele taaknaam voor weergavedoeleinden. Maximaal 100 tekens.
options
Optionele afstemparameters voor de geometrie van de lampenkap. Elk veld heeft een zinvolle standaardwaarde — stuur alleen de velden die je wilt overschrijven.
Name
diameter_mm
Type
number
standaard 150
Description
Beoogde maximale afmeting van de bounding box van de lampenkap, in millimeters. De mesh wordt uniform geschaald om te passen. Bereik: [50, 400].
Name
thickness_mm
Type
number
standaard 1
Description
Wanddikte van de holle lampenkap, in millimeters. Bereik: (0, 10].
Name
cut_amount_percent
Type
number
standaard 1
Description
Percentage van de modelhoogte dat plat wordt afgesneden aan de onderkant, zodat de lampenkap op het printbed rust en een opening heeft voor de fixture. Bereik: [1, 100].
Name
light_source_preset
Type
string
standaard bambu_mh001_60mm
Description
Lichtbron-fixture-preset die bepaalt hoe de onderkant wordt opgebouwd. Beschikbare waarden:
bambu_mh001_60mm (standaard) — lampenkap met open onderkant plus een bodemplaat met een gat van 60 mm voor de fixture, beide in model_urls.lamp_stl, en de fixture-montage als model_urls.base_stl.
none — één afgesloten lampenkap in model_urls.lamp_stl; model_urls.base_stl wordt weggelaten.
Name
fixture_offset_x_mm
Type
number
standaard 0
Description
X-asverschuiving van het fixture-gat op de bodemplaat, ten opzichte van het midden van de lampenkap, in millimeters. Alleen relevant wanneer light_source_preset ≠ none. Bereik: [-80, 80].
Name
fixture_offset_z_mm
Type
number
standaard 0
Description
Z-asverschuiving (diepte) van het fixture-gat op de bodemplaat, ten opzichte van het midden van de lampenkap, in millimeters. Alleen relevant wanneer light_source_preset ≠ none. Bereik: [-80, 80].
Name
rotate_x_deg
Type
number
standaard 0
Description
Rotatie rond de X-as die vóór verwerking op het model wordt toegepast, in graden. De drie rotaties worden toegepast als XYZ-Euler-hoeken rond het middelpunt van het model. Bereik: [-360, 360].
Name
rotate_y_deg
Type
number
standaard 0
Description
Rotatie rond de Y-as die vóór verwerking op de geïmporteerde mesh wordt toegepast, in graden. Bereik: [-360, 360].
Name
rotate_z_deg
Type
number
standaard 0
Description
Rotatie rond de Z-as die vóór verwerking op de geïmporteerde mesh wordt toegepast, in graden. Bereik: [-360, 360].
Name
include_result_json
Type
boolean
standaard false
Description
Wanneer true en output.format gelijk is aan zip, wordt het result.json-bestand van de lamp-processor (pipelinenaam, waarschuwingen en artefactpaden) in de bundel opgenomen. Wordt genegeerd wanneer output.format gelijk is aan stl.
output
Optionele selector voor het uitvoerformaat. Standaard is stl.
Name
format
Type
string
standaard stl
Description
Artefactbundel die door de build wordt geretourneerd. Beschikbare waarden:
stl (standaard) — retourneert model_urls.lamp_stl (de lampenkap, samen met de bodemplaat wanneer een fixture-preset is ingesteld), plus model_urls.base_stl wanneer light_source_preset ≠ none.
zip — verpakt elk artefact dat de processor genereert (lamp.stl, optioneel base.stl, optioneel result.json) in één zip-bestand en retourneert dit onder model_urls.bundle_zip.
Retourwaarden
De result-eigenschap van de response bevat de task-id van de nieuw aangemaakte lamp build-taak. Poll de Get a Task-endpoint of abonneer je op de stream totdat de taak SUCCEEDED bereikt, en download vervolgens de artefacten via model_urls.
Foutmodi
Name
400 - Bad Request
Description
Het verzoek was onaanvaardbaar. Veelvoorkomende oorzaken:
Ontbrekende parameter: input_task_id is verplicht.
Ongeldige UUID: De input_task_id is geen geldige UUID.
Bovenliggende taak niet geslaagd: De referentie prototype-taak heeft SUCCEEDED nog niet bereikt.
Geen model: De prototype-taak is geslaagd, maar heeft geen 3D-model opgeleverd.
Opties buiten bereik: Een van de options-velden viel buiten het toegestane bereik of de toegestane enum-set.
Name
401 - Unauthorized
Description
Authenticatie is mislukt. Controleer je API-sleutel.
Name
402 - Payment Required
Description
Onvoldoende credits om deze taak uit te voeren.
Name
404 - Not Found
Description
De referentie prototype-taak bestaat niet, behoort toe aan een andere gebruiker, of is aangemaakt via de webapp (alleen prototype-taken in API-mode kunnen worden doorgeschakeld naar build).
Haal een prototype- of build-taak op aan de hand van een geldige taak-id. Het URL-pad
moet overeenkomen met de fase van de taak — een build-taak die via
/prototype/:id wordt opgehaald, geeft 404 terug, en omgekeerd.
Annuleer een lamp taak. Als de taak nog PENDING is, worden de credits die bij het aanmaken zijn verbruikt, teruggestort. Taken die al IN_PROGRESS zijn, worden geannuleerd zonder terugbetaling (de werknemer kan al bronnen aan het verbranden zijn). Taken die al een eindstatus hebben bereikt (SUCCEEDED, FAILED, CANCELED) kunnen niet worden geannuleerd.
Het URL-pad moet overeenkomen met de fase van de taak — DELETE op
/prototype/:buildId retourneert 404.
Padparameters
Name
id
Type
path
Description
Unieke identificatie voor de lamp taak om te annuleren.
Retourneert
Retourneert 204 No Content bij succes met een lege body.
Foutmodi
Name
400 - Bad Request
Description
De taak bevindt zich al in een eindstatus en kan niet worden geannuleerd.
Name
404 - Not Found
Description
De taak bestaat niet, behoort tot een andere gebruiker, of de fase komt niet overeen met het URL-pad.
Stream realtime updates voor een lamp-taak via Server-Sent Events (SSE).
Het URL-pad moet overeenkomen met de fase van de taak — het openen van een stream op
/prototype/:buildId/stream geeft één event: error-payload met
status_code: 404 en sluit de stream.
Parameters
Name
id
Type
path
Description
Unieke identifier voor de te streamen lamp-taak.
Retourneert
Retourneert een stream van Lamp Prototype
of Lamp Build taakobjecten als
Server-Sent Events. Voor taken met status PENDING of IN_PROGRESS bevat de
responsstream alleen de noodzakelijke velden progress en status.
// Error event example (wrong stage or task not found)event: errordata: {"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: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","progress": 0,"status": "PENDING"}event: messagedata: {"id": "019c320e-9a8f-7a1c-9c11-2a1876f8a9bb","type": "creative-lab-lamp-build","status": "SUCCEEDED","progress": 100,"created_at": 1729123500000,"started_at": 1729123510000,"finished_at": 1729123535000,"expires_at": 1729382735000,"task_error": null,"consumed_credits": 6,"model_urls": {"lamp_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/lamp.stl?Expires=***","base_stl":"https://assets.meshy.ai/***/tasks/019c320e-9a8f-7a1c-9c11-2a1876f8a9bb/output/base.stl?Expires=***" }}
Haal een gepagineerde lijst op van je lampentaken voor één enkele fase. Het URL-
pad bepaalt de fase — /prototype geeft prototypetaken terug; /build
geeft buildtaken terug. Taken uit de andere fase worden niet opgenomen in
beide antwoorden.
Padparameters
Name
stage
Type
path
Verplicht
Description
Ofwel prototype of build. De collectie geeft alleen taken terug
waarvan de fase overeenkomt met de URL — het ophalen van /prototype
geeft nooit buildtaken terug en omgekeerd.
Queryparameters
Name
page_num
Type
integer
standaard 1
Description
Paginanummer voor paginering.
Name
page_size
Type
integer
standaard 10
Description
Paginagrootte-limiet. Maximaal toegestaan is 50 items.
Name
sort_by
Type
string
standaard -created_at
Description
Veld om op te sorteren. Beschikbare waarden:
+created_at: Sorteer op aanmaaktijd in oplopende volgorde.
-created_at: Sorteer op aanmaaktijd in aflopende volgorde.
Het Lamp Prototype Task-object is een werkeenheid die Meshy bijhoudt om een gestileerd matwit conceptbeeld te genereren op basis van een bronfoto en dit om te zetten in een hol 3D-model. De output van deze fase wordt via input_task_id doorgeschakeld naar de build-fase.
Eigenschappen
Name
id
Type
string
Description
Unieke identifier voor de taak. Hoewel we als implementatiedetail een k-sorteerbare UUID gebruiken voor taak-id's, mag je geen aannames doen over de opmaak van de id.
Name
type
Type
string
Description
Type van de taak. De waarde is creative-lab-lamp-prototype.
Name
name
Type
string
Description
De taaknaam die is opgegeven bij het aanmaken van de taak. Lege string als er geen naam is opgegeven.
Name
status
Type
string
Description
Status van de taak. Mogelijke waarden zijn PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
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 dit 100.
Name
created_at
Type
timestamp
Description
Tijdstempel van het moment waarop de taak is aangemaakt, in milliseconden.
Een tijdstempel geeft het aantal milliseconden weer dat is verstreken sinds 1 januari 1970 UTC, volgens
de RFC 3339-standaard.
Vrijdag 1 september 2023 12:00:00 PM GMT wordt bijvoorbeeld weergegeven als 1693569600000. Dit geldt
voor alle tijdstempels in de Meshy API.
Name
started_at
Type
timestamp
Description
Tijdstempel van het moment waarop 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 het moment waarop de taak is voltooid, in milliseconden. Als de taak nog niet is voltooid, is deze eigenschap 0.
Name
expires_at
Type
timestamp
Description
Tijdstempel van het moment waarop het taakresultaat verloopt, in milliseconden.
Name
preceding_tasks
Type
integer
Description
Het aantal voorafgaande taken.
De waarde van dit veld is alleen relevant als de taakstatus PENDING is.
Name
task_error
Type
object
Description
Foutdetails voor mislukte taken. Zie Fouten voor de volledige referentie van het task_error-object.
Name
consumed_credits
Type
integer
Description
Het aantal credits dat door deze taak is verbruikt. Aanwezig wanneer de taakstatus PENDING, IN_PROGRESS of SUCCEEDED is. Geeft 0 terug voor FAILED-taken (credits worden terugbetaald bij een mislukking).
Name
model_urls
Type
object
Description
Downloadbare URL's voor het 3D-model dat is gegenereerd op basis van het conceptbeeld. Aanwezig zodra de taak is geslaagd; {} daarvoor.
Name
glb
Type
string
Description
Downloadbare URL naar het holle matwitte lampenkap-model in GLB-formaat. Dit is het model dat de build-fase verwerkt.
Name
thumbnail_url
Type
string
Description
Downloadbare URL naar een gerenderde preview van het 3D-model. Lege string totdat de taak is geslaagd.
Name
image_urls
Type
array of strings
Description
Downloadbare URL's voor de conceptbeeldkandidaten die door deze prototype-taak zijn gegenereerd. Momenteel geeft de API altijd precies één kandidaat terug; het veld is een array zodat toekomstige revisies meerdere kandidaten kunnen tonen zonder een breaking change.
Het lamp Build-taakobject is een werkeenheid die Meshy bijhoudt om de uiteindelijke 3D-printbare lampenkap te genereren uit een geslaagde prototypetaak. De build voert de lampprocessor uit op het 3D-model van het prototype om dit uit te hollen, de onderkant af te vlakken en te openen, en (met een fixture-preset) de bodemplaat en de bevestigingshouder toe te voegen.
Eigenschappen
Name
id
Type
string
Description
Unieke identificatie voor de taak.
Name
type
Type
string
Description
Type van de taak. De waarde is creative-lab-lamp-build.
Name
name
Type
string
Description
De taaknaam die is opgegeven bij het aanmaken van de taak. Lege string als er geen naam is opgegeven.
Name
status
Type
string
Description
Status van de taak. Mogelijke waarden zijn een van PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Voortgang van de taak. Als de taak nog niet is gestart, is deze eigenschap 0. Zodra de taak is geslaagd, wordt dit 100.
Name
created_at
Type
timestamp
Description
Tijdstempel van het moment waarop de taak is aangemaakt, in milliseconden.
Name
started_at
Type
timestamp
Description
Tijdstempel van het moment waarop de taak is gestart, in milliseconden.
Name
finished_at
Type
timestamp
Description
Tijdstempel van het moment waarop de taak is voltooid, in milliseconden.
Name
expires_at
Type
timestamp
Description
Tijdstempel van het moment waarop het taakresultaat verloopt, in milliseconden.
Name
preceding_tasks
Type
integer
Description
Het aantal voorafgaande taken. Alleen relevant wanneer de status PENDING is.
Name
task_error
Type
object
Description
Foutdetails voor mislukte taken. Zie Fouten voor de volledige task_error-objectreferentie.
Name
consumed_credits
Type
integer
Description
Het aantal credits dat door deze taak is verbruikt. Retourneert 0 voor FAILED-taken (credits worden terugbetaald bij een mislukking).
Name
model_urls
Type
object
Description
Downloadbare URL's voor de gegenereerde artefacten, gesleuteld op artefactnaam. De set sleutels hangt af van output.format en options.light_source_preset:
Name
lamp_stl
Type
string
Description
Downloadbare URL naar lamp.stl: de lampenkap met open onderkant samen met de bodemplaat met het bevestigingsgat, of een enkele verzegelde lampenkap wanneer options.light_source_presetnone was. Aanwezig wanneer output.formatstl was (de standaardwaarde).
Name
base_stl
Type
string
Description
Downloadbare URL naar base.stl, de bevestigingshouder voor de lichtbron. Aanwezig wanneer output.formatstl was enoptions.light_source_preset niet none was. Weggelaten wanneer de fixture-preset none was.
Name
bundle_zip
Type
string
Description
Downloadbare URL naar een zip-bundel met alle artefacten die de processor genereert (lamp.stl, optioneel base.stl, en — wanneer options.include_result_jsontrue is — result.json). Aanwezig wanneer output.formatzip was. Wanneer bundle_zip aanwezig is, worden lamp_stl / base_stl weggelaten.