API Remesh
API Remesh membolehkan anda meng-remesh dan mengeksport model 3D sedia ada yang dijana oleh API Meshy lain (seperti Imej ke 3D atau Teks ke 3D) ke pelbagai format. Bahagian ini memberikan butiran tentang cara menggunakan API Remesh.
Cipta Tugasan Remesh
Endpoint ini mencipta tugasan remesh baharu.
Untuk penukaran format dan pengubahan saiz, gunakan Convert API dan Resize API yang khusus. Parameter lapuk di bawah akan terus berfungsi, tetapi kami mengesyorkan endpoint baharu untuk integrasi baharu.
Parameter
Hanya salah satu daripada input_task_id atau model_url diperlukan. Jika kedua-duanya diberikan, input_task_id diutamakan.
- Name
- input_task_id
- Type
- string
- Diperlukan
- Description
ID bagi tugasan Imej ke 3D atau Teks ke 3D yang telah selesai dan ingin anda remesh. Tugasan ini mestilah salah satu daripada tugasan berikut: Text to 3D Preview, Text to 3D Refine, Image to 3D atau Retexture. Selain itu, ia mesti mempunyai status
SUCCEEDED.
- Name
- model_url
- Type
- string
- Diperlukan
- Description
Sila berikan model 3D untuk Meshy remesh melalui URL yang boleh diakses secara awam atau data URI. Format yang disokong:
.glb,.gltf,.obj,.fbx,.stl.Untuk Data URI, gunakan MIME type:
application/octet-stream.
- Name
- target_formats
- Type
- string[]
- lalai ["glb"]
- Description
Senarai format sasaran untuk model yang telah di-remesh. Apabila ditinggalkan, hanya GLB akan dihasilkan.
Nilai yang tersedia:
glb,fbx,obj,usdz,blend,stl,3mf.
- Name
- topology
- Type
- string
- lalai triangle
- Description
Nyatakan topology bagi model yang dihasilkan.
Nilai yang tersedia:
quad: Menghasilkan jejaring yang didominasi quad.triangle: Menghasilkan jejaring segi tiga yang telah dinyahkan (decimated).
- Name
- target_polycount
- Type
- integer
- lalai 30,000
- Description
Nyatakan sasaran bilangan poligon dalam model yang dihasilkan. Bilangan poligon sebenar mungkin berbeza daripada sasaran bergantung pada kerumitan geometri.
Julat nilai yang sah berbeza-beza bergantung pada peringkat pengguna:
- 100 hingga 300,000 (termasuk kedua-duanya)
- Name
- decimation_mode
- Type
- integer
- Description
Aktifkan penyahnyaan (decimation) adaptif dengan menetapkan tahap bilangan poligon. Apabila ditetapkan,
target_polycountdiabaikan.Nilai yang tersedia:
1: Adaptif — bilangan poligon ultra.2: Adaptif — bilangan poligon tinggi.3: Adaptif — bilangan poligon sederhana.4: Adaptif — bilangan poligon rendah.
- Name
- resize_height
- Type
- number
- ⚠ lapuk
- lalai 0
- Description
Ubah saiz model kepada ketinggian tertentu yang diukur dalam meter. Kami mengesyorkan penggunaan Resize API yang khusus sebagai gantinya.
auto_size,resize_height, danresize_longest_sidesaling eksklusif.
- Name
- resize_longest_side
- Type
- number
- ⚠ lapuk
- lalai 0
- Description
Ubah saiz model supaya dimensi kotak sempadan terpanjang sama dengan nilai yang dinyatakan dalam meter. Kami mengesyorkan penggunaan Resize API yang khusus sebagai gantinya.
auto_size,resize_height, danresize_longest_sidesaling eksklusif.
- Name
- auto_size
- Type
- boolean
- ⚠ lapuk
- lalai false
- Description
Apabila ditetapkan kepada
true, perkhidmatan ini menggunakan penglihatan AI untuk menganggarkan secara automatik ketinggian sebenar objek dan mengubah saiz model dengan sewajarnya. Kami mengesyorkan penggunaan Resize API yang khusus sebagai gantinya.auto_size,resize_height, danresize_longest_sidesaling eksklusif.
auto_size = true- Name
- origin_at
- Type
- string
- ⚠ lapuk
- lalai bottom
- Description
Kedudukan titik asal. Kami mengesyorkan penggunaan Resize API yang khusus sebagai gantinya.
Nilai yang tersedia:
bottom,center.
- Name
- convert_format_only
- Type
- boolean
- ⚠ lapuk
- Description
Jika
true, perkhidmatan hanya akan menukar format fail model input, mengabaikan input lain sepertitopology,resize_height, dantarget_polycount. Kami mengesyorkan penggunaan Convert API yang khusus sebagai gantinya.target_formatsmesti diberikan jikaconvert_format_onlyditetapkan kepadatrue.
- Name
- alpha_thumbnail
- Type
- boolean
- lalai false
- Description
Apabila ditetapkan kepada
true, tugasan itu turut merender versi latar belakang telus (RGBA) bagi pratonton dan memulangkannya sebagaialpha_thumbnail_urlpada respons GET. Medanthumbnail_urlyang sedia ada tidak berubah.
Nilai Pulangan
Sifat result bagi respons mengandungi id bagi tugasan remesh yang baharu dicipta.
Mod Kegagalan
- Name
400 - Bad Request- Description
Permintaan tidak boleh diterima. Punca biasa:
- Parameter hilang: Sama ada
model_urlatauinput_task_idmesti diberikan. - Tugasan input tidak sah:
input_task_idmesti merujuk kepada tugasan berjaya daripada model yang disokong. - Format model tidak sah:
model_urlmenunjuk kepada fail dengan sambungan yang tidak disokong. - URL tidak dapat dicapai:
model_urltidak dapat dimuat turun. - Topology tidak sah: Parameter
topologytidak sah. - Parameter saling eksklusif:
auto_sizedanresize_heighttidak boleh ditetapkan serentak.
- Parameter hilang: Sama ada
- Name
401 - Unauthorized- Description
Pengesahan gagal. Sila semak kunci API anda.
- Name
402 - Payment Required- Description
Kredit tidak mencukupi untuk melaksanakan tugasan ini.
- Name
429 - Too Many Requests- Description
Anda telah melebihi had kadar anda.
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"
}
Dapatkan Semula Tugas Remesh
Endpoint ini mendapatkan semula tugas remesh mengikut ID-nya.
Parameter
- Name
- id
- Type
- path
- Description
ID tugas remesh yang hendak didapatkan semula.
Nilai Pulangan
Objek Tugas Remesh.
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,
}
Padam Tugasan Remesh
Endpoint ini memadam tugasan remesh secara kekal, termasuk semua model dan data yang berkaitan. Tindakan ini tidak boleh diterbalikkan.
Parameter Laluan
- Name
- id
- Type
- path
- Description
ID bagi tugasan remesh yang hendak dipadam.
Status Tugasan
Tugasan yang masih PENDING akan dipadam dan kredit yang digunakan pada
masa penciptaan akan dikembalikan.
Tugasan yang sudah IN_PROGRESS tidak boleh dipadam: permintaan akan
ditolak dengan 409 Conflict dan tugasan tersebut terus berjalan. Kredit bagi
tugasan yang telah dimulakan oleh worker tidak boleh dikembalikan, jadi
memadamnya semasa ia sedang berjalan akan menyebabkan anda kehilangan kedua-dua
kredit dan hasilnya. Tunggu sehingga ia mencapai
SUCCEEDED, FAILED atau CANCELED, kemudian padamkannya.
Tugasan dalam keadaan terminal (SUCCEEDED, FAILED atau CANCELED) akan
dipadam tanpa bayaran balik.
Returns
Mengembalikan 200 OK apabila berjaya, atau 409 Conflict apabila tugasan
tersebut IN_PROGRESS.
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 is left 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."
}
Senaraikan Tugasan Remesh
Endpoint ini membolehkan anda mendapatkan senarai tugasan Remesh.
Parameter
- Name
- page_num
- Type
- integer
- lalai 1
- Description
Nombor halaman untuk penomboran halaman.
- Name
- page_size
- Type
- integer
- lalai 10
- Description
Had saiz halaman. Maksimum yang dibenarkan ialah
100item.
- Name
- sort_by
- Type
- string
- Description
Medan untuk disusun mengikut.
Nilai yang tersedia:
+created_at: Susun mengikut masa penciptaan secara menaik.-created_at: Susun mengikut masa penciptaan secara menurun.
Pulangan
Mengembalikan senarai berhalaman bagi Objek Tugasan Remesh.
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
}
]
Alirkan Tugas Remesh
Endpoint ini mengalirkan kemas kini masa nyata untuk tugas Remesh menggunakan Server-Sent Events (SSE).
Parameter
- Name
- id
- Type
- path
- Description
Pengecam unik untuk tugas Remesh yang hendak dialirkan.
Pemulangan
Memulangkan aliran Objek Tugas Remesh sebagai Server-Sent Events.
Untuk tugas PENDING atau IN_PROGRESS, aliran respons hanya akan mengandungi medan progress dan status yang diperlukan.
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.
// 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 Tugasan Remesh
Objek Tugasan Remesh mewakili unit kerja yang digunakan oleh Meshy untuk melakukan remesh dan mengeksport model 3D yang sedia ada ke dalam berbagai format. Objek ini mempunyai ciri-ciri berikut:
Ciri-ciri
- Name
- id
- Type
- string
- Description
Pengecam unik untuk tugasan. Walaupun kami menggunakan k-sortable UUID untuk id tugasan sebagai butiran pelaksanaan, anda tidak seharusnya membuat sebarang andaian tentang format id tersebut.
- Name
- type
- Type
- string
- Description
Jenis tugasan Remesh. Nilainya adalah
remesh.
- Name
- model_urls
- Type
- object
- Description
URL yang boleh dimuat turun untuk fail model 3D bertekstur yang dijana oleh Meshy. Ciri untuk sesuatu format akan ditinggalkan jika format tersebut tidak dijana, dan bukan mengembalikan rentetan kosong.
- Name
glb- Type
- string
- Description
URL yang boleh dimuat turun untuk fail GLB.
- Name
fbx- Type
- string
- Description
URL yang boleh dimuat turun untuk fail FBX.
- Name
obj- Type
- string
- Description
URL yang boleh dimuat turun untuk fail OBJ.
- Name
usdz- Type
- string
- Description
URL yang boleh dimuat turun untuk fail USDZ.
- Name
blend- Type
- string
- Description
URL yang boleh dimuat turun untuk fail Blender.
- Name
stl- Type
- string
- Description
URL yang boleh dimuat turun untuk fail STL.
- Name
3mf- Type
- string
- Description
URL yang boleh dimuat turun untuk fail 3MF. Hanya wujud apabila
3mfdiminta melaluitarget_formats.
- Name
- thumbnail_url
- Type
- string
- Description
URL yang boleh dimuat turun untuk imej pratonton yang dirender daripada model yang telah di-remesh.
- Name
- alpha_thumbnail_url
- Type
- string
- Description
URL yang boleh dimuat turun untuk versi latar belakang lutsinar (RGBA) bagi
thumbnail_url. Hanya wujud apabila tugasan dicipta denganalpha_thumbnail: truedan pratonton lutsinar berjaya dirender; jika tidak, ciri ini ditinggalkan.
- Name
- progress
- Type
- integer
- Description
Progress tugasan. Jika tugasan belum dimulakan, ciri ini akan menjadi
0. Setelah tugasan berjaya, nilai ini akan menjadi100.
- Name
- status
- Type
- string
- Description
Status tugasan. Nilai yang mungkin ialah salah satu daripada
PENDING,IN_PROGRESS,SUCCEEDED,FAILED.
- Name
- preceding_tasks
- Type
- integer
- Description
Bilangan tugasan yang mendahului.
Nilai ciri ini hanya bermakna jika status tugasan adalah
PENDING.
- Name
- created_at
- Type
- timestamp
- Description
Cap masa bagi bila tugasan dicipta, dalam milisaat.
- Name
- started_at
- Type
- timestamp
- Description
Cap masa bagi bila tugasan dimulakan, dalam milisaat. Jika tugasan belum dimulakan, ciri ini akan menjadi
0.
- Name
- finished_at
- Type
- timestamp
- Description
Cap masa bagi bila tugasan selesai, dalam milisaat. Jika tugasan belum selesai, ciri ini akan menjadi
0.
- Name
- task_error
- Type
- object
- Description
Butiran ralat untuk tugasan yang gagal. Lihat Ralat untuk rujukan lengkap objek
task_error.
- Name
- consumed_credits
- Type
- integer
- Description
Bilangan kredit yang digunakan oleh tugasan ini. Wujud apabila status tugasan adalah
PENDING,IN_PROGRESS, atauSUCCEEDED. Mengembalikan0untuk tugasanFAILED(kredit dikembalikan apabila gagal).
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
}