lowpoly wordt op 30 okt 2026 uitgefaseerd. Stap vóór deze datums over op een ander model om fouten bij verzoeken te voorkomen. Alle afschaffingen bekijken

Rigging API

Voeg een skelet (armature) toe aan een humanoïde 3D-model en bind de mesh eraan, zodat het personage klaar is om te animeren. Zie de Animatie API om animaties toe te passen op een gerigd personage.

Rigging werkt alleen goed met standaard humanoïde (tweevoetige) personages die een duidelijk gedefinieerde ledematen- en lichaamsstructuur hebben.


POST/openapi/v1/rigging

Een Rigging-taak maken

Maakt een Rigging-taak voor een 3D-model. Wanneer de taak slaagt, retourneert deze een gerigd personage in standaardformaten en, optioneel, basale loop- en renanimaties.

De taak wordt op de achtergrond uitgevoerd. Voor hoe lang een taak gewoonlijk duurt, zie Verwerkingstijden.

Rigging is niet geschikt voor deze modellen:

  • Niet-geteksturede meshes
  • Niet-humanoïde assets
  • Humanoïde assets met een onduidelijke ledematen- en lichaamsstructuur

Request

POST
/openapi/v1/rigging
# Rig a model from a URL
curl https://api.meshy.ai/openapi/v1/rigging \
  -X POST \
  -H "Authorization: Bearer ${YOUR_API_KEY}" \
  -H 'Content-Type: application/json' \
  -d '{
    "model_url": "YOUR_MODEL_URL_OR_DATA_URI",
    "height_meters": 1.8
  }'

Response

{
  "result": "018b314a-a1b5-716d-c222-2f1776f7f579"
}

Parameters

  • Name
    input_task_id
    Type
    string
    Verplicht
    Description

    Vereist, tenzij u model_url verstuurt. De ID van de taak waarvan u het model wilt riggen. Meshy ondersteunt geteksturede humanoïde modellen.

    Het model mag maximaal 380.000 driehoeken bevatten (een vierhoek telt als 2), en een model met meer driehoeken geeft 400 terug. Om onder de limiet te blijven, voert u eerst de Remesh API erop uit met een target_polycount van 300000 of minder, of 150000 of minder met topology: quad.

  • Name
    model_url
    Type
    string
    Verplicht
    Description

    Vereist, tenzij u input_task_id verstuurt. Het te riggen model, als een openbare URL of een data-URI. Als u beide verstuurt, gebruikt Meshy input_task_id.

    Het model moet een GLB-bestand (.glb) zijn van maximaal 400 MB vanaf een http- of https-URL, of 100 MB als data-URI. Rigging ondersteunt geteksturede humanoïde modellen.

    Het model mag maximaal 380.000 driehoeken bevatten (een vierhoek telt als 2), en een model met meer driehoeken geeft 400 terug. Om onder de limiet te blijven, voert u eerst de Remesh API erop uit met een target_polycount van 300000 of minder, of 150000 of minder met topology: quad.

    Het gezicht van het personage moet naar de +Z-as wijzen, de standaard voorwaartse richting van glTF. Poseschatting mislukt voor een model dat naar een andere as wijst.

    Een bestand groter dan 100 MB moet ook aan deze regels voldoen:

    • Het mag maximaal 10.000.000 vlakken bevatten. Een bestand met meer vlakken geeft 400 terug. Meshy telt vlakken als driehoeken, en een mesh die meer dan eens wordt getekend telt per kopie.
    • Het mag geen Draco-compressie gebruiken.
  • Name
    height_meters
    Type
    number
    standaard 1.7
    Description

    De geschatte lengte van het personage, in meters. Meshy gebruikt dit om het model nauwkeuriger te schalen en te riggen. Een negatieve waarde geeft 400 terug.

  • Name
    texture_image_url
    Type
    string
    ⚠ verouderd
    Description

    Laat dit weg wanneer het model zijn eigen textures heeft. Zonder dit gebruikt Meshy de textures die in het model_url-bestand zijn ingesloten, of de textures van de invoertaak. Als u dit verstuurt, wordt deze afbeelding de enige textuur van het gerigde model, en verliest het model zijn PBR-maps.

    De UV-uitgevouwen basiskleurtextuur van het model, als een openbare URL of een data-URI. De afbeelding moet een PNG-bestand van maximaal 20 MB zijn. Een ander afbeeldingsformaat geeft 400 terug.

Resultaten

Het veld result van de response bevat de ID van de nieuwe Rigging-taak.

