Auto-Rigmesh2rig
$0.30
Rig one GLB character mesh, up to 80,000 triangles.
Rigging a character by hand is slow specialist work. Skin Tokens does it automatically: send a GLB character mesh and get back a rigged GLB with a fitted skeleton and per-vertex skinning weights — $0.30 per task, no rigger in the loop.
Pay-as-you-go access through PiAPI.
$0.30
Rig one GLB character mesh, up to 80,000 triangles.
One endpoint, one job: turn a static mesh into an animatable one.
Submit a 3D character mesh and Skin Tokens fits a skeleton and solves per-vertex skinning weights for you. A mesh that arrived static leaves animatable, without a manual rigging pass.
Input is a valid glTF 2.0 binary (GLB) of up to 80,000 triangles, given as a publicly accessible URL or a base64 data URI. The response returns a rigged GLB at output.model_file containing the original mesh, the fitted skeleton, and the skinning weights.
Every rig task costs the same regardless of how complex the mesh is, so the cost of rigging an entire character library is predictable before you start.
Create a task, then poll the fetch endpoint until it reaches a terminal state. Nothing blocks your request thread while a mesh is being processed.
Supply config.webhook_config.endpoint and an optional secret to receive a callback when a task completes or fails. De-duplicate callbacks by task_id and fetch the task to confirm the final state.
Choose original for compatibility, mixamo for mixamorig:* names, or ue5 for UE5 mannequin names. The topology-based mapping tolerates variable joint counts instead of relying on fixed indexes.
Sign up and grab an API key from the PiAPI workspace — free credits are included on sign-up.
Add credits on the billing page when you are ready to scale beyond the free tier.
POST your first task following the API docs, then poll the task until the result is ready.
Prototype prompts and settings in the the playground above before wiring them into your product.
curl -X POST 'https://api.piapi.ai/api/v1/task' \
-H 'X-API-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"model": "Qubico/skin-tokens",
"task_type": "rig",
"input": {
"model": "YOUR_GLB_URL",
"seed": -1,
"bone_names": "original"
}
}'
# → { "task_id": "9d5a…", "status": "pending" }curl 'https://api.piapi.ai/api/v1/task/{task_id}' \
-H 'X-API-Key: YOUR_API_KEY'
# poll until status = completed
{
"data": {
"status": "completed",
"output": {
"model_file": "https://img.theapi.app/ephemeral/…"
}
}
}$ npm install -g piapi-cli $ piapi run skin-tokens-api \ model=YOUR_GLB_URL \ seed=-1 \ bone_names=original ✓ Task completed! https://img.theapi.app/ephemeral/…
Skin Tokens automatically rigs a 3D character mesh. You submit a GLB mesh and receive a rigged GLB containing the original mesh, a fitted skeleton, and per-vertex skinning weights.
A valid glTF 2.0 binary (GLB) of no more than 80,000 triangles, provided either as a publicly accessible URL or as a base64 data URI. A clean humanoid mesh in a neutral pose generally produces the most reliable rig.
$0.30 per rig task.
Yes. bone_names defaults to original for compatibility. Set it to mixamo for mixamorig:* names or ue5 for UE5 mannequin names. The mapping follows armature topology rather than fixed joint indexes.
No. Rigging is an asynchronous task: create the task, then poll the fetch endpoint until it reaches a terminal state. You can also register a webhook to be notified when the task completes or fails.
seed is optional and defaults to -1, which uses a random seed. Set it to a fixed value when you want a repeatable result for the same input mesh.
The task reaches a terminal failed state, which you observe either by polling the fetch endpoint or through your webhook. Fetch the task to confirm the final state before retrying.
More questions? See the API docs.