रीमेश API
रीमेश API आपको अन्य Meshy APIs (जैसे इमेज से 3D या टेक्स्ट से 3D) द्वारा जनरेट किए गए मौजूदा 3D मॉडल को रीमेश करने और उन्हें विभिन्न फॉर्मेट में एक्सपोर्ट करने की सुविधा देता है। यह सेक्शन रीमेश API का उपयोग कैसे करें, इस बारे में विवरण प्रदान करता है।
Remesh टास्क बनाएं
यह एंडपॉइंट एक नया रीमेश टास्क बनाता है।
फॉर्मेट कन्वर्ज़न और रीसाइज़िंग के लिए, समर्पित Convert API और Resize API का उपयोग करें। नीचे दिए गए डेप्रिकेटेड पैरामीटर काम करना जारी रखेंगे, लेकिन हम नए इंटीग्रेशन के लिए नए एंडपॉइंट्स की सलाह देते हैं।
पैरामीटर
input_task_id या model_url में से केवल एक आवश्यक है। यदि दोनों दिए गए हैं, तो input_task_id को प्राथमिकता दी जाती है।
- Name
- input_task_id
- Type
- string
- आवश्यक
- Description
उस पूर्ण हो चुके इमेज से 3D या टेक्स्ट से 3D टास्क की ID, जिसे आप रीमेश करना चाहते हैं। यह टास्क निम्नलिखित में से एक होना चाहिए: टेक्स्ट से 3D Preview, टेक्स्ट से 3D Refine, इमेज से 3D या रीटेक्सचर। इसके अलावा, इसकी स्थिति
SUCCEEDEDहोनी चाहिए।
- Name
- model_url
- Type
- string
- आवश्यक
- Description
कृपया Meshy को रीमेश करने के लिए एक सार्वजनिक रूप से सुलभ URL या data URI के माध्यम से एक 3D मॉडल प्रदान करें। समर्थित फॉर्मेट:
.glb,.gltf,.obj,.fbx,.stl।Data URIs के लिए, MIME type का उपयोग करें:
application/octet-stream।
- Name
- target_formats
- Type
- string[]
- डिफ़ॉल्ट ["glb"]
- Description
रीमेश किए गए मॉडल के लिए लक्ष्य फॉर्मेट की एक सूची। जब छोड़ दिया जाता है, तो केवल GLB जनरेट किया जाता है।
उपलब्ध वैल्यूज़:
glb,fbx,obj,usdz,blend,stl,3mf।
- Name
- topology
- Type
- string
- डिफ़ॉल्ट triangle
- Description
जनरेट किए गए मॉडल की topology निर्दिष्ट करें।
उपलब्ध वैल्यूज़:
quad: एक quad-dominant मेश जनरेट करें।triangle: एक decimated triangle मेश जनरेट करें।
- Name
- target_polycount
- Type
- integer
- डिफ़ॉल्ट 30,000
- Description
जनरेट किए गए मॉडल में पॉलीगन्स की लक्षित संख्या निर्दिष्ट करें। ज्यामिति की जटिलता के आधार पर पॉलीगन्स की वास्तविक संख्या लक्ष्य से भिन्न हो सकती है।
मान्य वैल्यू रेंज यूज़र टियर के आधार पर भिन्न होती है:
- 100 से 300,000 (समावेशी)
- Name
- decimation_mode
- Type
- integer
- Description
पॉलीकाउंट स्तर सेट करके एडैप्टिव decimation सक्षम करें। जब सेट किया जाता है, तो
target_polycountको नज़रअंदाज़ कर दिया जाता है।उपलब्ध वैल्यूज़:
1: एडैप्टिव — अल्ट्रा पॉलीकाउंट।2: एडैप्टिव — हाई पॉलीकाउंट।3: एडैप्टिव — मीडियम पॉलीकाउंट।4: एडैप्टिव — लो पॉलीकाउंट।
- Name
- resize_height
- Type
- number
- ⚠ पुराना
- डिफ़ॉल्ट 0
- Description
मॉडल को मीटर में मापी गई एक निश्चित ऊंचाई तक रीसाइज़ करें। हम इसके बजाय समर्पित Resize API का उपयोग करने की सलाह देते हैं।
auto_size,resize_height, औरresize_longest_sideपरस्पर अनन्य हैं।
- Name
- resize_longest_side
- Type
- number
- ⚠ पुराना
- डिफ़ॉल्ट 0
- Description
मॉडल को इस तरह रीसाइज़ करें कि सबसे लंबा bounding-box आयाम मीटर में निर्दिष्ट वैल्यू के बराबर हो। हम इसके बजाय समर्पित Resize API का उपयोग करने की सलाह देते हैं।
auto_size,resize_height, औरresize_longest_sideपरस्पर अनन्य हैं।
- Name
- auto_size
- Type
- boolean
- ⚠ पुराना
- डिफ़ॉल्ट false
- Description
जब
trueपर सेट किया जाता है, तो सेवा ऑब्जेक्ट की वास्तविक दुनिया की ऊंचाई का स्वचालित रूप से अनुमान लगाने और उसके अनुसार मॉडल को रीसाइज़ करने के लिए AI vision का उपयोग करती है। हम इसके बजाय समर्पित Resize API का उपयोग करने की सलाह देते हैं।auto_size,resize_height, औरresize_longest_sideपरस्पर अनन्य हैं।
auto_size = true- Name
- origin_at
- Type
- string
- ⚠ पुराना
- डिफ़ॉल्ट bottom
- Description
ओरिजिन की स्थिति। हम इसके बजाय समर्पित Resize API का उपयोग करने की सलाह देते हैं।
उपलब्ध वैल्यूज़:
bottom,center।
- Name
- convert_format_only
- Type
- boolean
- ⚠ पुराना
- Description
यदि
trueहै, तो सेवा केवल इनपुट मॉडल फ़ाइल का फॉर्मेट बदलेगी, अन्य इनपुट जैसेtopology,resize_height, औरtarget_polycountको नज़रअंदाज़ करते हुए। हम इसके बजाय समर्पित Convert API का उपयोग करने की सलाह देते हैं।यदि
convert_format_onlyकोtrueपर सेट किया गया है, तोtarget_formatsप्रदान किया जाना चाहिए।
- Name
- alpha_thumbnail
- Type
- boolean
- डिफ़ॉल्ट false
- Description
जब
trueपर सेट किया जाता है, तो टास्क अतिरिक्त रूप से प्रीव्यू का एक transparent-background (RGBA) संस्करण रेंडर करता है और इसे GET प्रतिक्रिया परalpha_thumbnail_urlके रूप में लौटाता है। मौजूदाthumbnail_urlफ़ील्ड अपरिवर्तित रहता है।
रिटर्न
प्रतिक्रिया की result प्रॉपर्टी में नए बनाए गए रीमेश टास्क की id होती है।
विफलता के मोड
- Name
400 - Bad Request- Description
अनुरोध अस्वीकार्य था। सामान्य कारण:
- पैरामीटर गायब है:
model_urlयाinput_task_idमें से एक अवश्य दिया जाना चाहिए। - अमान्य इनपुट टास्क:
input_task_idको एक समर्थित मॉडल से एक सफल टास्क को संदर्भित करना चाहिए। - अमान्य मॉडल फॉर्मेट:
model_urlएक ऐसी फ़ाइल की ओर इशारा करता है जिसका एक्सटेंशन असमर्थित है। - अनुपलब्ध URL:
model_urlको डाउनलोड नहीं किया जा सका। - अमान्य topology:
topologyपैरामीटर अमान्य है। - परस्पर अनन्य पैरामीटर:
auto_sizeऔरresize_heightदोनों एक साथ सेट नहीं किए जा सकते।
- पैरामीटर गायब है:
- Name
401 - Unauthorized- Description
प्रमाणीकरण विफल हुआ। कृपया अपनी API की जांचें।
- Name
402 - Payment Required- Description
इस टास्क को करने के लिए अपर्याप्त क्रेडिट।
- Name
429 - Too Many Requests- Description
आपने अपनी रेट लिमिट पार कर ली है।
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"
}
एक रीमेश टास्क प्राप्त करें
यह एंडपॉइंट किसी रीमेश टास्क को उसकी ID के द्वारा प्राप्त करता है।
पैरामीटर
- Name
- id
- Type
- path
- Description
प्राप्त किए जाने वाले रीमेश टास्क की ID।
रिटर्न
रीमेश टास्क ऑब्जेक्ट।
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,
}
एक रीमेश टास्क डिलीट करें
यह एंडपॉइंट किसी रीमेश टास्क को स्थायी रूप से डिलीट कर देता है, जिसमें उससे जुड़े सभी मॉडल और डेटा शामिल हैं। यह क्रिया अपरिवर्तनीय है।
पथ पैरामीटर (Path Parameters)
- Name
- id
- Type
- path
- Description
डिलीट किए जाने वाले रीमेश टास्क की ID।
रिटर्न
सफल होने पर 200 OK रिटर्न करता है।
Request
curl --request DELETE \
--url https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"
Response
// Returns 200 Ok on success.
रीमेश टास्क की सूची
यह एंडपॉइंट आपको रीमेश टास्क की सूची प्राप्त करने की अनुमति देता है।
पैरामीटर
- Name
- page_num
- Type
- integer
- डिफ़ॉल्ट 1
- Description
पेजिनेशन के लिए पेज नंबर।
- Name
- page_size
- Type
- integer
- डिफ़ॉल्ट 10
- Description
पेज साइज़ की सीमा। अधिकतम अनुमत सीमा
50आइटम है।
- Name
- sort_by
- Type
- string
- Description
जिस फ़ील्ड के आधार पर क्रमबद्ध करना है।
उपलब्ध मान:
+created_at: निर्माण समय के आधार पर आरोही क्रम में क्रमबद्ध करें।-created_at: निर्माण समय के आधार पर अवरोही क्रम में क्रमबद्ध करें।
रिटर्न
रीमेश टास्क ऑब्जेक्ट्स की एक पेजिनेटेड सूची लौटाता है।
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
}
]
Stream a Remesh Task
यह एंडपॉइंट Server-Sent Events (SSE) का उपयोग करके किसी Remesh टास्क के लिए रीयल-टाइम अपडेट स्ट्रीम करता है।
पैरामीटर
- Name
- id
- Type
- path
- Description
स्ट्रीम करने के लिए Remesh टास्क का यूनीक आइडेंटिफ़ायर।
रिटर्न
यह Server-Sent Events के रूप में The Remesh Task Objects की एक स्ट्रीम रिटर्न करता है।
PENDING या IN_PROGRESS टास्क के लिए, रिस्पॉन्स स्ट्रीम में केवल आवश्यक progress और status फ़ील्ड शामिल होंगी।
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,
}
रीमेश Task ऑब्जेक्ट
रीमेश Task ऑब्जेक्ट एक कार्य इकाई को दर्शाता है जिसका उपयोग Meshy किसी मौजूदा 3D मॉडल को रीमेश करने और विभिन्न फॉर्मैट में एक्सपोर्ट करने के लिए करता है। इस ऑब्जेक्ट में निम्नलिखित properties हैं:
Properties
- Name
- id
- Type
- string
- Description
Task के लिए यूनीक पहचानकर्ता। हालांकि हम टास्क आईडी के लिए क्रियान्वयन विवरण के रूप में k-sortable UUID का उपयोग करते हैं, आपको id के फॉर्मैट के बारे में कोई भी अनुमान नहीं लगाना चाहिए।
- Name
- type
- Type
- string
- Description
रीमेश task का प्रकार। इसका मान
remeshहै।
- Name
- model_urls
- Type
- object
- Description
Meshy द्वारा जेनरेट की गई टेक्सचर्ड 3D मॉडल फ़ाइल का डाउनलोड योग्य URL। किसी फॉर्मैट के लिए property को खाली स्ट्रिंग लौटाने के बजाय छोड़ दिया जाएगा, यदि वह फॉर्मैट जेनरेट नहीं किया गया है।
- Name
glb- Type
- string
- Description
GLB फ़ाइल का डाउनलोड योग्य URL।
- Name
fbx- Type
- string
- Description
FBX फ़ाइल का डाउनलोड योग्य URL।
- Name
obj- Type
- string
- Description
OBJ फ़ाइल का डाउनलोड योग्य URL।
- Name
usdz- Type
- string
- Description
USDZ फ़ाइल का डाउनलोड योग्य URL।
- Name
blend- Type
- string
- Description
Blender फ़ाइल का डाउनलोड योग्य URL।
- Name
stl- Type
- string
- Description
STL फ़ाइल का डाउनलोड योग्य URL।
- Name
3mf- Type
- string
- Description
3MF फ़ाइल का डाउनलोड योग्य URL। यह केवल तभी मौजूद होता है जब
target_formatsके माध्यम से3mfका अनुरोध किया गया हो।
- Name
- thumbnail_url
- Type
- string
- Description
रीमेश किए गए मॉडल से रेंडर की गई प्रीव्यू इमेज का डाउनलोड योग्य URL।
- Name
- alpha_thumbnail_url
- Type
- string
- Description
thumbnail_urlके पारदर्शी-बैकग्राउंड (RGBA) संस्करण का डाउनलोड योग्य URL। यह केवल तभी मौजूद होता है जब task कोalpha_thumbnail: trueके साथ बनाया गया हो और पारदर्शी प्रीव्यू सफलतापूर्वक रेंडर हुआ हो; अन्यथा इस फ़ील्ड को छोड़ दिया जाता है।
- Name
- progress
- Type
- integer
- Description
Task का progress। यदि task अभी शुरू नहीं हुआ है, तो यह property
0होगी। एक बार task के सफल हो जाने पर, यह100हो जाएगी।
- Name
- status
- Type
- string
- Description
Task की स्थिति। संभावित मान
PENDING,IN_PROGRESS,SUCCEEDED,FAILEDमें से एक हैं।
- Name
- preceding_tasks
- Type
- integer
- Description
पूर्ववर्ती tasks की संख्या।
इस फ़ील्ड का मान तभी सार्थक है जब task की स्थिति
PENDINGहो।
- Name
- created_at
- Type
- timestamp
- Description
Task को बनाए जाने का टाइमस्टैंप, मिलीसेकंड में।
- Name
- started_at
- Type
- timestamp
- Description
Task को शुरू किए जाने का टाइमस्टैंप, मिलीसेकंड में। यदि task अभी शुरू नहीं हुआ है, तो यह property
0होगी।
- Name
- finished_at
- Type
- timestamp
- Description
Task के समाप्त होने का टाइमस्टैंप, मिलीसेकंड में। यदि task अभी समाप्त नहीं हुआ है, तो यह property
0होगी।
- Name
- task_error
- Type
- object
- Description
असफल tasks के लिए एरर विवरण। पूर्ण
task_errorऑब्जेक्ट संदर्भ के लिए एरर देखें।
- Name
- consumed_credits
- Type
- integer
- Description
इस task द्वारा उपभोग किए गए क्रेडिट की संख्या। यह तब मौजूद होता है जब task की स्थिति
PENDING,IN_PROGRESS, याSUCCEEDEDहो।FAILEDtasks के लिए0लौटाता है (विफलता पर क्रेडिट वापस कर दिए जाते हैं)।
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
}