Faalmodi

  • Name
    400 - Bad Request
    Description

    Het verzoek kan niet worden uitgevoerd. Het foutbericht geeft aan welk probleem is gevonden. Bijvoorbeeld:

    • Ontbrekende parameter: Noch model_url noch input_task_id is verstuurd.
    • Ongeldig modelformaat: Het model_url-bestand heeft een niet-ondersteunde extensie. Alleen .glb wordt ondersteund.
    • Onbereikbare URL: Meshy kan het model_url-bestand niet downloaden.
    • Modelbestand te groot: Het model_url-bestand is groter dan 400 MB vanaf een http- of https-URL, of groter dan 100 MB als data-URI.
    • Te veel vlakken: Het model_url-bestand is groter dan 100 MB en heeft meer dan 10.000.000 vlakken. Verminder het aantal vlakken en verstuur het bestand opnieuw.
    • Onleesbaar modelbestand: Het model_url-bestand is groter dan 100 MB, en Meshy kan de header niet lezen. Het is bijvoorbeeld een Draco-gecomprimeerde GLB.
    • Modelheader te complex: Het model_url-bestand is groter dan 100 MB, en de header bevat te veel meshes, nodes of records om te controleren. Verminder het aantal objecten in het bestand en verstuur het opnieuw.
    • Afbeelding te groot: De afbeelding bij texture_image_url is groter dan 20 MB.
    • Ongeldig textuurformaat: De afbeelding bij texture_image_url is geen PNG-bestand.
    • Ongeldige hoogte: height_meters is negatief.
    • Ongeldige invoertaak: input_task_id verwijst niet naar een geldige API-taak.
    • Invoertaak nog niet gereed: De taak bij input_task_id heeft SUCCEEDED nog niet bereikt. Wacht tot deze slaagt en probeer het opnieuw.
    • Maximum aantal vlakken overschreden: Het invoermodel heeft meer dan 380.000 driehoeken (een vierhoek telt als 2). Voer de Remesh API erop uit met een target_polycount van 300000 of minder, of 150000 of minder met topology: quad, voordat u het model rigt.

    Corrigeer het verzoek en verstuur het opnieuw. Zie Fouten.

  • Name
    401 - Unauthorized
    Description

    De API-sleutel ontbreekt of is ongeldig. Controleer de Authorization-header.

  • Name
    402 - Payment Required
    Description

    Bijvoorbeeld:

    • Onvoldoende credits: Het account heeft niet genoeg credits voor deze taak, of het account heeft een creditlimiet bereikt. Controleer uw creditsaldo en probeer het opnieuw.
    • Gratis plan: Het maken van een taak vereist een betaald plan. Upgrade uw plan in uw abonnementsinstellingen en probeer het opnieuw.
  • Name
    403 - Forbidden
    Description

    input_task_id is een bas-reliëfmodel, dat deze endpoint niet kan riggen. Het bericht is This model type does not support this operation. Verstuur een ander model.

  • Name
    404 - Not Found
    Description

    Meshy kan de bestanden van de taak bij input_task_id niet vinden. Een van het volgende is van toepassing:

    • Meshy heeft de bestanden van de taak verwijderd na de expires_at. Maak de taak opnieuw aan en verstuur de ID van die taak.
    • De taak heeft geen van de bestanden die rigging nodig heeft, zoals een voorvertoningsafbeelding, bijvoorbeeld een Convert-taak. Rig de taak waar deze vandaan komt, of verstuur het model als model_url.
  • Name
    422 - Unprocessable Entity
    Description

    Poseschatting is mislukt. Het model is mogelijk geen geldig humanoïde personage. Verstuur een model van een humanoïde personage. Controleer bij model_url ook of het personage naar de +Z-as wijst.

  • Name
    429 - Too Many Requests
    Description

    U heeft uw rate limit overschreden. Wacht en probeer het opnieuw. Zie Rate limits.


GET/openapi/v1/rigging/:id

Een Rigging-taak ophalen

Retourneert een Rigging-taak op basis van de ID.

Request

GET
/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579
curl https://api.meshy.ai/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579 \
  -H "Authorization: Bearer ${YOUR_API_KEY}"

Response

{
  "id": "018b314a-a1b5-716d-c222-2f1776f7f579",
  "type": "rig",
  "status": "SUCCEEDED",
  "created_at": 1747032400453,
  "progress": 100,
  "started_at": 1747032401314,
  "finished_at": 1747032418417,
  "expires_at": 1747291618417,
  "task_error": null,
  "consumed_credits": 5,
  "result": {
    "rigged_character_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Character_output.fbx?Expires=...",
    "rigged_character_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Character_output.glb?Expires=...",
    "basic_animations": {
      "walking_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin.glb?Expires=...",
      "walking_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin.fbx?Expires=...",
      "walking_armature_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin_armature.glb?Expires=...",
      "running_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin.glb?Expires=...",
      "running_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin.fbx?Expires=...",
      "running_armature_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin_armature.glb?Expires=..."
    }
  }
}

