Neuvernetzungs-API
Erstellen Sie das Netz eines 3D-Modells mit einer neuen topology und Flächenzahl neu und exportieren Sie es in die von Ihnen gewählten Formate. Das Modell kann aus einem anderen Meshy-Task stammen, z. B. aus Bild zu 3D oder Text zu 3D, oder aus einer Modelldatei.
Eine Neuvernetzungs-Aufgabe erstellen
Erstellt eine Neuvernetzungs-Aufgabe. Die Aufgabe läuft im Hintergrund. Wie lange eine Aufgabe in der Regel dauert, erfahren Sie unter Verarbeitungszeiten.
Um das Format eines Modells zu konvertieren oder seine Größe zu ändern, verwenden Sie die Convert API oder die Resize API. Die veralteten Parameter auf dieser Seite funktionieren weiterhin, aber neue Integrationen sollten diese Endpunkte verwenden.
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"
}
Parameter
- Name
- input_task_id
- Type
- string
- Erforderlich
- Description
Erforderlich, sofern Sie nicht
model_urlsenden. Die ID der Aufgabe, deren Modell Sie neu vernetzen möchten, zum Beispiel eine Text-zu-3D-, Bild-zu-3D-, Neutexturierungs- oder Neuvernetzungs-Aufgabe. Die Aufgabe muss von Ihnen über die API erstellt worden sein und den StatusSUCCEEDEDhaben.
- Name
- model_url
- Type
- string
- Erforderlich
- Description
Erforderlich, sofern Sie nicht
input_task_idsenden. Das neu zu vernetzende Modell, als öffentliche URL oder als Data URI. Wenn Sie beides senden, verwendet Meshyinput_task_id.Das Modell muss eine GLB-, glTF-, OBJ-, FBX- oder STL-Datei mit maximal 400 MB von einer
http- oderhttps-URL sein, oder 100 MB als Data URI. Verwenden Sie für eine Data URI den MIME-Typapplication/octet-stream.Eine Datei über 100 MB muss zusätzlich diese Regeln erfüllen:
- Eine GLB-, glTF-, FBX- oder OBJ-Datei darf höchstens 10.000.000 Flächen haben. Meshy zählt Flächen als Dreiecke, sodass ein Viereck als 2 zählt und ein mehrfach gezeichnetes Netz pro Kopie einmal zählt.
- Eine FBX-Datei muss binäres FBX 7.1 oder neuer sein.
- Eine GLB- oder glTF-Datei darf keine Draco-Kompression verwenden.
- Name
- target_formats
- Type
- string[]
- Standard ["glb"]
- Description
Die zu erzeugenden Dateiformate.
Verfügbare Werte:
glbfbxobjusdzblendstl3mf
- Name
- topology
- Type
- string
- Standard triangle
- Description
Der Flächentyp des neu vernetzten Modells.
Verfügbare Werte:
quad: ein überwiegend aus Vierecken bestehendes Netztriangle: ein dezimiertes Dreiecksnetz
- Name
- target_polycount
- Type
- integer
- Standard 30000
- Description
Die angestrebte Anzahl an Flächen, von
100bis300000. Das Ergebnis kann je nach Geometrie des Modells vom Zielwert abweichen. Ein Wert außerhalb des Bereichs liefert400.
- Name
- decimation_mode
- Type
- integer
- Description
Adaptive Flächenanzahl, nach Stufe. Wenn Sie diesen Wert setzen, ignoriert Meshy
target_polycount.Verfügbare Werte:
1: ultra2: hoch3: mittel4: niedrig
- Name
- resize_height
- Type
- number
- ⚠ veraltet
- Standard 0
- Description
Verwenden Sie stattdessen die Resize API. Die Höhe, auf die das Modell skaliert werden soll, in Metern. Senden Sie höchstens einen der Parameter
resize_height,resize_longest_sideundauto_size.
- Name
- resize_longest_side
- Type
- number
- ⚠ veraltet
- Standard 0
- Description
Verwenden Sie stattdessen die Resize API. Die Länge, auf die die längste Seite des Begrenzungsrahmens des Modells skaliert werden soll, in Metern. Senden Sie höchstens einen der Parameter
resize_height,resize_longest_sideundauto_size.
- Name
- auto_size
- Type
- boolean
- ⚠ veraltet
- Standard false
- Description
Verwenden Sie stattdessen die Resize API. Ob die reale Höhe des Objekts mit KI-Bildanalyse geschätzt und das Modell darauf skaliert werden soll. Senden Sie höchstens einen der Parameter
resize_height,resize_longest_sideundauto_size.
- Name
- origin_at
- Type
- string
- ⚠ veraltet
- Standard bottom
- Description
Verwenden Sie stattdessen die Resize API. Wo der Ursprung des Modells platziert werden soll,
bottomodercenter. Der Standardwert gilt, wenn Sieresize_height,resize_longest_sideoderauto_sizesenden. Ohne einen dieser Parameter verschiebt Meshy den Ursprung nur, wenn Sieorigin_atsenden.
- Name
- convert_format_only
- Type
- boolean
- ⚠ veraltet
- Description
Verwenden Sie stattdessen die Convert API. Ob das Modell nur in
target_formatskonvertiert werden soll. Wenntrue, ignoriert Meshytopology,target_polycount,decimation_mode,resize_height,resize_longest_sideundauto_size, prüft jedoch weiterhin deren Werte, sodass ein ungültiger Wert400zurückgibt. Mitconvert_format_only: truegibt ein leeres odernull-target_formats400zurück.
- Name
- alpha_thumbnail
- Type
- boolean
- Standard false
- Description
Ob zusätzlich eine Vorschau mit transparentem Hintergrund (RGBA) gerendert werden soll, zurückgegeben in
alpha_thumbnail_url, wenn Sie die Aufgabe abrufen.thumbnail_urländert sich nicht.
Rückgabewerte
Das Feld result der Antwort enthält die ID der neuen Neuvernetzungs-Aufgabe.
Fehlerarten
- Name
400 - Bad Request- Description
Die Anfrage kann nicht ausgeführt werden. Die Fehlermeldung gibt an, welches Problem gefunden wurde. Zum Beispiel:
- Fehlender Parameter: Weder
model_urlnochinput_task_idwurde gesendet. - Ungültige Eingabeaufgabe:
input_task_idist keine erfolgreiche API-Aufgabe, oder ihr KI-Modell unterstützt keine Neuvernetzung. - Ungültiges Modellformat: Die Datei unter
model_urlhat eine nicht unterstützte Dateierweiterung. - Nicht erreichbare URL: Meshy kann die Datei unter
model_urlnicht herunterladen. - Modelldatei zu groß: Die Datei unter
model_urlist größer als 400 MB von einerhttp- oderhttps-URL, oder größer als 100 MB als Data URI. - Zu viele Flächen: Die Datei unter
model_urlist größer als 100 MB und hat mehr als 10.000.000 Flächen. Reduzieren Sie die Flächenanzahl und senden Sie die Datei erneut. - ASCII-FBX über 100 MB: Die Datei unter
model_urlist eine ASCII-FBX-Datei über 100 MB. Senden Sie sie als binäre FBX- oder GLB-Datei. - Nicht lesbare Modelldatei: Die Datei unter
model_urlist größer als 100 MB, und Meshy kann ihren Header nicht lesen. Zum Beispiel handelt es sich um eine Draco-komprimierte GLB- oder glTF-Datei oder um eine binäre FBX-Datei älter als 7.1. - Modell-Header zu komplex: Die Datei unter
model_urlist größer als 100 MB, und ihr Header enthält zu viele Netze, Knoten oder Einträge zum Prüfen. Reduzieren Sie die Anzahl der Objekte in der Datei und senden Sie sie erneut. - Ungültige Topologie:
topologyist wederquadnochtriangle. - Sich gegenseitig ausschließende Parameter: Die Anfrage enthält mehr als einen der Parameter
auto_size,resize_heightundresize_longest_side. Senden Sie nur einen.
Korrigieren Sie die Anfrage und senden Sie sie erneut. Siehe Fehler.
- Fehlender Parameter: Weder
- Name
401 - Unauthorized- Description
Der API-Schlüssel fehlt oder ist ungültig. Überprüfen Sie den
Authorization-Header.
- Name
402 - Payment Required- Description
Zum Beispiel:
- Unzureichende Credits: Das Konto hat nicht genügend Credits für diese Aufgabe, oder das Konto hat ein Credit-Limit erreicht. Überprüfen Sie Ihr Credit-Guthaben und versuchen Sie es erneut.
- Kostenloser Plan: Das Erstellen einer Aufgabe erfordert einen kostenpflichtigen Plan. Aktualisieren Sie Ihren Plan in Ihren Abonnement-Einstellungen und versuchen Sie es erneut.
- Name
403 - Forbidden- Description
input_task_idist ein Flachrelief-Modell, das dieser Endpunkt nicht neu vernetzen kann. Die Meldung lautetThis model type does not support this operation. Senden Sie ein anderes Modell.
- Name
404 - Not Found- Description
input_task_idstimmt mit keiner Ihrer Aufgaben überein. Überprüfen Sie die Aufgaben-ID und senden Sie die Anfrage erneut.
- Name
429 - Too Many Requests- Description
Sie haben Ihre Ratenbegrenzung überschritten. Warten Sie und versuchen Sie es dann erneut. Siehe Ratenbegrenzungen.
Einen Neuvernetzungs-Task abrufen
Gibt einen Neuvernetzungs-Task anhand seiner ID zurück.
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,
}
Parameter
- Name
- id
- Type
- path
- Description
Die Task-ID aus der Antwort der Erstellung.
Rückgabe
Eine Neuvernetzungsaufgabe löschen
Löscht eine Neuvernetzungsaufgabe dauerhaft, einschließlich ihrer Modelle und Daten. Das Löschen kann nicht rückgängig gemacht werden.
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 keeps 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."
}
Pfadparameter
- Name
- id
- Type
- path
- Description
Die ID der zu löschenden Aufgabe.
Aufgabenstatus
Das Löschen einer Aufgabe mit dem Status PENDING erstattet die beim Erstellen verbrauchten Credits.
Eine Aufgabe mit dem Status IN_PROGRESS kann nicht gelöscht werden. Die Anfrage liefert 409 Conflict,
und die Aufgabe läuft weiter. Meshy erstattet keine Credits für eine bereits gestartete Aufgabe,
daher würde das Löschen sowohl die Credits als auch das Ergebnis kosten. Warten Sie, bis sie
den Status SUCCEEDED, FAILED oder CANCELED erreicht, und löschen Sie sie dann.
Das Löschen einer Aufgabe in einem Endstatus (SUCCEEDED, FAILED oder CANCELED)
erstattet keine Credits.
Rückgabe
200 OK, wenn die Aufgabe gelöscht wurde, oder 409 Conflict, wenn die Aufgabe
den Status IN_PROGRESS hat.
Neuvernetzungs-Tasks auflisten
Gibt eine Liste Ihrer Neuvernetzungs-Tasks zurück.
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
}
]
Parameter
- Name
- page_num
- Type
- integer
- Standard 1
- Description
Die zurückzugebende Seitenzahl.
- Name
- page_size
- Type
- integer
- Standard 10
- Description
Die Anzahl der Tasks pro Seite, bis zu
100.
- Name
- sort_by
- Type
- string
- Description
Die Sortierreihenfolge.
Verfügbare Werte:
+created_at: älteste zuerst-created_at: neueste zuerst
Rückgabewerte
Eine paginierte Liste von Neuvernetzungs-Task-Objekten.
Einen Neuvernetzungs-Task streamen
Streamt die Updates eines Neuvernetzungs-Tasks als Server-Sent Events (SSE).
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.
// These examples are shortened. Each event holds the full task object.
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,
}
Parameter
- Name
- id
- Type
- path
- Description
Die Task-ID aus der Antwort der Erstellung.
Rückgabe
Ein Stream von Neuvernetzungs-Task-Objekten als Server-Sent Events.
Jedes Event enthält das vollständige Task-Objekt, in derselben Form, die der Get-Endpunkt zurückgibt. Solange der Task PENDING oder IN_PROGRESS ist, haben seine Ergebnisfelder noch keine Werte.
Das Remesh-Aufgabenobjekt
Ein Remesh-Aufgabenobjekt beschreibt eine Neuvernetzung eines 3D-Modells. Es enthält den Status, den Fortschritt und die Modelldateien, wenn die Aufgabe erfolgreich abgeschlossen wird.
Eigenschaften
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
}
- Name
- id
- Type
- string
- Description
Die Aufgaben-ID. Behandeln Sie sie als undurchsichtige Zeichenfolge und verlassen Sie sich nicht auf ihr Format.
- Name
- type
- Type
- string
- Description
Der Aufgabentyp, immer
remesh.
- Name
- model_urls
- Type
- object
- Description
Download-URLs für das neu vernetzte Modell, eine pro Dateiformat. Ein Format, das die Aufgabe nicht erzeugt hat, besitzt keinen Schlüssel, anstatt eine leere Zeichenfolge zu sein.
- Name
glb- Type
- string
- Description
Die GLB-Datei.
- Name
fbx- Type
- string
- Description
Die FBX-Datei.
- Name
obj- Type
- string
- Description
Die OBJ-Datei.
- Name
usdz- Type
- string
- Description
Die USDZ-Datei.
- Name
blend- Type
- string
- Description
Die Blender-Datei.
- Name
stl- Type
- string
- Description
Die STL-Datei.
- Name
3mf- Type
- string
- Description
Die 3MF-Datei. Nur vorhanden, wenn
target_formats3mfenthält.
- Name
- thumbnail_url
- Type
- string
- Description
Download-URL für ein Vorschaubild des neu vernetzten Modells.
- Name
- alpha_thumbnail_url
- Type
- string
- Description
Download-URL für eine Version von
thumbnail_urlmit transparentem Hintergrund (RGBA). Nur vorhanden, wenn Sie die Aufgabe mitalpha_thumbnail: trueerstellt haben und Meshy die transparente Vorschau gerendert hat.
- Name
- progress
- Type
- integer
- Description
Wie viel von der Aufgabe erledigt ist, als Prozentsatz. Der Wert ist
0, bis die Aufgabe beginnt, und100, wenn sie erfolgreich abgeschlossen wird.
- Name
- status
- Type
- string
- Description
Der Aufgabenstatus, einer von
PENDING,IN_PROGRESS,SUCCEEDEDoderFAILED.
- Name
- preceding_tasks
- Type
- integer
- Description
Die Anzahl der Aufgaben, die dieser in der Warteschlange vorausgehen. Der Wert ist nur aussagekräftig, solange die Aufgabe
PENDINGist.
- Name
- created_at
- Type
- timestamp
- Description
Zeitpunkt, zu dem die Aufgabe erstellt wurde, in Unix-Millisekunden.
- Name
- started_at
- Type
- timestamp
- Description
Zeitpunkt, zu dem die Aufgabe gestartet wurde, in Unix-Millisekunden. Der Wert ist
0, bis die Aufgabe beginnt.
- Name
- finished_at
- Type
- timestamp
- Description
Zeitpunkt, zu dem die Aufgabe beendet wurde, in Unix-Millisekunden. Der Wert ist
0, bis die Aufgabe beendet ist.
- Name
- task_error
- Type
- object
- Description
Die Fehlerdetails, wenn die Aufgabe fehlschlägt. Siehe Fehler.
- Name
- consumed_credits
- Type
- integer
- Description
Die Anzahl der von der Aufgabe verbrauchten Credits. Vorhanden, wenn der Status
PENDING,IN_PROGRESSoderSUCCEEDEDist. Bei einerFAILED-Aufgabe ist der Wert0, da Meshy die Credits erstattet, wenn eine Aufgabe fehlschlägt.