Remesh API

De Remesh API stelt je in staat om bestaande 3D-modellen, gegenereerd door andere Meshy API's (zoals Afbeelding naar 3D of Tekst naar 3D), te remeshen en te exporteren naar verschillende formaten. Dit gedeelte biedt details over hoe je de Remesh API kunt gebruiken.


POST/openapi/v1/remesh

Maak een Remesh Taak

Deze endpoint creëert een nieuwe remesh taak.

Parameters

  • Name
    input_task_id
    Type
    string
    Verplicht
    Description

    De ID van de voltooide Afbeelding naar 3D of Tekst naar 3D taak die je wilt remeshen. Deze taak moet een van de volgende taken zijn: Tekst naar 3D Voorbeeld, Tekst naar 3D Verfijnen, Afbeelding naar 3D of Hertextureren. Bovendien moet het een status van SUCCEEDED hebben.

  • Name
    model_url
    Type
    string
    Verplicht
    Description

    Geef een 3D-model voor Meshy om te remeshen via een openbaar toegankelijke URL of data URI. Ondersteunde formaten: .glb, .gltf, .obj, .fbx, .stl.

    Voor Data URI's, gebruik de MIME type: application/octet-stream.

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

    Een lijst van doelformaten voor het geremeshte model. Als dit wordt weggelaten, wordt alleen GLB gegenereerd.

    Beschikbare waarden: glb, fbx, obj, usdz, blend, stl, 3mf.

  • Name
    topology
    Type
    string
    standaard triangle
    Description

    Specificeer de topology van het gegenereerde model.

    Beschikbare waarden:

    • quad: Genereer een quad-dominante mesh.
    • triangle: Genereer een gedecimeerde triangle mesh.
  • Name
    target_polycount
    Type
    integer
    standaard 30,000
    Description

    Specificeer het doel polygonaantal in het gegenereerde model. Het werkelijke aantal polygonen kan afwijken van het doel afhankelijk van de complexiteit van de geometrie.

    Het geldige waardebereik varieert afhankelijk van het gebruikersniveau:

    • 100 tot 300,000 (inclusief)
  • Name
    decimation_mode
    Type
    integer
    Description

    Schakel adaptieve decimatie in door een polygonaantalniveau in te stellen. Wanneer ingesteld, wordt target_polycount genegeerd.

    Beschikbare waarden:

    • 1: Adaptief — ultra polygonaantal.
    • 2: Adaptief — hoog polygonaantal.
    • 3: Adaptief — gemiddeld polygonaantal.
    • 4: Adaptief — laag polygonaantal.
  • Name
    resize_height
    Type
    number
    verouderd
    standaard 0
    Description

    Wijzig het formaat van het model naar een bepaalde hoogte gemeten in meters. We raden aan om de speciale Resize API te gebruiken.

  • Name
    resize_longest_side
    Type
    number
    verouderd
    standaard 0
    Description

    Wijzig het formaat van het model zodat de langste dimensie van de omhullende doos gelijk is aan de opgegeven waarde in meters. We raden aan om de speciale Resize API te gebruiken.

  • Name
    auto_size
    Type
    boolean
    verouderd
    standaard false
    Description

    Wanneer ingesteld op true, gebruikt de service AI-visie om automatisch de werkelijke hoogte van het object te schatten en het model dienovereenkomstig aan te passen. We raden aan om de speciale Resize API te gebruiken.

Alleen van toepassing wanneer auto_size = true
  • Name
    origin_at
    Type
    string
    verouderd
    standaard bottom
    Description

    Positie van de oorsprong. We raden aan om de speciale Resize API te gebruiken.

    Beschikbare waarden: bottom, center.

  • Name
    convert_format_only
    Type
    boolean
    verouderd
    Description

    Als true, zal de service alleen het formaat van het invoermodelbestand wijzigen, waarbij andere invoer zoals topology, resize_height, en target_polycount worden genegeerd. We raden aan om de speciale Convert API te gebruiken.

  • Name
    alpha_thumbnail
    Type
    boolean
    standaard false
    Description

    Wanneer ingesteld op true, rendert de taak daarnaast een versie van de preview met een transparante achtergrond (RGBA) en retourneert deze als alpha_thumbnail_url in de GET-respons. Het bestaande thumbnail_url veld blijft ongewijzigd.

Retourneert

De result eigenschap van de respons bevat de id van de nieuw aangemaakte remesh taak.

Foutmodi

  • Name
    400 - Bad Request
    Description

    Het verzoek was onacceptabel. Veelvoorkomende oorzaken:

    • Ontbrekende parameter: Ofwel model_url of input_task_id moet worden verstrekt.
    • Ongeldige invoertaak: De input_task_id moet verwijzen naar een succesvolle taak van een ondersteund model.
    • Ongeldig modelformaat: De model_url wijst naar een bestand met een niet-ondersteunde extensie.
    • Onbereikbare URL: De model_url kon niet worden gedownload.
    • Ongeldige topology: De topology parameter is ongeldig.
    • Wederzijds exclusieve parameters: auto_size en resize_height kunnen niet beide worden ingesteld.
  • Name
    401 - Unauthorized
    Description

    Authenticatie mislukt. Controleer uw API-sleutel.

  • Name
    402 - Payment Required
    Description

    Onvoldoende credits om deze taak uit te voeren.

  • Name
    429 - Too Many Requests
    Description

    U heeft uw rate limit overschreden.

Request

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

Response

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

GET/openapi/v1/remesh/:id

Haal een Remesh Taak op

Deze endpoint haalt een remesh taak op via zijn ID.

Parameters

  • Name
    id
    Type
    path
    Description

    De ID van de remesh taak die moet worden opgehaald.

