Yeniden Ağ API'si

Yeniden Ağ API'si, diğer Meshy API'leri (Görselden 3D'ye veya Metinden 3D'ye gibi) tarafından oluşturulan mevcut 3D modelleri yeniden ağ yapmanıza ve çeşitli formatlara dışa aktarmanıza olanak tanır. Bu bölüm, Yeniden Ağ API'sinin nasıl kullanılacağına dair ayrıntılar sunar.


POST/openapi/v1/remesh

Yeniden Ağ Görevi Oluştur

Bu uç nokta yeni bir yeniden ağ görevi oluşturur.

Parametreler

  • Name
    input_task_id
    Type
    string
    Zorunlu
    Description

    Yeniden ağ yapmak istediğiniz tamamlanmış Görselden 3D'ye veya Metinden 3D'ye görevinin kimliği. Bu görev aşağıdaki görevlerden biri olmalıdır: Metinden 3D'ye Önizleme, Metinden 3D'ye İyileştirme, Görselden 3D'ye veya Yeniden dokulama. Ayrıca, SUCCEEDED durumuna sahip olmalıdır.

  • Name
    model_url
    Type
    string
    Zorunlu
    Description

    Meshy'nin yeniden ağ yapması için genel olarak erişilebilir bir URL veya veri URI aracılığıyla bir 3D model sağlayın. Desteklenen formatlar: .glb, .gltf, .obj, .fbx, .stl.

    Veri URI'leri için MIME türü: application/octet-stream kullanın.

  • Name
    target_formats
    Type
    string[]
    varsayılan ["glb"]
    Description

    Yeniden ağ yapılan model için hedef formatların bir listesi. Atlanırsa, yalnızca GLB üretilir.

    Mevcut değerler: glb, fbx, obj, usdz, blend, stl, 3mf.

  • Name
    topology
    Type
    string
    varsayılan triangle
    Description

    Üretilen modelin topolojisini belirtin.

    Mevcut değerler:

    • quad: Dörtgen ağırlıklı bir ağ oluşturun.
    • triangle: Azaltılmış üçgen ağı oluşturun.
  • Name
    target_polycount
    Type
    integer
    varsayılan 30,000
    Description

    Üretilen modeldeki hedef poligon sayısını belirtin. Geometrinin karmaşıklığına bağlı olarak gerçek poligon sayısı hedeften sapabilir.

    Geçerli değer aralığı kullanıcı katmanına bağlı olarak değişir:

    • 100 ile 300,000 (dahil)
  • Name
    decimation_mode
    Type
    integer
    Description

    Poligon sayısı seviyesini ayarlayarak adaptif azaltmayı etkinleştirin. Ayarlandığında, target_polycount göz ardı edilir.

    Mevcut değerler:

    • 1: Adaptif — ultra poligon sayısı.
    • 2: Adaptif — yüksek poligon sayısı.
    • 3: Adaptif — orta poligon sayısı.
    • 4: Adaptif — düşük poligon sayısı.
  • Name
    resize_height
    Type
    number
    kullanımdan kaldırıldı
    varsayılan 0
    Description

    Modeli metre cinsinden ölçülen belirli bir yüksekliğe yeniden boyutlandırın. Bunun yerine özel Yeniden Boyutlandırma API kullanmanızı öneririz.

  • Name
    resize_longest_side
    Type
    number
    kullanımdan kaldırıldı
    varsayılan 0
    Description

    Modeli, en uzun sınır kutusu boyutunun belirtilen değere eşit olacağı şekilde yeniden boyutlandırın. Bunun yerine özel Yeniden Boyutlandırma API kullanmanızı öneririz.

  • Name
    auto_size
    Type
    boolean
    kullanımdan kaldırıldı
    varsayılan false
    Description

    true olarak ayarlandığında, hizmet AI görselini kullanarak nesnenin gerçek dünya yüksekliğini otomatik olarak tahmin eder ve modeli buna göre yeniden boyutlandırır. Bunun yerine özel Yeniden Boyutlandırma API kullanmanızı öneririz.

