API Auto Split
Pisahkan model 3D menjadi beberapa bagian yang dapat dicetak secara terpisah — secara otomatis, berdasarkan bagian yang Anda beri nama, atau berdasarkan wilayah warna — dengan konektor opsional; area tipis yang tersisa akibat pemotongan selalu diperkuat agar setiap bagian dapat dicetak secara solid.
Auto Split saat ini hanya mendukung model tanpa tekstur. Untuk Gambar ke 3D dan Multi-Gambar ke 3D, buat input dengan should_texture diatur ke false. Input yang bertekstur akan ditolak dengan 400.
Membuat Auto Split Task
Endpoint ini membuat Auto Split task baru. Task ini memotong model dari task sebelumnya menjadi bagian-bagian yang dapat dicetak secara terpisah dan mengembalikan model yang telah tersegmentasi, dengan setiap bagian sebagai objeknya sendiri di dalam file.
Parameter
- Name
- input_task_id
- Type
- string
- Wajib
- Description
ID dari task yang berhasil (succeeded) yang modelnya akan dipisah. Jenis task yang didukung: Gambar ke 3D, Multi-Gambar ke 3D, Teks ke 3D (pratinjau), Remesh, Konversi, dan Ubah ukuran. Task tersebut harus memiliki status
SUCCEEDED, dan modelnya harus dihasilkan dengan Meshy 6 atau Meshy 7 (ai_modelmeshy-6,meshy-7, ataulatest). Model low-poly dan Smart Topology (meshy-t2) tidak didukung.
- Name
- mode
- Type
- string
- default auto
- Description
Bagaimana model dibagi menjadi beberapa bagian.
Nilai yang tersedia:
auto: Meshy yang menentukan potongannya.promptdiabaikan.by_parts: Potong berdasarkan bagian struktural yang Anda sebutkan dalamprompt, seperti kepala, lengan, dan tubuh.by_color: Potong berdasarkan area warna yang Anda sebutkan dalamprompt. Memerlukan input yang dihasilkan dari gambar yang diunggah (Gambar ke 3D atau Multi-Gambar ke 3D); input lain akan ditolak dengan400.
mode = by_parts or by_color- Name
- prompt
- Type
- string
- Wajib
- Description
Menjelaskan bagian-bagian yang akan dipisah, dalam bahasa apa pun. Meshy membaca 1 hingga 10 nama bagian dari teks tersebut, jadi sebutkan nama bagiannya, bukan mendeskripsikan modelnya — misalnya
split into the figure and the base, atauhead, torso, left arm, right arm, legs. Maksimal 600 karakter. Ada dua mode kegagalan: deskripsi yang terbaca sebagai pemisahan tetapi menyebutkan kurang dari dua bagian (misalnyasplit into individual parts) akan ditolak dengan400dan tidak ada biaya yang dikenakan; deskripsi yang sama sekali tidak dapat dibaca oleh Meshy akan kembali keauto, task tetap berjalan dan dikenakan biaya, dan responsnya membawaprompt_ignored: true.
- Name
- target_formats
- Type
- array
- default ["glb"]
- Description
Format untuk mengekspor model yang telah dipisah. Setiap bagian menjadi objek terpisah di setiap format.
glbselalu dihasilkan dan dikembalikan dalammodel_urls; sebutkan format lain yang Anda inginkan sebagai tambahan.Nilai yang tersedia:
glb,obj,fbx,usdz,blend,3mf.
- Name
- layout
- Type
- string
- default assembled
- Description
Bagaimana bagian-bagian diatur di setiap format output, dan di dalam thumbnail.
Nilai yang tersedia:
assembled: Bagian-bagian tetap berada di posisi asalnya seperti pada model sumber.on_plate: Bagian-bagian diletakkan rata dan disebar di atas build plate, siap untuk diiris (slice) — susunan yang sama seperti tampilan On Plate di aplikasi web.
Pada kedua tata letak tersebut, file yang diekspor hanya berisi satu objek per bagian dan tidak ada yang lain: potongan tipis yang menyusut atau berbentuk seperti titik yang tersisa dari sebuah pemotongan akan dihapus sebelum diekspor, sehingga setiap objek yang Anda temukan dalam file tersebut dapat dicetak.
- Name
- connectors
- Type
- boolean
- default false
- Description
Menambahkan konektor mortise-and-tenon di setiap potongan agar bagian-bagian yang dicetak dapat saling pas.
connectors = true- Name
- connector_type
- Type
- string
- default cube
- Description
Bentuk konektor pada setiap permukaan potongan.
Nilai yang tersedia:
cube,cylinder.
- Name
- connector_size
- Type
- number
- default 0.5
- Description
Ukuran konektor relatif terhadap permukaan potongan.
Rentang valid:
0.1hingga0.8.
- Name
- connector_height
- Type
- number
- default 0.1
- Description
Seberapa jauh konektor menonjol dari permukaan potongan, relatif terhadap permukaan potongan.
Rentang valid:
0.1hingga0.8.
Hasil
Properti result pada respons berisi id dari Auto Split task yang baru dibuat.
Mode Kegagalan
- Name
400 - Bad Request- Description
Permintaan tidak dapat diterima. Penyebab umum:
- Prompt tidak ada:
promptwajib diisi ketikamodeadalahby_partsatauby_color. - Prompt menyebutkan kurang dari dua bagian:
by_parts/by_colormemerlukan setidaknya dua bagian yang disebutkan (misalnyahead, torso, base); instruksi umum sepertisplit into individual partsakan ditolak. Tidak ada biaya yang dikenakan. - Task input tidak didukung:
input_task_idharus merujuk pada task yang berhasil (succeeded) dari jenis yang didukung, yang dihasilkan dengan Meshy 6 atau Meshy 7. - Input bertekstur: Model input memiliki texture. Untuk saat ini, hanya model tanpa texture yang didukung.
- Tidak ada gambar referensi:
by_colormemerlukan input yang dihasilkan dari gambar yang diunggah. - Format tidak didukung:
target_formatsberisistl. - Konektor di luar rentang:
connector_sizeatauconnector_heightberada di luar rentang0.1hingga0.8.
- Prompt tidak ada:
- Name
401 - Unauthorized- Description
Autentikasi gagal. Silakan periksa kunci API Anda.
- Name
402 - Payment Required- Description
Kredit tidak cukup untuk melakukan task ini.
- Name
404 - Not Found- Description
input_task_idtidak ada atau bukan milik akun Anda.
- Name
429 - Too Many Requests- Description
Anda telah melampaui batas laju Anda. Permintaan
by_partsdanby_colorjuga berbagi batas penguraian prompt sebesar 12 permintaan per menit per akun.
- Name
503 - Service Unavailable- Description
Pemisahan berbasis prompt (
by_partsdanby_color) untuk sementara tidak tersedia. Coba lagi nanti, atau gunakanmode: "auto", yang tidak terpengaruh. Tidak ada biaya yang dikenakan.
Request
# Simple request: let Meshy choose the cuts
curl https://api.meshy.cn/openapi/v1/print/split \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578"
}'
# Advanced request: name the parts, add connectors, export glb and obj
curl https://api.meshy.cn/openapi/v1/print/split \
-X POST \
-H "Authorization: Bearer ${YOUR_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"input_task_id": "018a210d-8ba4-705c-b111-1f1776f7f578",
"mode": "by_parts",
"prompt": "split into the figure and the base",
"target_formats": ["glb", "obj"],
"layout": "on_plate",
"connectors": true,
"connector_type": "cylinder",
"connector_size": 0.4
}'
Response
{
"result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}
Mengambil Task Auto Split
Endpoint ini mengambil task Auto Split berdasarkan ID-nya.
Parameter
- Name
- id
- Type
- path
- Description
ID dari task Auto Split yang akan diambil.
Returns
Objek Task Auto Split.
Request
curl https://api.meshy.cn/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"obj": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***"
},
"thumbnail_url": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}
Delete an Auto Split Task
Endpoint ini menghapus permanen sebuah tugas Auto Split, termasuk semua model dan data yang terkait. Tindakan ini tidak dapat dibatalkan.
Path Parameters
- Name
- id
- Type
- path
- Description
ID dari tugas Auto Split yang akan dihapus.
Returns
Mengembalikan 200 OK jika berhasil.
Request
curl --request DELETE \
--url https://api.meshy.cn/openapi/v1/print/split/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// Returns 200 Ok on success.
List Auto Split Tasks
Endpoint ini memungkinkan Anda untuk mengambil daftar tugas Auto Split.
Parameter
Atribut opsional
- Name
- page_num
- Type
- integer
- Description
Nomor halaman untuk paginasi. Dimulai dan defaultnya adalah
1.
- Name
- page_size
- Type
- integer
- Description
Batas ukuran halaman. Defaultnya
10item. Maksimum yang diizinkan adalah100item; nilai yang lebih besar akan dibatasi menjadi100.
- Name
- sort_by
- Type
- string
- Description
Kolom untuk pengurutan. Nilai yang tersedia:
+created_at: Urutkan berdasarkan waktu pembuatan secara ascending.-created_at: Urutkan berdasarkan waktu pembuatan secara descending.
Returns
Mengembalikan daftar berpaginasi dari The Auto Split Task Objects.
Request
curl https://api.meshy.cn/openapi/v1/print/split?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}
]
Streaming Tugas Auto Split
Endpoint ini melakukan streaming pembaruan secara real-time untuk tugas Auto Split menggunakan Server-Sent Events (SSE).
Parameter
- Name
- id
- Type
- path
- Description
Pengidentifikasi unik untuk tugas Auto Split yang akan di-stream.
Returns
Mengembalikan stream dari Objek Tugas Auto Split sebagai Server-Sent Events.
Setiap event message membawa objek tugas lengkap seperti yang dikembalikan oleh Retrieve an Auto Split Task, termasuk consumed_credits, stempel waktu, dan prompt_ignored; selama tugas berstatus PENDING atau IN_PROGRESS, kolom yang berubah antar frame adalah progress, status, started_at, dan preceding_tasks, sedangkan model_urls, thumbnail_url, part_count, dan parts muncul begitu tugas mencapai status SUCCEEDED. Event error hanya membawa status_code dan message, jadi lakukan percabangan berdasarkan nama event sebelum membaca status.
Request
curl -N https://api.meshy.cn/openapi/v1/print/split/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 (other task fields omitted here for brevity;
// each frame is the full task object).
event: message
data: {
"id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
"progress": 0,
"status": "PENDING"
}
event: message
data: {
"id": "a43b5c6d-7e8f-901a-234b-567c890d1e2f",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.cn/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/model.glb?Expires=***"
},
"thumbnail_url": "https://assets.meshy.cn/***/tasks/a43b5c6d-7e8f-901a-234b-567c890d1e2f/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}
The Auto Split Task Object
Sebuah tugas Auto Split hanya membawa properti-properti di bawah ini. Kolom generation-prompt yang dimiliki objek tugas lainnya (name, object_prompt, texture_prompt dan sebagainya), model_url tunggal, serta texture_urls tidak pernah diisi untuk sebuah split dan tidak dikembalikan. Properti yang terisi seiring berjalannya tugas (thumbnail_url, model_urls, stempel waktu) selalu ada, kosong hingga memiliki nilai, sehingga kumpulan kunci tidak berubah antara PENDING dan SUCCEEDED.
- Name
- id
- Type
- string
- Description
Pengidentifikasi unik untuk tugas ini. Meskipun kami menggunakan UUID yang dapat diurutkan-k (k-sortable) sebagai detail implementasi untuk id tugas, Anda tidak boleh membuat asumsi apa pun tentang format id tersebut.
- Name
- type
- Type
- string
- Description
Jenis tugas. Nilainya adalah
print-split.
- Name
- model_urls
- Type
- object
- Description
URL yang dapat diunduh untuk model yang telah dipisah, satu per format yang diminta. Setiap bagian merupakan objek terpisah dalam file. Properti untuk sebuah format akan dihilangkan jika format tersebut tidak diminta.
- Name
glb- Type
- string
- Description
URL yang dapat diunduh untuk model yang telah dipisah dalam format GLB.
- Name
obj- Type
- string
- Description
URL yang dapat diunduh untuk model yang telah dipisah dalam format OBJ.
- Name
fbx- Type
- string
- Description
URL yang dapat diunduh untuk model yang telah dipisah dalam format FBX.
- Name
usdz- Type
- string
- Description
URL yang dapat diunduh untuk model yang telah dipisah dalam format USDZ.
- Name
blend- Type
- string
- Description
URL yang dapat diunduh untuk model yang telah dipisah dalam format Blender.
- Name
3mf- Type
- string
- Description
URL yang dapat diunduh untuk model yang telah dipisah dalam format 3MF.
- Name
- thumbnail_url
- Type
- string
- Description
URL yang dapat diunduh untuk pratinjau hasil render dari model yang telah dipisah, dengan setiap bagian dalam warna yang berbeda, dalam
layoutyang diminta.
- Name
- prompt_ignored
- Type
- boolean
- Description
trueketikapromptdari permintaanby_partsatauby_colortidak menyebutkan nama bagian apa pun, sehingga Meshy memisahkan model secara otomatis — nama-nama bagian dalam hasil adalah milik Meshy, bukan milik Anda. Hadir mulai dariPENDING. Dihilangkan untuk tugasautodan setiap kali prompt tersebut diikuti.
- Name
- part_count
- Type
- integer
- Description
Jumlah bagian yang dapat dicetak dalam model yang telah dipisah — satu per objek dalam file yang diekspor. Serpihan tipis yang menyatu (collapsed slivers) yang tidak dapat diubah oleh segmentasi menjadi bagian yang dapat dicetak dihapus dari file sebelum diekspor dan tidak dihitung.
- Name
- progress
- Type
- integer
- Description
Progress dari tugas ini. Jika tugas belum dimulai, properti ini akan bernilai
0. Setelah tugas berhasil, ini akan menjadi100.
- Name
- status
- Type
- string
- Description
Status dari tugas ini. Nilai yang mungkin adalah salah satu dari
PENDING,IN_PROGRESS,SUCCEEDED,FAILED,CANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Jumlah tugas yang mendahului.
Nilai kolom ini hanya bermakna jika status tugas adalah
PENDING.
- 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. Jika tugas belum dimulai, properti ini akan bernilai
0.
- Name
- finished_at
- Type
- timestamp
- Description
Stempel waktu saat tugas selesai, dalam milidetik. Jika tugas belum selesai, properti ini akan bernilai
0.
- 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. Selalu ada:
10setelah tugas diterima, dan0untuk tugasFAILEDkarena biaya dikembalikan saat gagal. Menghapus tugas ketika masihPENDINGjuga akan mengembalikan biayanya.
The Auto Split Task Object
{
"id": "0193bfc5-ee4f-73f8-8525-44b398884ce9",
"type": "print-split",
"model_urls": {
"glb": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.glb?Expires=***",
"obj": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/model.obj?Expires=***"
},
"thumbnail_url": "https://assets.meshy.cn/***/tasks/0193bfc5-ee4f-73f8-8525-44b398884ce9/output/preview.png?Expires=***",
"part_count": 4,
"progress": 100,
"status": "SUCCEEDED",
"preceding_tasks": 0,
"created_at": 1699999999000,
"started_at": 1700000000000,
"finished_at": 1700000082000,
"task_error": null,
"consumed_credits": 10
}