Parameters

  • Name
    id
    Type
    path
    Description

    De taak-ID uit het aanmaakverzoek-antwoord.

Retourneert

Het Rigging-taakobject.


DELETE/openapi/v1/rigging/:id

Een Rigging-taak verwijderen

Verwijdert permanent een Rigging-taak, inclusief de bijbehorende modellen en gegevens. Je kunt een verwijdering niet ongedaan maken.

Request

DELETE
/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579
curl --request DELETE \
  --url https://api.meshy.ai/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579 \
  -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."
}

Padparameters

  • Name
    id
    Type
    path
    Description

    De ID van de te verwijderen taak.

Taakstatus

Het verwijderen van een PENDING-taak betaalt de credits terug die zijn gebruikt bij het aanmaken ervan.

Een IN_PROGRESS-taak kan niet worden verwijderd. Het verzoek geeft 409 Conflict terug, en de taak blijft doorlopen. Meshy betaalt geen credits terug voor een taak die al is gestart, dus het verwijderen ervan zou je zowel de credits als het resultaat kosten. Wacht tot de taak SUCCEEDED, FAILED of CANCELED bereikt, en verwijder deze dan pas.

Het verwijderen van een taak met een definitieve status (SUCCEEDED, FAILED of CANCELED) betaalt de credits niet terug.

Retourwaarden

200 OK wanneer de taak is verwijderd, of 409 Conflict wanneer de taak IN_PROGRESS is.


GET/openapi/v1/rigging

Lijst van Rigging-taken

Geeft een gepagineerde lijst van uw Rigging-taken terug, nieuwste eerst. Gebruik page_num en page_size om door de lijst te bladeren.

Taken die u met de API aanmaakt, blijven in de API en verschijnen niet bij My Assets in de web-app. Gebruik dit endpoint om een taak te vinden waarvan u de ID niet meer heeft.

Request

GET
/openapi/v1/rigging
curl "https://api.meshy.ai/openapi/v1/rigging?page_num=1&page_size=20" \
-H "Authorization: Bearer ${YOUR_API_KEY}"

GET/openapi/v1/rigging/:id/stream

Stream een Rigging-taak

Streamt de updates van een Rigging-taak als Server-Sent Events (SSE).

Request

GET
/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579/stream
curl -N https://api.meshy.ai/openapi/v1/rigging/018b314a-a1b5-716d-c222-2f1776f7f579/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": "018b314a-a1b5-716d-c222-2f1776f7f579",
  "progress": 0,
  "status": "PENDING"
}

event: message
data: {
  "id": "018b314a-a1b5-716d-c222-2f1776f7f579",
  "progress": 50,
  "status": "IN_PROGRESS"
}

event: message
data: { // Example of a SUCCEEDED task event, with the same fields as the Rigging task object
  "id": "018b314a-a1b5-716d-c222-2f1776f7f579",
  "type": "rig",
  "status": "SUCCEEDED",
  "created_at": 1747032400453,
  "progress": 100,
  "started_at": 1747032401314,
  "finished_at": 1747032418417,
  "expires_at": 1747291618417,
  "task_error": null,
  "consumed_credits": 5,
  "result": {
    "rigged_character_fbx_url": "https://assets.meshy.ai/.../Character_output.fbx?...",
    "rigged_character_glb_url": "https://assets.meshy.ai/.../Character_output.glb?...",
    "basic_animations": {
      "walking_glb_url": "https://assets.meshy.ai/.../Animation_Walking_withSkin.glb?...",
      "walking_fbx_url": "https://assets.meshy.ai/.../Animation_Walking_withSkin.fbx?...",
      "walking_armature_glb_url": "https://assets.meshy.ai/.../Animation_Walking_withSkin_armature.glb?...",
      "running_glb_url": "https://assets.meshy.ai/.../Animation_Running_withSkin.glb?...",
      "running_fbx_url": "https://assets.meshy.ai/.../Animation_Running_withSkin.fbx?...",
      "running_armature_glb_url": "https://assets.meshy.ai/.../Animation_Running_withSkin_armature.glb?..."
    }
  }
}

Parameters

  • Name
    id
    Type
    path
    Description

    De taak-ID uit de aanmaakrespons.

Retourwaarden

Een stream van Rigging-taakobjecten als Server-Sent Events.

Elk event bevat het volledige taakobject, in dezelfde vorm als het Get-endpoint teruggeeft. Zolang de taak PENDING of IN_PROGRESS is, hebben de resultaatvelden nog geen waarden.


Het Rigging-taakobject