Yalnızca şu durumlarda geçerli auto_size = true
  • Name
    origin_at
    Type
    string
    kullanımdan kaldırıldı
    varsayılan bottom
    Description

    Orijinin konumu. Bunun yerine özel Yeniden Boyutlandırma API kullanmanızı öneririz.

    Mevcut değerler: bottom, center.

  • Name
    convert_format_only
    Type
    boolean
    kullanımdan kaldırıldı
    Description

    true ise, hizmet yalnızca giriş model dosyasının formatını değiştirir, topology, resize_height ve target_polycount gibi diğer girdileri göz ardı eder. Bunun yerine özel Dönüştürme API kullanmanızı öneririz.

  • Name
    alpha_thumbnail
    Type
    boolean
    varsayılan false
    Description

    true olarak ayarlandığında, görev ayrıca önizlemenin şeffaf arka planlı (RGBA) bir versiyonunu oluşturur ve GET yanıtında alpha_thumbnail_url olarak döndürür. Mevcut thumbnail_url alanı değişmeden kalır.

Dönüşler

Yanıtın result özelliği, yeni oluşturulan yeniden ağ görevinin id'sini içerir.

Başarısızlık Modları

  • Name
    400 - Bad Request
    Description

    İstek kabul edilemezdi. Yaygın nedenler:

    • Eksik parametre: model_url veya input_task_id sağlanmalıdır.
    • Geçersiz giriş görevi: input_task_id, desteklenen bir modelden başarılı bir göreve atıfta bulunmalıdır.
    • Geçersiz model formatı: model_url, desteklenmeyen bir uzantıya sahip bir dosyaya işaret ediyor.
    • Erişilemez URL: model_url indirilemedi.
    • Geçersiz topoloji: topology parametresi geçersiz.
    • Birbirini dışlayan parametreler: auto_size ve resize_height her ikisi de ayarlanamaz.
  • Name
    401 - Unauthorized
    Description

    Kimlik doğrulama başarısız oldu. Lütfen API anahtarınızı kontrol edin.

  • Name
    402 - Payment Required
    Description

    Bu görevi gerçekleştirmek için yetersiz kredi.

  • Name
    429 - Too Many Requests
    Description

    Hız sınırınızı aştınız.

İstek

POST
/openapi/v1/remesh
# 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
  }'

Yanıt

{
  "result": "0193bfc5-ee4f-73f8-8525-44b398884ce9"
}

GET/openapi/v1/remesh/:id

Yeniden Ağ Görevini Al

Bu uç nokta, bir yeniden ağ görevini ID'si ile alır.

Parametreler

  • Name
    id
    Type
    path
    Description

    Alınacak yeniden ağ görevinin ID'si.

Dönen Değerler

Yeniden Ağ Görevi nesnesi.

İstek

GET
/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Yanıt

{
  "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,
}

DELETE/openapi/v1/remesh/:id

Bir Yeniden Ağ Görevini Sil

Bu uç nokta, bir yeniden ağ görevini, ilgili tüm modeller ve verilerle birlikte kalıcı olarak siler. Bu işlem geri alınamaz.

Yol Parametreleri

  • Name
    id
    Type
    path
    Description

    Silinecek yeniden ağ görevinin ID'si.

Dönen Değerler

Başarı durumunda 200 OK döner.

İstek

DELETE
/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Yanıt

// Returns 200 Ok on success.

GET/openapi/v1/remesh

Yeniden Ağ Görevlerini Listele

Bu uç nokta, Yeniden Ağ görevlerinin bir listesini almanıza olanak tanır.

Parametreler

  • Name
    page_num
    Type
    integer
    varsayılan 1
    Description

    Sayfalama için sayfa numarası.

  • Name
    page_size
    Type
    integer
    varsayılan 10
    Description

    Sayfa boyutu sınırı. Maksimum izin verilen 50 öğedir.

  • Name
    sort_by
    Type
    string
    Description

    Sıralama yapılacak alan.

    Kullanılabilir değerler:

    • +created_at: Oluşturulma zamanına göre artan sırada sıralama.
    • -created_at: Oluşturulma zamanına göre azalan sırada sıralama.

Dönen Değerler

Yeniden Ağ Görev Nesneleri listesini sayfalı olarak döndürür.

İstek

GET
/openapi/v1/remesh
curl https://api.meshy.ai/openapi/v1/remesh?page_size=10 \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Yanıt

[
  {
    "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
  }
]

GET/openapi/v1/remesh/:id/stream

Yeniden Ağ Görevini Yayınla

Bu uç nokta, Server-Sent Events (SSE) kullanarak bir Yeniden Ağ görevi için gerçek zamanlı güncellemeleri yayınlar.

Parametreler

  • Name
    id
    Type
    path
    Description

    Yayınlanacak Yeniden Ağ görevi için benzersiz tanımlayıcı.