Retourneert

Het Remesh Taak object.

Request

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

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

DELETE/openapi/v1/remesh/:id

Verwijder een Remesh Taak

Deze endpoint verwijdert permanent een remesh taak, inclusief alle bijbehorende modellen en gegevens. Deze actie is onomkeerbaar.

Padparameters

  • Name
    id
    Type
    path
    Description

    De ID van de remesh taak die moet worden verwijderd.

Retourneert

Retourneert 200 OK bij succes.

Request

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

Response

// Returns 200 Ok on success.

GET/openapi/v1/remesh

Lijst Remesh Taken

Deze endpoint stelt je in staat om een lijst van Remesh taken op te halen.

Parameters

  • Name
    page_num
    Type
    integer
    standaard 1
    Description

    Paginanummer voor paginering.

  • Name
    page_size
    Type
    integer
    standaard 10
    Description

    Limiet voor paginagrootte. Maximum toegestaan is 50 items.

  • Name
    sort_by
    Type
    string
    Description

    Veld om op te sorteren.

    Beschikbare waarden:

    • +created_at: Sorteren op creatietijd in oplopende volgorde.
    • -created_at: Sorteren op creatietijd in aflopende volgorde.

Retourneert

Retourneert een gepagineerde lijst van De Remesh Taak Objecten.

Request

GET
/openapi/v1/remesh
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
  }
]

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

Stream een Remesh Taak

Deze endpoint streamt real-time updates voor een Remesh taak met behulp van Server-Sent Events (SSE).

Parameters

  • Name
    id
    Type
    path
    Description

    Unieke identificatie voor de Remesh taak om te streamen.

Retourneert

Retourneert een stream van De Remesh Taak Objecten als Server-Sent Events.

Voor PENDING of IN_PROGRESS taken, zal de responsstream alleen de noodzakelijke progress en status velden bevatten.

Request

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

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

Het Remesh Taakobject

Het Remesh Taakobject vertegenwoordigt een werkunit die Meshy gebruikt om een bestaand 3D-model te remeshen en te exporteren naar verschillende formaten. Het object heeft de volgende eigenschappen:

Eigenschappen

  • Name
    id
    Type
    string
    Description

    Unieke identificatie voor de taak. Hoewel we een k-sortable UUID gebruiken voor taak-id's als implementatiedetail, moet je geen aannames maken over het formaat van de id.

  • Name
    type
    Type
    string
    Description

    Type van de Remesh taak. De waarde is remesh.

  • Name
    model_urls
    Type
    object
    Description

    Downloadbare URL naar het getextureerde 3D-modelbestand gegenereerd door Meshy. De eigenschap voor een formaat wordt weggelaten als het formaat niet is gegenereerd in plaats van een lege string terug te geven.

    • Name
      glb
      Type
      string
      Description

      Downloadbare URL naar het GLB-bestand.

    • Name
      fbx
      Type
      string
      Description

      Downloadbare URL naar het FBX-bestand.

    • Name
      obj
      Type
      string
      Description

      Downloadbare URL naar het OBJ-bestand.

    • Name
      usdz
      Type
      string
      Description

      Downloadbare URL naar het USDZ-bestand.

    • Name
      blend
      Type
      string
      Description

      Downloadbare URL naar het Blender-bestand.

    • Name
      stl
      Type
      string
      Description

      Downloadbare URL naar het STL-bestand.

    • Name
      3mf
      Type
      string
      Description

      Downloadbare URL naar het 3MF-bestand. Alleen aanwezig wanneer 3mf is aangevraagd via target_formats.

  • Name
    thumbnail_url
    Type
    string
    Description

    Downloadbare URL naar een voorbeeldafbeelding gerenderd van het geremeshede model.

  • Name
    alpha_thumbnail_url
    Type
    string
    Description

    Downloadbare URL naar een versie van thumbnail_url met transparante achtergrond (RGBA). Alleen aanwezig wanneer de taak is aangemaakt met alpha_thumbnail: true en de transparante preview succesvol is gerenderd; anders wordt dit veld weggelaten.

  • Name
    progress
    Type
    integer
    Description

    Voortgang van de taak. Als de taak nog niet is gestart, zal deze eigenschap 0 zijn. Zodra de taak is geslaagd, wordt dit 100.

  • Name
    status
    Type
    string
    Description

    Status van de taak. Mogelijke waarden zijn een van PENDING, IN_PROGRESS, SUCCEEDED, FAILED.

  • Name
    preceding_tasks
    Type
    integer
    Description

    Het aantal voorgaande taken.

  • Name
    created_at
    Type
    timestamp
    Description

    Tijdstempel van wanneer de taak is aangemaakt, in milliseconden.

  • Name
    started_at
    Type
    timestamp
    Description

    Tijdstempel van wanneer de taak is gestart, in milliseconden. Als de taak nog niet is gestart, zal deze eigenschap 0 zijn.

  • Name
    finished_at
    Type
    timestamp
    Description

    Tijdstempel van wanneer de taak is voltooid, in milliseconden. Als de taak nog niet is voltooid, zal deze eigenschap 0 zijn.

  • Name
    task_error
    Type
    object
    Description

    Foutdetails voor mislukte taken. Zie Fouten voor de volledige task_error objectreferentie.

  • Name
    consumed_credits
    Type
    integer
    Description

    Het aantal credits dat door deze taak is verbruikt. Aanwezig wanneer de taakstatus PENDING, IN_PROGRESS, of SUCCEEDED is. Geeft 0 terug voor FAILED taken (credits worden terugbetaald bij mislukking).

Voorbeeld Remesh Taakobject

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