Remesh-API

Die Remesh-API ermöglicht es Ihnen, bestehende 3D-Modelle, die von anderen Meshy-APIs (wie Bild zu 3D oder Text zu 3D) generiert wurden, neu zu vernetzen und in verschiedene Formate zu exportieren. Dieser Abschnitt bietet Details zur Nutzung der Remesh-API.


POST/openapi/v1/remesh

Erstellen einer Remesh-Aufgabe

Dieser Endpunkt erstellt eine neue Remesh-Aufgabe.

Parameter

  • Name
    input_task_id
    Type
    string
    Erforderlich
    Description

    Die ID der abgeschlossenen Bild zu 3D oder Text zu 3D Aufgabe, die Sie remeshen möchten. Diese Aufgabe muss eine der folgenden Aufgaben sein: Text zu 3D Vorschau, Text zu 3D Verfeinerung, Bild zu 3D oder Neutexturierung. Außerdem muss sie den Status SUCCEEDED haben.

  • Name
    model_url
    Type
    string
    Erforderlich
    Description

    Bitte stellen Sie ein 3D-Modell für Meshy über eine öffentlich zugängliche URL oder Data URI zur Verfügung. Unterstützte Formate: .glb, .gltf, .obj, .fbx, .stl.

    Für Data URIs verwenden Sie den MIME-Typ: application/octet-stream.

  • Name
    target_formats
    Type
    string[]
    Standard ["glb"]
    Description

    Eine Liste von Zielformaten für das remeshte Modell. Wenn weggelassen, wird nur GLB generiert.

    Verfügbare Werte: glb, fbx, obj, usdz, blend, stl, 3mf.

  • Name
    topology
    Type
    string
    Standard triangle
    Description

    Geben Sie die Topologie des generierten Modells an.

    Verfügbare Werte:

    • quad: Erzeugt ein quad-dominantes Netz.
    • triangle: Erzeugt ein dezimiertes Dreiecksnetz.
  • Name
    target_polycount
    Type
    integer
    Standard 30,000
    Description

    Geben Sie die Zielanzahl der Polygone im generierten Modell an. Die tatsächliche Anzahl der Polygone kann je nach Komplexität der Geometrie von der Zielvorgabe abweichen.

    Der gültige Wertebereich variiert je nach Nutzerstufe:

    • 100 bis 300.000 (einschließlich)
  • Name
    decimation_mode
    Type
    integer
    Description

    Aktivieren Sie die adaptive Dezimierung, indem Sie ein Polygonanzahl-Level festlegen. Wenn gesetzt, wird target_polycount ignoriert.

    Verfügbare Werte:

    • 1: Adaptiv — ultra Polygonanzahl.
    • 2: Adaptiv — hohe Polygonanzahl.
    • 3: Adaptiv — mittlere Polygonanzahl.
    • 4: Adaptiv — niedrige Polygonanzahl.
  • Name
    resize_height
    Type
    number
    veraltet
    Standard 0
    Description

    Ändern Sie die Größe des Modells auf eine bestimmte Höhe, gemessen in Metern. Wir empfehlen die Verwendung der dedizierten Resize API.

  • Name
    resize_longest_side
    Type
    number
    veraltet
    Standard 0
    Description

    Ändern Sie die Größe des Modells so, dass die längste Dimension der Begrenzungsbox dem angegebenen Wert in Metern entspricht. Wir empfehlen die Verwendung der dedizierten Resize API.

  • Name
    auto_size
    Type
    boolean
    veraltet
    Standard false
    Description

    Wenn auf true gesetzt, verwendet der Dienst KI-Vision, um die reale Höhe des Objekts automatisch zu schätzen und das Modell entsprechend zu skalieren. Wir empfehlen die Verwendung der dedizierten Resize API.

Gilt nur wenn auto_size = true
  • Name
    origin_at
    Type
    string
    veraltet
    Standard bottom
    Description

    Position des Ursprungs. Wir empfehlen die Verwendung der dedizierten Resize API.

    Verfügbare Werte: bottom, center.

  • Name
    convert_format_only
    Type
    boolean
    veraltet
    Description

    Wenn true, ändert der Dienst nur das Format der Eingabemodell-Datei und ignoriert andere Eingaben wie topology, resize_height und target_polycount. Wir empfehlen die Verwendung der dedizierten Convert API.

  • Name
    alpha_thumbnail
    Type
    boolean
    Standard false
    Description

    Wenn auf true gesetzt, rendert die Aufgabe zusätzlich eine Version der Vorschau mit transparentem Hintergrund (RGBA) und gibt sie als alpha_thumbnail_url in der GET-Antwort zurück. Das bestehende thumbnail_url-Feld bleibt unverändert.

