Ubah foto sumber menjadi kap lampu yang siap dicetak 3D dalam dua tahap:
prototype menghasilkan gambar konsep bergaya matte-white dan mengubahnya
menjadi model 3D berongga (GLB), lalu build menjalankan lamp processor pada
model tersebut untuk menghasilkan bagian STL yang siap dicetak — sebuah kap
lampu dengan bagian bawah terbuka dan pelat dasar untuk fixture sumber cahaya,
ditambah dudukan fixture itu sendiri. Kedua tahap ini terhubung melalui
input_task_id.
Menghasilkan satu gambar konsep matte-white dari foto referensi dan
mengonversinya menjadi model 3D lampshade berongga. Respons membawa baik gambar
konsep (image_urls) maupun model 3D (model_urls.glb dengan
thumbnail_url). ID task yang dikembalikan adalah yang Anda gunakan sebagai input_task_id
untuk endpoint build. Lihat
The Lamp Prototype Task Object
untuk bentuk responsnya.
Parameter
Name
image_url
Type
string
Wajib
Description
Foto sumber yang digunakan Meshy sebagai referensi visual untuk lampshade. Kami saat ini mendukung format .jpg, .jpeg, .png, dan .webp.
Ada dua cara untuk menyediakan gambar:
URL yang dapat diakses secara publik: URL yang dapat diakses dari internet publik.
Data URI: Data URI gambar yang dienkode base64. Contoh data URI: data:image/jpeg;base64,<data gambar Anda yang dienkode base64>.
Name
image_subject
Type
string
default character
Description
Petunjuk kategori subjek yang memilih prompt stylization. Nilai yang tersedia:
character (default) — subjek karakter tunggal / objek (figur, hewan, maskot, dll.).
Nama task opsional untuk keperluan tampilan. Maksimal 100 karakter.
Name
remove_background
Type
boolean
default false
Description
Ketika disetel ke true, gambar prototipe dikembalikan sebagai PNG RGBA transparan dengan latar belakang dihapus, sehingga Anda dapat menggabungkan subjek ke latar belakang apa pun.
Returns
Properti result dari respons berisi id task dari lamp prototype task yang baru dibuat. Poll endpoint Get a Task atau berlangganan ke stream hingga task mencapai SUCCEEDED, lalu berikan ID tersebut ke build endpoint sebagai input_task_id.
Mode Kegagalan
Name
400 - Bad Request
Description
Permintaan tidak dapat diterima. Penyebab umum:
Parameter hilang: image_url wajib diisi.
Format gambar tidak valid: image_url yang diberikan bukan format yang didukung (.jpg, .jpeg, .png, .webp).
Dimensi gambar di luar rentang: Gambar terlalu kecil, melebihi ukuran file maksimum, atau melebihi jumlah piksel maksimum.
URL tidak dapat dijangkau: image_url tidak dapat diunduh (404 atau timeout).
Data URI tidak valid: String base64 salah format.
Konten ditandai: Gambar input ditandai oleh moderation NSFW atau kekayaan intelektual.
image_subject tidak valid: Bukan salah satu dari character / landscape.
Name
401 - Unauthorized
Description
Autentikasi gagal. Silakan periksa kunci API Anda.
Name
402 - Payment Required
Description
Kredit tidak mencukupi untuk melakukan task ini.
Name
429 - Too Many Requests
Description
Anda telah melebihi batas laju Anda.
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"}
Prototype example
Start with a source photo; the prototype returns the concept image and a hollow 3D model that the build stage processes.
Menghasilkan bagian-bagian 3D-printable akhir dari tugas prototipe yang berhasil.
Proses build menjalankan lamp processor pada model 3D prototipe: proses ini
menskalakan model ke diameter_mm, meratakan bagian bawah sebesar cut_amount_percent,
membuatnya berongga hingga thickness_mm, membuka bagian bawah, dan — ketika
preset fixture dipilih — menambahkan pelat dasar dengan lubang fixture dan
mount terpisah untuk sumber cahaya. Lihat
The Lamp Build Task Object untuk
bentuk respons.
Parameter
Name
input_task_id
Type
string
Wajib
Description
ID tugas dari sebuah tugas prototipe yang dibuat melalui endpoint OpenAPI yang sama. Prototipe tersebut harus dibuat dengan kunci API yang sama, harus telah mencapai status SUCCEEDED, dan harus telah menghasilkan model 3D.
Tugas prototipe yang dibuat melalui webapp tidak diterima — endpoint build hanya menerima tugas prototipe yang dihasilkan oleh POST /openapi/creative-lab/lamp/v1/prototype dan menolak sumber lain dengan 404.
Name
name
Type
string
Description
Nama tugas opsional untuk keperluan tampilan. Maksimal 100 karakter.
options
Parameter penyesuaian opsional untuk geometri kap lampu. Setiap field memiliki nilai default yang masuk akal — kirim hanya field yang ingin Anda timpa.
Name
diameter_mm
Type
number
default 150
Description
Dimensi maksimum target dari kotak pembatas kap lampu, dalam milimeter. Mesh diskalakan secara seragam agar sesuai. Rentang: [50, 400].
Name
thickness_mm
Type
number
default 1
Description
Ketebalan dinding dari kap lampu yang berongga, dalam milimeter. Rentang: (0, 10].
Name
cut_amount_percent
Type
number
default 1
Description
Persentase tinggi model yang dipotong rata di bagian bawah, sehingga kap lampu dapat diletakkan di atas print bed dan memiliki bukaan untuk fixture. Rentang: [1, 100].
Name
light_source_preset
Type
string
default bambu_mh001_60mm
Description
Preset fixture sumber cahaya yang menentukan bagaimana bagian bawah dibangun. Nilai yang tersedia:
bambu_mh001_60mm (default) — kap lampu dengan bagian bawah terbuka ditambah pelat dasar yang membawa lubang fixture 60 mm, keduanya berada di model_urls.lamp_stl, dan mount fixture sebagai model_urls.base_stl.
none — satu kap lampu tertutup rapat di model_urls.lamp_stl; model_urls.base_stl dihilangkan.
Name
fixture_offset_x_mm
Type
number
default 0
Description
Offset sumbu X dari lubang fixture pada pelat dasar, relatif terhadap pusat kap lampu, dalam milimeter. Hanya berarti ketika light_source_preset ≠ none. Rentang: [-80, 80].
Name
fixture_offset_z_mm
Type
number
default 0
Description
Offset sumbu Z (kedalaman) dari lubang fixture pada pelat dasar, relatif terhadap pusat kap lampu, dalam milimeter. Hanya berarti ketika light_source_preset ≠ none. Rentang: [-80, 80].
Name
rotate_x_deg
Type
number
default 0
Description
Rotasi mengelilingi sumbu X yang diterapkan pada model sebelum diproses, dalam derajat. Ketiga rotasi diterapkan sebagai sudut Euler XYZ mengelilingi pusat model. Rentang: [-360, 360].
Name
rotate_y_deg
Type
number
default 0
Description
Rotasi mengelilingi sumbu Y yang diterapkan pada mesh yang diimpor sebelum diproses, dalam derajat. Rentang: [-360, 360].
Name
rotate_z_deg
Type
number
default 0
Description
Rotasi mengelilingi sumbu Z yang diterapkan pada mesh yang diimpor sebelum diproses, dalam derajat. Rentang: [-360, 360].
Name
include_result_json
Type
boolean
default false
Description
Ketika true dan output.format adalah zip, menyertakan result.json dari lamp processor (nama pipeline, peringatan, dan jalur artefak) di dalam bundel. Diabaikan ketika output.format adalah stl.
output
Selektor format keluaran opsional. Default-nya adalah stl.
Name
format
Type
string
default stl
Description
Bundel artefak yang dikembalikan oleh build. Nilai yang tersedia:
stl (default) — mengembalikan model_urls.lamp_stl (kap lampu, beserta pelat dasar ketika preset fixture ditetapkan), ditambah model_urls.base_stl ketika light_source_preset ≠ none.
zip — mengemas setiap artefak yang dihasilkan oleh processor (lamp.stl, base.stl opsional, result.json opsional) ke dalam satu file zip dan mengembalikannya di bawah model_urls.bundle_zip.
Pengembalian
Properti result dari respons berisi id tugas dari tugas build lampu yang baru dibuat. Poll endpoint Get a Task atau berlangganan ke stream hingga tugas mencapai status SUCCEEDED, kemudian unduh artefak dari model_urls.
Mode Kegagalan
Name
400 - Bad Request
Description
Permintaan tidak dapat diterima. Penyebab umum:
Parameter hilang: input_task_id wajib diisi.
UUID tidak valid: input_task_id bukan UUID yang valid.
Induk belum berhasil: Tugas prototipe yang dirujuk belum mencapai status SUCCEEDED.
Tidak ada model: Tugas prototipe berhasil tetapi tidak menghasilkan model 3D.
Options di luar rentang: Salah satu field options berada di luar rentang atau kumpulan enum yang diizinkan.
Name
401 - Unauthorized
Description
Autentikasi gagal. Silakan periksa kunci API Anda.
Name
402 - Payment Required
Description
Kredit tidak mencukupi untuk melakukan tugas ini.
Name
404 - Not Found
Description
Tugas prototipe yang dirujuk tidak ada, milik pengguna lain, atau dibuat melalui webapp (hanya tugas prototipe mode API yang dapat dirangkai ke build).
Mengambil task prototype atau build berdasarkan id task yang valid. Path URL
harus sesuai dengan tahap task tersebut — task build yang diambil melalui
/prototype/:id akan mengembalikan 404, dan begitu pula sebaliknya.
Batalkan tugas lampu. Jika tugas masih PENDING, kredit yang digunakan
saat pembuatan akan dikembalikan. Tugas yang sudah IN_PROGRESS dibatalkan
tanpa pengembalian dana (pekerja mungkin sudah menggunakan sumber daya).
Tugas yang sudah mencapai status akhir (SUCCEEDED, FAILED,
CANCELED) tidak dapat dibatalkan.
Jalur URL harus sesuai dengan tahap tugas — DELETE pada
/prototype/:buildId mengembalikan 404.
Parameter Jalur
Name
id
Type
path
Description
Pengenal unik untuk tugas lampu yang akan dibatalkan.
Pengembalian
Mengembalikan 204 No Content pada keberhasilan dengan tubuh kosong.
Mode Kegagalan
Name
400 - Bad Request
Description
Tugas sudah dalam status akhir dan tidak dapat dibatalkan.
Name
404 - Not Found
Description
Tugas tidak ada, milik pengguna lain, atau tahapannya tidak sesuai dengan jalur URL.
Melakukan streaming pembaruan real-time untuk tugas lampu melalui Server-Sent Events (SSE).
Path URL harus sesuai dengan tahap tugas — membuka stream di
/prototype/:buildId/stream akan mengeluarkan satu payload event: error dengan
status_code: 404 dan menutup stream tersebut.
Parameter
Name
id
Type
path
Description
Pengenal unik untuk tugas lampu yang akan di-stream.
Returns
Mengembalikan stream objek tugas Lamp Prototype
atau Lamp Build sebagai
Server-Sent Events. Untuk tugas PENDING atau IN_PROGRESS, stream respons
hanya akan menyertakan field progress dan status yang diperlukan.
// 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=***" }}
Ambil daftar tugas lampu Anda yang telah dipaginasi untuk satu tahap. Path
URL memilih tahapnya — /prototype mengembalikan tugas prototype;
/build mengembalikan tugas build. Tugas dari tahap lainnya tidak
disertakan pada kedua respons tersebut.
Path Parameters
Name
stage
Type
path
Wajib
Description
prototype atau build. Koleksi hanya mengembalikan tugas yang
tahapnya sesuai dengan URL — mengambil /prototype tidak akan pernah
mengembalikan tugas build dan sebaliknya.
Query Parameters
Name
page_num
Type
integer
default 1
Description
Nomor halaman untuk paginasi.
Name
page_size
Type
integer
default 10
Description
Batas ukuran halaman. Maksimal yang diizinkan adalah 50 item.
Name
sort_by
Type
string
default -created_at
Description
Kolom untuk pengurutan. Nilai yang tersedia:
+created_at: Urutkan berdasarkan waktu pembuatan secara menaik.
-created_at: Urutkan berdasarkan waktu pembuatan secara menurun.
Objek Task Lamp Prototype adalah unit kerja yang dilacak oleh Meshy untuk
menghasilkan concept image matte-white bergaya dari foto sumber dan
mengonversinya menjadi model 3D berongga. Output dari tahap ini dirangkai ke
tahap build melalui input_task_id.
Properti
Name
id
Type
string
Description
Pengenal unik untuk task. Meskipun kami menggunakan UUID yang dapat diurutkan secara k-sortable untuk id task sebagai detail implementasi, Anda tidak boleh membuat asumsi apa pun tentang format id tersebut.
Name
type
Type
string
Description
Jenis task. Nilainya adalah creative-lab-lamp-prototype.
Name
name
Type
string
Description
Nama task yang diberikan saat task dibuat. String kosong jika tidak ada nama yang diberikan.
Name
status
Type
string
Description
Status task. Kemungkinan nilainya adalah salah satu dari PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progress dari task. Jika task belum dimulai, properti ini akan bernilai 0. Setelah task berhasil, nilainya akan menjadi 100.
Name
created_at
Type
timestamp
Description
Stempel waktu saat task dibuat, dalam milidetik.
Sebuah stempel waktu merepresentasikan jumlah milidetik yang telah berlalu sejak 1 Januari 1970 UTC, mengikuti
standar RFC 3339.
Misalnya, Jumat, 1 September 2023 pukul 12:00:00 PM GMT direpresentasikan sebagai 1693569600000. Ini berlaku
untuk semua stempel waktu di Meshy API.
Name
started_at
Type
timestamp
Description
Stempel waktu saat task dimulai, dalam milidetik. Jika task belum dimulai, properti ini akan bernilai 0.
Name
finished_at
Type
timestamp
Description
Stempel waktu saat task selesai, dalam milidetik. Jika task belum selesai, properti ini akan bernilai 0.
Name
expires_at
Type
timestamp
Description
Stempel waktu saat hasil task kedaluwarsa, dalam milidetik.
Name
preceding_tasks
Type
integer
Description
Jumlah task yang mendahului.
Nilai bidang ini hanya bermakna jika status task adalah PENDING.
Name
task_error
Type
object
Description
Detail kesalahan untuk task yang gagal. Lihat Kesalahan untuk referensi lengkap objek task_error.
Name
consumed_credits
Type
integer
Description
Jumlah kredit yang dikonsumsi oleh task ini. Muncul saat status task adalah PENDING, IN_PROGRESS, atau SUCCEEDED. Mengembalikan 0 untuk task FAILED (kredit dikembalikan jika gagal).
Name
model_urls
Type
object
Description
URL yang dapat diunduh untuk model 3D yang dihasilkan dari concept image. Muncul setelah task berhasil; {} sebelum itu.
Name
glb
Type
string
Description
URL yang dapat diunduh untuk model lampshade matte-white berongga dalam format GLB. Ini adalah model yang diproses oleh tahap build.
Name
thumbnail_url
Type
string
Description
URL yang dapat diunduh untuk pratinjau hasil render model 3D. String kosong hingga task berhasil.
Name
image_urls
Type
array of strings
Description
URL yang dapat diunduh untuk kandidat concept image yang dihasilkan oleh task prototype ini. Saat ini API selalu mengembalikan tepat satu kandidat; bidang ini berupa array agar revisi mendatang dapat menampilkan beberapa kandidat tanpa perubahan yang bersifat breaking change.
Objek Tugas Build Lamp adalah unit kerja yang dilacak oleh Meshy untuk
menghasilkan lampshade akhir yang siap dicetak 3D dari tugas prototipe yang berhasil.
Build ini menjalankan lamp processor pada model 3D prototipe untuk melubangi bagian dalamnya (hollow), meratakan dan membuka bagian bawahnya, dan (dengan preset fixture) menambahkan pelat dasar
dan dudukan fixture.
Properti
Name
id
Type
string
Description
Pengenal unik untuk tugas ini.
Name
type
Type
string
Description
Jenis tugas. Nilainya adalah creative-lab-lamp-build.
Name
name
Type
string
Description
Nama tugas yang diberikan saat tugas dibuat. String kosong jika tidak ada nama yang diberikan.
Name
status
Type
string
Description
Status tugas. Kemungkinan nilainya adalah salah satu dari PENDING, IN_PROGRESS, SUCCEEDED, FAILED, CANCELED.
Name
progress
Type
integer
Description
Progress tugas. Jika tugas belum dimulai, properti ini akan bernilai 0. Setelah tugas berhasil, nilainya akan menjadi 100.
Name
created_at
Type
timestamp
Description
Stempel waktu saat tugas dibuat, dalam milidetik.
Name
started_at
Type
timestamp
Description
Stempel waktu saat tugas dimulai, dalam milidetik.
Name
finished_at
Type
timestamp
Description
Stempel waktu saat tugas selesai, dalam milidetik.
Name
expires_at
Type
timestamp
Description
Stempel waktu saat hasil tugas kedaluwarsa, dalam milidetik.
Name
preceding_tasks
Type
integer
Description
Jumlah tugas yang mendahului. Hanya berarti ketika status adalah PENDING.
Name
task_error
Type
object
Description
Detail kesalahan untuk tugas yang gagal. Lihat Kesalahan untuk referensi lengkap objek task_error.
Name
consumed_credits
Type
integer
Description
Jumlah kredit yang digunakan oleh tugas ini. Mengembalikan 0 untuk tugas FAILED (kredit dikembalikan jika gagal).
Name
model_urls
Type
object
Description
URL yang dapat diunduh untuk artefak yang dihasilkan, dengan kunci berupa nama artefak. Kumpulan kunci ini bergantung pada output.format dan options.light_source_preset:
Name
lamp_stl
Type
string
Description
URL yang dapat diunduh untuk lamp.stl: lampshade dengan bagian bawah terbuka beserta pelat dasar yang membawa lubang fixture, atau satu lampshade tertutup rapat ketika options.light_source_preset adalah none. Ada ketika output.format adalah stl (default).
Name
base_stl
Type
string
Description
URL yang dapat diunduh untuk base.stl, dudukan fixture sumber cahaya. Ada ketika output.format adalah stldanoptions.light_source_preset bukan none. Dihilangkan ketika preset fixture adalah none.
Name
bundle_zip
Type
string
Description
URL yang dapat diunduh untuk bundel zip berisi semua artefak yang dihasilkan oleh processor (lamp.stl, base.stl opsional, dan — ketika options.include_result_json adalah true — result.json). Ada ketika output.format adalah zip. Ketika bundle_zip ada, lamp_stl / base_stl dihilangkan.