Dönen Değerler

Server-Sent Events olarak Yeniden Ağ Görev Nesneleri akışını döndürür.

PENDING veya IN_PROGRESS görevleri için, yanıt akışı yalnızca gerekli progress ve status alanlarını içerecektir.

İstek

GET
/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream
curl -N https://api.meshy.ai/openapi/v1/remesh/a43b5c6d-7e8f-901a-234b-567c890d1e2f/stream \
-H "Authorization: Bearer ${YOUR_API_KEY}"

Yanıt Akışı

// 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,
}

Yeniden Ağ Görevi Nesnesi

Yeniden Ağ Görevi nesnesi, Meshy'nin mevcut bir 3D modeli çeşitli formatlara yeniden ağ ve dışa aktarmak için kullandığı bir iş birimini temsil eder. Nesne aşağıdaki özelliklere sahiptir:

Özellikler

  • Name
    id
    Type
    string
    Description

    Görev için benzersiz tanımlayıcı. Görev kimlikleri için k-sıralanabilir UUID kullanıyoruz, ancak id formatı hakkında herhangi bir varsayımda bulunmamalısınız.

  • Name
    type
    Type
    string
    Description

    Yeniden Ağ görevinin türü. Değer remesh olarak belirlenmiştir.

  • Name
    model_urls
    Type
    object
    Description

    Meshy tarafından üretilen dokulu 3D model dosyasının indirilebilir URL'si. Bir format üretilmediğinde, boş bir dize döndürmek yerine o format için özellik atlanacaktır.

    • Name
      glb
      Type
      string
      Description

      GLB dosyasının indirilebilir URL'si.

    • Name
      fbx
      Type
      string
      Description

      FBX dosyasının indirilebilir URL'si.

    • Name
      obj
      Type
      string
      Description

      OBJ dosyasının indirilebilir URL'si.

    • Name
      usdz
      Type
      string
      Description

      USDZ dosyasının indirilebilir URL'si.

    • Name
      blend
      Type
      string
      Description

      Blender dosyasının indirilebilir URL'si.

    • Name
      stl
      Type
      string
      Description

      STL dosyasının indirilebilir URL'si.

    • Name
      3mf
      Type
      string
      Description

      3MF dosyasının indirilebilir URL'si. Sadece 3mf target_formats aracılığıyla istendiğinde mevcut olur.

  • Name
    thumbnail_url
    Type
    string
    Description

    Yeniden ağlanmış modelden render edilmiş bir önizleme görüntüsünün indirilebilir URL'si.

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    thumbnail_url'un şeffaf arka planlı (RGBA) versiyonunun indirilebilir URL'si. Sadece görev alpha_thumbnail: true ile oluşturulduğunda ve şeffaf önizleme başarıyla render edildiğinde mevcut olur; aksi takdirde bu alan atlanır.

  • Name
    progress
    Type
    integer
    Description

    Görevin ilerleme durumu. Görev henüz başlamadıysa, bu özellik 0 olacaktır. Görev başarıyla tamamlandığında, bu 100 olur.

  • Name
    status
    Type
    string
    Description

    Görevin durumu. Olası değerler PENDING, IN_PROGRESS, SUCCEEDED, FAILED'den biridir.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Önceki görevlerin sayısı.

  • Name
    created_at
    Type
    timestamp
    Description

    Görevin oluşturulduğu zamanın zaman damgası, milisaniye cinsinden.

  • Name
    started_at
    Type
    timestamp
    Description

    Görevin başladığı zamanın zaman damgası, milisaniye cinsinden. Görev henüz başlamadıysa, bu özellik 0 olacaktır.

  • Name
    finished_at
    Type
    timestamp
    Description

    Görevin tamamlandığı zamanın zaman damgası, milisaniye cinsinden. Görev henüz tamamlanmadıysa, bu özellik 0 olacaktır.

  • Name
    task_error
    Type
    object
    Description

    Başarısız görevler için hata detayları. Tam task_error nesne referansı için Hatalar bölümüne bakın.

  • Name
    consumed_credits
    Type
    integer
    Description

    Bu görev tarafından tüketilen kredi sayısı. Görev durumu PENDING, IN_PROGRESS veya SUCCEEDED olduğunda mevcut olur. FAILED görevler için 0 döner (başarısızlık durumunda krediler iade edilir).

Örnek Yeniden Ağ Görevi Nesnesi

{
  "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
}