Rückgaben

Die result-Eigenschaft der Antwort enthält die id der neu erstellten Remesh-Aufgabe.

Fehlermodi

  • Name
    400 - Bad Request
    Description

    Die Anfrage war nicht akzeptabel. Häufige Ursachen:

    • Fehlender Parameter: Entweder model_url oder input_task_id muss angegeben werden.
    • Ungültige Eingabeaufgabe: Die input_task_id muss sich auf eine erfolgreiche Aufgabe aus einem unterstützten Modell beziehen.
    • Ungültiges Modellformat: Die model_url verweist auf eine Datei mit einer nicht unterstützten Erweiterung.
    • Nicht erreichbare URL: Die model_url konnte nicht heruntergeladen werden.
    • Ungültige Topologie: Der topology-Parameter ist ungültig.
    • Gegenseitig ausschließende Parameter: auto_size und resize_height können nicht beide gesetzt werden.
  • Name
    401 - Unauthorized
    Description

    Authentifizierung fehlgeschlagen. Bitte überprüfen Sie Ihren API-Schlüssel.

  • Name
    402 - Payment Required
    Description

    Nicht genügend Credits, um diese Aufgabe auszuführen.

  • Name
    429 - Too Many Requests
    Description

    Sie haben Ihre Ratenbegrenzung überschritten.

Anfrage

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
  }'

Antwort

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

GET/openapi/v1/remesh/:id

Abrufen einer Neuvernetzung-Aufgabe

Dieser Endpunkt ruft eine Neuvernetzung-Aufgabe anhand ihrer ID ab.

Parameter

  • Name
    id
    Type
    path
    Description

    Die ID der abzurufenden Neuvernetzung-Aufgabe.

Rückgaben

Das Neuvernetzung-Aufgabenobjekt.

Anfrage

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

Antwort

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

Löschen einer Neuvernetzung-Aufgabe

Dieser Endpunkt löscht dauerhaft eine Neuvernetzung-Aufgabe, einschließlich aller zugehörigen Modelle und Daten. Diese Aktion ist unwiderruflich.

Pfadparameter

  • Name
    id
    Type
    path
    Description

    Die ID der zu löschenden Neuvernetzung-Aufgabe.

Rückgaben

Gibt 200 OK bei Erfolg zurück.

Anfrage

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

Antwort

// Returns 200 Ok on success.

GET/openapi/v1/remesh

Liste der Neuvernetzung-Aufgaben

Dieser Endpunkt ermöglicht es Ihnen, eine Liste von Neuvernetzung-Aufgaben abzurufen.

Parameter

  • Name
    page_num
    Type
    integer
    Standard 1
    Description

    Seitennummer für die Paginierung.

  • Name
    page_size
    Type
    integer
    Standard 10
    Description

    Seitengrößenlimit. Maximal erlaubt sind 50 Elemente.

  • Name
    sort_by
    Type
    string
    Description

    Feld, nach dem sortiert werden soll.

    Verfügbare Werte:

    • +created_at: Sortierung nach Erstellungszeit in aufsteigender Reihenfolge.
    • -created_at: Sortierung nach Erstellungszeit in absteigender Reihenfolge.

Rückgaben

Gibt eine paginierte Liste der Die Neuvernetzung-Aufgaben-Objekte zurück.

Anfrage

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

Antwort

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

Streamen einer Neuvernetzung-Aufgabe

Dieser Endpunkt streamt Echtzeit-Updates für eine Neuvernetzung-Aufgabe unter Verwendung von Server-Sent Events (SSE).

Parameter

  • Name
    id
    Type
    path
    Description

    Eindeutiger Bezeichner für die Neuvernetzung-Aufgabe, die gestreamt werden soll.

Rückgaben

Gibt einen Stream von Die Neuvernetzung-Aufgabe-Objekte als Server-Sent Events zurück.

