Remesh API
Bangun ulang mesh model 3D dengan topology dan jumlah face yang baru, dan ekspor dalam format pilihan Anda. Model dapat berasal dari task Meshy lainnya, seperti Gambar ke 3D atau Teks ke 3D, atau dari file model.
Membuat tugas Remesh
Membuat tugas Remesh. Tugas berjalan di latar belakang. Untuk mengetahui berapa lama tugas biasanya berlangsung, lihat Waktu pemrosesan.
Untuk mengonversi format model atau mengubah ukurannya, gunakan Convert API atau Resize API. Parameter usang di halaman ini masih berfungsi, tetapi integrasi baru sebaiknya menggunakan endpoint tersebut.
Request
# 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"
}
Parameter
- Name
- input_task_id
- Type
- string
- Wajib
- Description
Wajib kecuali Anda mengirim
model_url. ID tugas yang modelnya ingin Anda remesh, misalnya tugas Text to 3D, Image to 3D, Retexture, atau Remesh. Tugas tersebut harus yang Anda buat dengan API dan memiliki statusSUCCEEDED.
- Name
- model_url
- Type
- string
- Wajib
- Description
Wajib kecuali Anda mengirim
input_task_id. Model yang akan di-remesh, berupa URL publik atau data URI. Jika Anda mengirim keduanya, Meshy menggunakaninput_task_id.Model harus berupa file GLB, glTF, OBJ, FBX, atau STL dengan ukuran maksimal 400 MB dari URL
httpatauhttps, atau 100 MB sebagai data URI. Untuk data URI, gunakan MIME typeapplication/octet-stream.File di atas 100 MB juga harus mengikuti aturan berikut:
- File GLB, glTF, FBX, atau OBJ dapat memiliki maksimal 10.000.000 wajah (faces). Meshy menghitung wajah sebagai segitiga, sehingga quad dihitung sebagai 2, dan mesh yang digambar lebih dari sekali dihitung sekali per salinan.
- File FBX harus berupa FBX biner 7.1 atau lebih baru.
- File GLB atau glTF tidak boleh menggunakan kompresi Draco.
- Name
- target_formats
- Type
- string[]
- default ["glb"]
- Description
Format file yang akan dihasilkan.
Nilai yang tersedia:
glbfbxobjusdzblendstl3mf
- Name
- topology
- Type
- string
- default triangle
- Description
Jenis wajah dari model yang di-remesh.
Nilai yang tersedia:
quad: mesh dengan dominan quadtriangle: mesh segitiga yang didesimasi
- Name
- target_polycount
- Type
- integer
- default 30000
- Description
Jumlah wajah yang ditargetkan, dari
100hingga300000. Hasilnya dapat berbeda dari target, tergantung pada geometri model. Nilai di luar rentang akan mengembalikan400.
- Name
- decimation_mode
- Type
- integer
- Description
Jumlah wajah adaptif, berdasarkan level. Saat Anda mengaturnya, Meshy mengabaikan
target_polycount.Nilai yang tersedia:
1: ultra2: tinggi3: sedang4: rendah
- Name
- resize_height
- Type
- number
- ⚠ usang
- default 0
- Description
Gunakan Resize API sebagai gantinya. Tinggi untuk mengubah ukuran model, dalam meter. Kirim paling banyak satu dari
resize_height,resize_longest_side, danauto_size.
- Name
- resize_longest_side
- Type
- number
- ⚠ usang
- default 0
- Description
Gunakan Resize API sebagai gantinya. Panjang untuk mengubah ukuran sisi terpanjang dari kotak pembatas model, dalam meter. Kirim paling banyak satu dari
resize_height,resize_longest_side, danauto_size.
- Name
- auto_size
- Type
- boolean
- ⚠ usang
- default false
- Description
Gunakan Resize API sebagai gantinya. Apakah akan memperkirakan tinggi objek di dunia nyata dengan AI vision dan mengubah ukuran model ke tinggi tersebut. Kirim paling banyak satu dari
resize_height,resize_longest_side, danauto_size.
- Name
- origin_at
- Type
- string
- ⚠ usang
- default bottom
- Description
Gunakan Resize API sebagai gantinya. Di mana menempatkan titik asal model,
bottomataucenter. Nilai bawaan berlaku saat Anda mengirimresize_height,resize_longest_side, atauauto_size. Tanpa salah satu dari itu, Meshy memindahkan titik asal hanya jika Anda mengirimorigin_at.
- Name
- convert_format_only
- Type
- boolean
- ⚠ usang
- Description
Gunakan Convert API sebagai gantinya. Apakah hanya akan mengonversi model ke
target_formats. Saattrue, Meshy mengabaikantopology,target_polycount,decimation_mode,resize_height,resize_longest_side, danauto_size, tetapi tetap memeriksa nilainya, sehingga nilai yang tidak valid akan mengembalikan400. Denganconvert_format_only: true,target_formatsyang kosong ataunullakan mengembalikan400.
- Name
- alpha_thumbnail
- Type
- boolean
- default false
- Description
Apakah juga akan merender pratinjau dengan latar belakang transparan (RGBA), dikembalikan dalam
alpha_thumbnail_urlsaat Anda mengambil tugas.thumbnail_urltidak berubah.
Hasil yang Dikembalikan
Field result pada respons menyimpan ID tugas Remesh yang baru.
Mode kegagalan
- Name
400 - Bad Request- Description
Permintaan tidak dapat dijalankan. Pesan kesalahan menunjukkan masalah yang ditemukan. Misalnya:
- Parameter hilang: Baik
model_urlmaupuninput_task_idtidak dikirim. - Tugas input tidak valid:
input_task_idbukan tugas API yang berhasil, atau model AI-nya tidak mendukung remeshing. - Format model tidak valid: File
model_urlmemiliki ekstensi yang tidak didukung. - URL tidak dapat dijangkau: Meshy tidak dapat mengunduh file
model_url. - File model terlalu besar: File
model_urlberukuran lebih dari 400 MB dari URLhttpatauhttps, atau lebih dari 100 MB sebagai data URI. - Terlalu banyak wajah: File
model_urlberukuran lebih dari 100 MB dan memiliki lebih dari 10.000.000 wajah. Kurangi jumlah wajah, lalu kirim file tersebut lagi. - FBX ASCII di atas 100 MB: File
model_urladalah FBX ASCII yang berukuran di atas 100 MB. Kirim sebagai FBX biner atau GLB. - File model tidak dapat dibaca: File
model_urlberukuran lebih dari 100 MB, dan Meshy tidak dapat membaca headernya. Misalnya, file tersebut adalah GLB atau glTF yang dikompresi Draco, atau FBX biner lebih lama dari 7.1. - Header model terlalu kompleks: File
model_urlberukuran lebih dari 100 MB, dan headernya memiliki terlalu banyak mesh, node, atau record untuk diperiksa. Kurangi jumlah objek dalam file, lalu kirim lagi. - Topology tidak valid:
topologybukanquadatautriangle. - Parameter saling eksklusif: Permintaan memiliki lebih dari satu dari
auto_size,resize_height, danresize_longest_side. Kirim hanya satu.
Perbaiki permintaan, lalu kirim lagi. Lihat Kesalahan.
- Parameter hilang: Baik
- Name
401 - Unauthorized- Description
Kunci API hilang atau tidak valid. Periksa header
Authorization.
- Name
402 - Payment Required- Description
Misalnya:
- Kredit tidak cukup: Akun tidak memiliki cukup kredit untuk tugas ini, atau akun mencapai batas kredit. Periksa saldo kredit Anda, lalu coba lagi.
- Paket gratis: Membuat tugas memerlukan paket berbayar. Tingkatkan paket Anda di pengaturan langganan Anda, lalu coba lagi.
- Name
403 - Forbidden- Description
input_task_idadalah model bas-relief, yang tidak dapat di-remesh oleh endpoint ini. Pesannya adalahThis model type does not support this operation. Kirim model yang berbeda.
- Name
404 - Not Found- Description
input_task_idtidak cocok dengan tugas Anda yang mana pun. Periksa ID tugas, lalu kirim permintaan lagi.
- Name
429 - Too Many Requests- Description
Anda melebihi batas laju Anda. Tunggu, lalu coba lagi. Lihat Batas laju.
Mendapatkan tugas Remesh
Mengembalikan tugas Remesh berdasarkan ID-nya.
Request
curl https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
{
"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
Menghapus tugas Remesh secara permanen, termasuk model dan datanya. Anda tidak dapat membatalkan penghapusan.
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-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."
}
Parameter path
- Name
- id
- Type
- path
- Description
ID tugas yang akan dihapus.
Status tugas
Menghapus tugas PENDING akan mengembalikan kredit yang digunakan saat Anda membuatnya.
Tugas IN_PROGRESS tidak dapat dihapus. Permintaan akan mengembalikan 409 Conflict,
dan tugas tetap berjalan. Meshy tidak mengembalikan kredit untuk tugas yang sudah dimulai,
jadi menghapusnya akan membuat Anda kehilangan baik kredit maupun hasilnya. Tunggu hingga
tugas mencapai status SUCCEEDED, FAILED, atau CANCELED, baru kemudian hapus.
Menghapus tugas dengan status akhir (SUCCEEDED, FAILED, atau CANCELED)
tidak akan mengembalikan kreditnya.
Mengembalikan
200 OK ketika tugas berhasil dihapus, atau 409 Conflict ketika tugas
berstatus IN_PROGRESS.
Daftar tugas Remesh
Mengembalikan daftar tugas Remesh Anda.
Request
curl https://api.meshy.ai/openapi/v1/remesh?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
[
{
"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
}
]
Parameter
- Name
- page_num
- Type
- integer
- default 1
- Description
Nomor halaman yang akan dikembalikan, hingga
255. Nilai yang lebih besar akan mengembalikan400.
- Name
- page_size
- Type
- integer
- default 10
- Description
Jumlah tugas per halaman, hingga
100.
- Name
- sort_by
- Type
- string
- Description
Urutan pengurutan.
Nilai yang tersedia:
+created_at: terlama lebih dulu-created_at: terbaru lebih dulu
Returns
Daftar berhalaman dari objek tugas Remesh.
Streaming tugas Remesh
Melakukan streaming pembaruan tugas Remesh sebagai Server-Sent Events (SSE).
Request
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.
// These examples are shortened. Each event holds the full task object.
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,
}
Parameter
- Name
- id
- Type
- path
- Description
ID tugas dari respons pembuatan.
Returns
Sebuah stream objek tugas Remesh sebagai Server-Sent Events.
Setiap event memuat objek tugas lengkap, dalam bentuk yang sama seperti yang dikembalikan oleh endpoint Get. Selama tugas berstatus PENDING atau IN_PROGRESS, bidang hasilnya belum memiliki nilai.
Objek tugas Remesh
Objek tugas Remesh menggambarkan satu proses remesh dari model 3D. Objek ini menyimpan status, progress, dan file model ketika tugas berhasil.
Properti
Example Remesh Task Object
{
"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
}
- Name
- id
- Type
- string
- Description
ID tugas. Perlakukan ini sebagai string buram, dan jangan bergantung pada formatnya.
- Name
- type
- Type
- string
- Description
Jenis tugas, selalu
remesh.
- Name
- model_urls
- Type
- object
- Description
URL unduhan untuk model yang telah di-remesh, satu per format file. Format yang tidak dihasilkan oleh tugas tidak memiliki kunci, bukannya berupa string kosong.
- Name
glb- Type
- string
- Description
File GLB.
- Name
fbx- Type
- string
- Description
File FBX.
- Name
obj- Type
- string
- Description
File OBJ.
- Name
usdz- Type
- string
- Description
File USDZ.
- Name
blend- Type
- string
- Description
File Blender.
- Name
stl- Type
- string
- Description
File STL.
- Name
3mf- Type
- string
- Description
File 3MF. Hanya ada ketika
target_formatsmenyertakan3mf.
- Name
- thumbnail_url
- Type
- string
- Description
URL unduhan untuk gambar pratinjau dari model yang telah di-remesh.
- Name
- alpha_thumbnail_url
- Type
- string
- Description
URL unduhan untuk versi
thumbnail_urldengan latar belakang transparan (RGBA). Hanya ada ketika Anda membuat tugas denganalpha_thumbnail: truedan Meshy berhasil merender pratinjau transparan.
- Name
- progress
- Type
- integer
- Description
Seberapa banyak tugas telah selesai, dalam bentuk persentase. Nilainya
0sampai tugas dimulai dan100ketika tugas berhasil.
- Name
- status
- Type
- string
- Description
Status tugas, salah satu dari
PENDING,IN_PROGRESS,SUCCEEDED,FAILED, atauCANCELED.
- Name
- preceding_tasks
- Type
- integer
- Description
Jumlah tugas yang berada di depan tugas ini dalam antrean. Nilai ini hanya berarti selama tugas berstatus
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Waktu tugas dibuat, dalam milidetik Unix.
- Name
- started_at
- Type
- timestamp
- Description
Waktu tugas dimulai, dalam milidetik Unix. Nilainya
0sampai tugas dimulai.
- Name
- finished_at
- Type
- timestamp
- Description
Waktu tugas selesai, dalam milidetik Unix. Nilainya
0sampai tugas selesai.
- Name
- expires_at
- Type
- timestamp
- Description
Waktu URL unduhan tugas kedaluwarsa, dalam milidetik Unix. Nilainya
0sampai tugas selesai.
- Name
- texture_urls
- Type
- array
- Description
URL unduhan untuk peta tekstur model, ketika tugas berhasil: sebuah array berisi objek, satu per set tekstur. Setiap objek memiliki URL
base_color, dan juga dapat memiliki URLmetallic,roughness,normal,emission, danmetallic_roughness. Nilainyanullsampai tugas berhasil, dan berupa array kosong ketika model tidak memiliki peta tekstur.
- Name
- task_error
- Type
- object
- Description
Detail kesalahan ketika tugas gagal. Lihat Kesalahan.
- Name
- consumed_credits
- Type
- integer
- Description
Jumlah kredit yang digunakan oleh tugas. Ada ketika status adalah
PENDING,IN_PROGRESS, atauSUCCEEDED. Nilainya0untuk tugasFAILED, karena Meshy mengembalikan kredit ketika tugas gagal.