Een Rigging-taakobject beschrijft de rigging van één personage. Het bevat de status, de progress en de uitvoerbestanden wanneer de taak slaagt.

Eigenschappen

Example Rigging Task Object

{
  "id": "018b314a-a1b5-716d-c222-2f1776f7f579",
  "type": "rig",
  "status": "SUCCEEDED",
  "created_at": 1747032400453,
  "progress": 100,
  "started_at": 1747032401314,
  "finished_at": 1747032418417,
  "expires_at": 1747291618417,
  "task_error": null,
  "consumed_credits": 5,
  "result": {
    "rigged_character_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Character_output.fbx?Expires=...",
    "rigged_character_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Character_output.glb?Expires=...",
    "basic_animations": {
      "walking_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin.glb?Expires=...",
      "walking_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin.fbx?Expires=...",
      "walking_armature_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Walking_withSkin_armature.glb?Expires=...",
      "running_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin.glb?Expires=...",
      "running_fbx_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin.fbx?Expires=...",
      "running_armature_glb_url": "https://assets.meshy.ai/0630d47c-84b8-4d37-bc02-69e45d9272c1/tasks/018b314a-a1b5-716d-c222-2f1776f7f579/output/Animation_Running_withSkin_armature.glb?Expires=..."
    }
  }
}
  • Name
    id
    Type
    string
    Description

    De taak-ID. Behandel dit als een ondoorzichtige tekenreeks en vertrouw niet op het formaat ervan.

  • Name
    type
    Type
    string
    Description

    Het taaktype, altijd rig.

  • Name
    status
    Type
    string
    Description

    De taakstatus, een van PENDING, IN_PROGRESS, SUCCEEDED, FAILED of CANCELED.

  • Name
    progress
    Type
    integer
    Description

    Hoeveel van de taak is voltooid, als percentage. Dit is 0 totdat de taak begint en 100 wanneer deze slaagt.

  • Name
    created_at
    Type
    timestamp
    Description

    Tijdstip waarop de taak is aangemaakt, in Unix-milliseconden.

  • Name
    started_at
    Type
    timestamp
    Description

    Tijdstip waarop de taak is gestart, in Unix-milliseconden. Dit is 0 totdat de taak start.

  • Name
    finished_at
    Type
    timestamp
    Description

    Tijdstip waarop de taak is beëindigd, in Unix-milliseconden. Dit is 0 totdat de taak eindigt.

  • Name
    expires_at
    Type
    timestamp
    Description

    Tijdstip waarop de resultaatbestanden van de taak verlopen, in Unix-milliseconden. Na dit tijdstip kan Meshy de bestanden verwijderen.

  • Name
    task_error
    Type
    object
    Description

    De foutdetails wanneer de taak mislukt. Dit is null tenzij de status FAILED is. Zie Fouten.

  • Name
    consumed_credits
    Type
    integer
    Description

    Het aantal credits dat de taak heeft gebruikt. Aanwezig wanneer de status PENDING, IN_PROGRESS of SUCCEEDED is. Dit is 0 voor een FAILED-taak, omdat Meshy de credits terugbetaalt wanneer een taak mislukt.

  • Name
    result
    Type
    object
    Description

    De URL's van de uitvoerbestanden. Totdat de taak slaagt, is elke URL een lege tekenreeks en is basic_animations null.

    • Name
      rigged_character_fbx_url
      Type
      string
      Description

      Downloadlink voor het gerigde personage als FBX-bestand.

    • Name
      rigged_character_glb_url
      Type
      string
      Description

      Downloadlink voor het gerigde personage als GLB-bestand.

    • Name
      basic_animations
      Type
      object (optional)
      Description

      Downloadlinks voor de standaard loop- en renanimaties.

      • Name
        walking_glb_url
        Type
        string
        Description
        De loopanimatie met skin, als GLB-bestand.
      • Name
        walking_fbx_url
        Type
        string
        Description
        De loopanimatie met skin, als FBX-bestand.
      • Name
        walking_armature_glb_url
        Type
        string
        Description
        De armature van de loopanimatie, als GLB-bestand.
      • Name
        running_glb_url
        Type
        string
        Description
        De renanimatie met skin, als GLB-bestand.
      • Name
        running_fbx_url
        Type
        string
        Description
        De renanimatie met skin, als FBX-bestand.
      • Name
        running_armature_glb_url
        Type
        string
        Description
        De armature van de renanimatie, als GLB-bestand.
  • Name
    preceding_tasks
    Type
    integer
    Description

    Het aantal taken dat vóór deze taak in de wachtrij staat. De waarde is alleen zinvol zolang de taak PENDING is. Het veld wordt weggelaten wanneer de waarde 0 is.