API Remesh
API Remesh memungkinkan Anda untuk melakukan remesh dan ekspor model 3D yang sudah ada yang dihasilkan oleh API Meshy lainnya (seperti Gambar ke 3D atau Teks ke 3D) ke dalam berbagai format. Bagian ini memberikan rincian tentang cara menggunakan API Remesh.
Buat Tugas Remesh
Endpoint ini membuat tugas remesh baru.
Untuk konversi format dan pengubahan ukuran, gunakan Convert API dan Resize API yang didedikasikan. Parameter usang di bawah ini akan tetap berfungsi, tetapi kami merekomendasikan endpoint baru untuk integrasi baru.
Parameter
Hanya salah satu dari input_task_id atau model_url yang diperlukan. Jika keduanya disediakan, input_task_id memiliki prioritas.
- Name
- input_task_id
- Type
- string
- Wajib
- Description
ID dari tugas Gambar ke 3D atau Teks ke 3D yang telah selesai yang ingin Anda remesh. Tugas ini harus salah satu dari tugas berikut: Pratinjau Teks ke 3D, Penyempurnaan Teks ke 3D, Gambar ke 3D atau Retexture. Selain itu, harus memiliki status
SUCCEEDED.
- Name
- model_url
- Type
- string
- Wajib
- Description
Silakan sediakan model 3D untuk Meshy untuk remesh melalui URL yang dapat diakses publik atau Data URI. Format yang didukung:
.glb,.gltf,.obj,.fbx,.stl.Untuk Data URI, gunakan MIME type:
application/octet-stream.
- Name
- target_formats
- Type
- string[]
- default ["glb"]
- Description
Daftar format target untuk model yang telah di-remesh. Jika tidak disebutkan, hanya GLB yang dihasilkan.
Nilai yang tersedia:
glb,fbx,obj,usdz,blend,stl,3mf.
- Name
- topology
- Type
- string
- default triangle
- Description
Tentukan topology dari model yang dihasilkan.
Nilai yang tersedia:
quad: Menghasilkan mesh dominan quad.triangle: Menghasilkan mesh segitiga yang tereduksi.
- Name
- target_polycount
- Type
- integer
- default 30,000
- Description
Tentukan jumlah poligon target dalam model yang dihasilkan. Jumlah poligon aktual mungkin menyimpang dari target tergantung pada kompleksitas geometri.
Rentang nilai yang valid bervariasi tergantung pada tingkat pengguna:
- 100 hingga 300,000 (inklusif)
- Name
- decimation_mode
- Type
- integer
- Description
Aktifkan decimation adaptif dengan menetapkan tingkat jumlah poligon. Ketika diatur,
target_polycountdiabaikan.Nilai yang tersedia:
1: Adaptif — jumlah poligon ultra.2: Adaptif — jumlah poligon tinggi.3: Adaptif — jumlah poligon sedang.4: Adaptif — jumlah poligon rendah.
- Name
- resize_height
- Type
- number
- ⚠ usang
- default 0
- Description
Ubah ukuran model ke tinggi tertentu yang diukur dalam meter. Kami merekomendasikan menggunakan Resize API yang didedikasikan.
auto_size,resize_height, danresize_longest_sidesaling eksklusif.
- Name
- resize_longest_side
- Type
- number
- ⚠ usang
- default 0
- Description
Ubah ukuran model sehingga dimensi kotak pembatas terpanjang sama dengan nilai yang ditentukan dalam meter. Kami merekomendasikan menggunakan Resize API yang didedikasikan.
auto_size,resize_height, danresize_longest_sidesaling eksklusif.
- Name
- auto_size
- Type
- boolean
- ⚠ usang
- default false
- Description
Ketika diatur ke
true, layanan menggunakan visi AI untuk secara otomatis memperkirakan tinggi dunia nyata dari objek dan mengubah ukuran model sesuai. Kami merekomendasikan menggunakan Resize API yang didedikasikan.auto_size,resize_height, danresize_longest_sidesaling eksklusif.
auto_size = true- Name
- origin_at
- Type
- string
- ⚠ usang
- default bottom
- Description
Posisi titik asal. Kami merekomendasikan menggunakan Resize API yang didedikasikan.
Nilai yang tersedia:
bottom,center.
- Name
- convert_format_only
- Type
- boolean
- ⚠ usang
- Description
Jika
true, layanan hanya akan mengubah format file model input, mengabaikan input lain sepertitopology,resize_height, dantarget_polycount. Kami merekomendasikan menggunakan Convert API yang didedikasikan.target_formatsharus disediakan jikaconvert_format_onlydiatur ketrue.
- Name
- alpha_thumbnail
- Type
- boolean
- default false
- Description
Ketika diatur ke
true, tugas juga merender versi pratinjau dengan latar belakang transparan (RGBA) dan mengembalikannya sebagaialpha_thumbnail_urlpada respons GET. Fieldthumbnail_urlyang ada tidak berubah.
Mengembalikan
Properti result dari respons berisi id dari tugas remesh yang baru dibuat.
Mode Kegagalan
- Name
400 - Bad Request- Description
Permintaan tidak dapat diterima. Penyebab umum:
- Parameter hilang: Baik
model_urlatauinput_task_idharus disediakan. - Tugas input tidak valid:
input_task_idharus merujuk pada tugas yang berhasil dari model yang didukung. - Format model tidak valid:
model_urlmenunjuk ke file dengan ekstensi yang tidak didukung. - URL tidak dapat dijangkau:
model_urltidak dapat diunduh. - Topology tidak valid: Parameter
topologytidak valid. - Parameter saling eksklusif:
auto_sizedanresize_heighttidak dapat diatur bersamaan.
- Parameter hilang: Baik
- Name
401 - Unauthorized- Description
Autentikasi gagal. Silakan periksa kunci API Anda.
- Name
402 - Payment Required- Description
Kredit tidak mencukupi untuk melakukan tugas ini.
- Name
429 - Too Many Requests- Description
Anda telah melebihi batas laju Anda.
Permintaan
# 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"
}
Mengambil Tugas Remesh
Endpoint ini mengambil tugas remesh berdasarkan ID-nya.
Parameter
- Name
- id
- Type
- path
- Description
ID dari tugas remesh yang akan diambil.
Mengembalikan
Objek Tugas Remesh.
Permintaan
curl https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Respon
{
"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,
}
Hapus Tugas Remesh
Endpoint ini secara permanen menghapus tugas remesh, termasuk semua model dan data yang terkait. Tindakan ini tidak dapat dibatalkan.
Parameter Path
- Name
- id
- Type
- path
- Description
ID dari tugas remesh yang akan dihapus.
Mengembalikan
Mengembalikan 200 OK jika berhasil.
Permintaan
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Respon
// Returns 200 Ok on success.
Daftar Tugas Remesh
Endpoint ini memungkinkan Anda untuk mengambil daftar tugas Remesh.
Parameter
- Name
- page_num
- Type
- integer
- default 1
- Description
Nomor halaman untuk paginasi.
- Name
- page_size
- Type
- integer
- default 10
- Description
Batas ukuran halaman. Maksimum yang diizinkan adalah
50item.
- Name
- sort_by
- Type
- string
- Description
Bidang untuk pengurutan.
Nilai yang tersedia:
+created_at: Urutkan berdasarkan waktu pembuatan dalam urutan naik.-created_at: Urutkan berdasarkan waktu pembuatan dalam urutan turun.
Mengembalikan
Mengembalikan daftar dengan paginasi dari Objek Tugas Remesh.
Permintaan
curl https://api.meshy.ai/openapi/v1/remesh?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Respon
[
{
"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
}
]
Streaming Tugas Remesh
Endpoint ini mengalirkan pembaruan real-time untuk tugas Remesh menggunakan Server-Sent Events (SSE).
Parameter
- Name
- id
- Type
- path
- Description
Pengenal unik untuk tugas Remesh yang akan di-stream.
Mengembalikan
Mengembalikan aliran Objek Tugas Remesh sebagai Server-Sent Events.
Untuk tugas PENDING atau IN_PROGRESS, aliran respons hanya akan menyertakan bidang progress dan status yang diperlukan.
Permintaan
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.
// For PENDING or IN_PROGRESS tasks, the response stream will not include all fields.
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,
}
Objek Tugas Remesh
Objek Tugas Remesh mewakili unit kerja yang digunakan oleh Meshy untuk melakukan remesh dan mengekspor model 3D yang ada ke berbagai format. Objek ini memiliki properti sebagai berikut:
Properti
- Name
- id
- Type
- string
- Description
Pengenal unik untuk tugas. Meskipun kami menggunakan UUID yang dapat diurutkan secara k untuk id tugas sebagai detail implementasi, Anda tidak boleh membuat asumsi apa pun tentang format id tersebut.
- Name
- type
- Type
- string
- Description
Jenis tugas Remesh. Nilainya adalah
remesh.
- Name
- model_urls
- Type
- object
- Description
URL yang dapat diunduh untuk file model 3D bertekstur yang dihasilkan oleh Meshy. Properti untuk format akan dihilangkan jika format tersebut tidak dihasilkan, bukan mengembalikan string kosong.
- Name
glb- Type
- string
- Description
URL yang dapat diunduh untuk file GLB.
- Name
fbx- Type
- string
- Description
URL yang dapat diunduh untuk file FBX.
- Name
obj- Type
- string
- Description
URL yang dapat diunduh untuk file OBJ.
- Name
usdz- Type
- string
- Description
URL yang dapat diunduh untuk file USDZ.
- Name
blend- Type
- string
- Description
URL yang dapat diunduh untuk file Blender.
- Name
stl- Type
- string
- Description
URL yang dapat diunduh untuk file STL.
- Name
3mf- Type
- string
- Description
URL yang dapat diunduh untuk file 3MF. Hanya ada ketika
3mfdiminta melaluitarget_formats.
- Name
- thumbnail_url
- Type
- string
- Description
URL yang dapat diunduh untuk gambar pratinjau yang dirender dari model yang telah di-remesh.
- Name
- alpha_thumbnail_url
- Type
- string
- Description
URL yang dapat diunduh untuk versi latar belakang transparan (RGBA) dari
thumbnail_url. Hanya ada ketika tugas dibuat denganalpha_thumbnail: truedan pratinjau transparan berhasil dirender; jika tidak, bidang ini dihilangkan.
- Name
- progress
- Type
- integer
- Description
Progress dari tugas. Jika tugas belum dimulai, properti ini akan bernilai
0. Setelah tugas berhasil, ini akan menjadi100.
- Name
- status
- Type
- string
- Description
Status dari tugas. Nilai yang mungkin adalah salah satu dari
PENDING,IN_PROGRESS,SUCCEEDED,FAILED.
- Name
- preceding_tasks
- Type
- integer
- Description
Jumlah tugas sebelumnya.
Nilai dari bidang ini hanya berarti jika status tugas adalah
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Stempel waktu ketika tugas dibuat, dalam milidetik.
- Name
- started_at
- Type
- timestamp
- Description
Stempel waktu ketika tugas dimulai, dalam milidetik. Jika tugas belum dimulai, properti ini akan bernilai
0.
- Name
- finished_at
- Type
- timestamp
- Description
Stempel waktu ketika 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 dikonsumsi oleh tugas ini. Ada ketika status tugas adalah
PENDING,IN_PROGRESS, atauSUCCEEDED. Mengembalikan0untuk tugasFAILED(kredit dikembalikan jika gagal).
Contoh Objek Tugas Remesh
{
"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
}