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.
Skeleton joints use stable bone_0 through bone_N identifiers with no semantic labels, which keeps naming and humanoid retargeting under your own pipeline's control rather than guessing at conventions.
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
}
}'
# → { "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 ✓ 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.
No. Skeleton joints use stable bone_0 through bone_N identifiers without semantic labels. If your pipeline needs named humanoid bones, map them in your own retargeting step.
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.