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.
Erstellen einer Remesh-Aufgabe
Dieser Endpunkt erstellt eine neue Remesh-Aufgabe.
Für Formatkonvertierung und Größenänderung verwenden Sie die dedizierte Convert API und Resize API. Die unten veralteten Parameter funktionieren weiterhin, aber wir empfehlen die neuen Endpunkte für neue Integrationen.
Parameter
Nur einer von input_task_id oder model_url ist erforderlich. Wenn beide angegeben sind, hat input_task_id Vorrang.
- 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
SUCCEEDEDhaben.
- 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_polycountignoriert.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.
auto_size,resize_heightundresize_longest_sideschließen sich gegenseitig aus.
- 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.
auto_size,resize_heightundresize_longest_sideschließen sich gegenseitig aus.
- Name
- auto_size
- Type
- boolean
- ⚠ veraltet
- Standard false
- Description
Wenn auf
truegesetzt, 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.auto_size,resize_heightundresize_longest_sideschließen sich gegenseitig aus.
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 wietopology,resize_heightundtarget_polycount. Wir empfehlen die Verwendung der dedizierten Convert API.target_formatsmuss angegeben werden, wennconvert_format_onlyauftruegesetzt ist.
- Name
- alpha_thumbnail
- Type
- boolean
- Standard false
- Description
Wenn auf
truegesetzt, rendert die Aufgabe zusätzlich eine Version der Vorschau mit transparentem Hintergrund (RGBA) und gibt sie alsalpha_thumbnail_urlin der GET-Antwort zurück. Das bestehendethumbnail_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_urloderinput_task_idmuss angegeben werden. - Ungültige Eingabeaufgabe: Die
input_task_idmuss sich auf eine erfolgreiche Aufgabe aus einem unterstützten Modell beziehen. - Ungültiges Modellformat: Die
model_urlverweist auf eine Datei mit einer nicht unterstützten Erweiterung. - Nicht erreichbare URL: Die
model_urlkonnte nicht heruntergeladen werden. - Ungültige Topologie: Der
topology-Parameter ist ungültig. - Gegenseitig ausschließende Parameter:
auto_sizeundresize_heightkönnen nicht beide gesetzt werden.
- Fehlender Parameter: Entweder
- 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
# 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"
}
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
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,
}
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
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.
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
50Elemente.
- 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
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
}
]
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
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übertarget_formatsangefordert 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_urlmit transparentem Hintergrund (RGBA). Nur vorhanden, wenn die Aufgabe mitalpha_thumbnail: trueerstellt 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 Wert100.
- 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.
Der Wert dieses Feldes ist nur aussagekräftig, wenn der Aufgabenstatus
PENDINGist.
- 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_PROGRESSoderSUCCEEDEDist. Gibt0fürFAILED-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
}