Für PENDING oder IN_PROGRESS Aufgaben wird der Antwortstream nur die notwendigen progress und status Felder enthalten.

Anfrage

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

Antwortstream

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

Das Remesh-Aufgabenobjekt

Das Remesh-Aufgabenobjekt repräsentiert eine Arbeitseinheit, die Meshy verwendet, um ein bestehendes 3D-Modell neu zu vernetzen und in verschiedene Formate zu exportieren. Das Objekt hat die folgenden Eigenschaften:

Eigenschaften

  • Name
    id
    Type
    string
    Description

    Eindeutiger Bezeichner für die Aufgabe. Während wir eine k-sortierbare UUID für Aufgaben-IDs als Implementierungsdetail verwenden, sollten Sie keine Annahmen über das Format der ID machen.

  • Name
    type
    Type
    string
    Description

    Typ der Remesh-Aufgabe. Der Wert ist remesh.

  • Name
    model_urls
    Type
    object
    Description

    Herunterladbare URL zur texturierten 3D-Modell-Datei, die von Meshy generiert wurde. Die Eigenschaft für ein Format wird weggelassen, wenn das Format nicht generiert wird, anstatt einen leeren String zurückzugeben.

    • Name
      glb
      Type
      string
      Description

      Herunterladbare URL zur GLB-Datei.

    • Name
      fbx
      Type
      string
      Description

      Herunterladbare URL zur FBX-Datei.

    • Name
      obj
      Type
      string
      Description

      Herunterladbare URL zur OBJ-Datei.

    • Name
      usdz
      Type
      string
      Description

      Herunterladbare URL zur USDZ-Datei.

    • Name
      blend
      Type
      string
      Description

      Herunterladbare URL zur Blender-Datei.

    • Name
      stl
      Type
      string
      Description

      Herunterladbare URL zur STL-Datei.

    • Name
      3mf
      Type
      string
      Description

      Herunterladbare URL zur 3MF-Datei. Nur vorhanden, wenn 3mf über target_formats angefordert wurde.

  • Name
    thumbnail_url
    Type
    string
    Description

    Herunterladbare URL zu einem Vorschaubild, das aus dem neu vernetzten Modell gerendert wurde.

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    Herunterladbare URL zu einer Version von thumbnail_url mit transparentem Hintergrund (RGBA). Nur vorhanden, wenn die Aufgabe mit alpha_thumbnail: true erstellt wurde und die transparente Vorschau erfolgreich gerendert wurde; andernfalls wird dieses Feld weggelassen.

  • Name
    progress
    Type
    integer
    Description

    Fortschritt der Aufgabe. Wenn die Aufgabe noch nicht gestartet wurde, hat diese Eigenschaft den Wert 0. Sobald die Aufgabe erfolgreich abgeschlossen ist, wird dieser Wert 100.

  • Name
    status
    Type
    string
    Description

    Status der Aufgabe. Mögliche Werte sind PENDING, IN_PROGRESS, SUCCEEDED, FAILED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Die Anzahl der vorhergehenden Aufgaben.

  • Name
    created_at
    Type
    timestamp
    Description

    Zeitstempel, wann die Aufgabe erstellt wurde, in Millisekunden.

  • Name
    started_at
    Type
    timestamp
    Description

    Zeitstempel, wann die Aufgabe gestartet wurde, in Millisekunden. Wenn die Aufgabe noch nicht gestartet wurde, hat diese Eigenschaft den Wert 0.

  • Name
    finished_at
    Type
    timestamp
    Description

    Zeitstempel, wann die Aufgabe abgeschlossen wurde, in Millisekunden. Wenn die Aufgabe noch nicht abgeschlossen ist, hat diese Eigenschaft den Wert 0.

  • Name
    task_error
    Type
    object
    Description

    Fehlerdetails für fehlgeschlagene Aufgaben. Siehe Fehler für die vollständige Referenz des task_error-Objekts.

  • Name
    consumed_credits
    Type
    integer
    Description

    Die Anzahl der Credits, die von dieser Aufgabe verbraucht wurden. Vorhanden, wenn der Aufgabenstatus PENDING, IN_PROGRESS oder SUCCEEDED ist. Gibt 0 für FAILED-Aufgaben zurück (Credits werden bei einem Fehler zurückerstattet).

Beispiel Remesh-Aufgabenobjekt

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