Rig a 3D model
SkillAI & modelsAuto-rig a static 3D GLB model into an animation-ready one. Use when you or the user have an existing GLB and want to rig it, add a skeleton, add bones, make it posable, or make it animatable — "rig this model", "add a skeleton to my GLB", "make this character animation-ready". Takes a GLB URL, adds a humanoid skeleton plus skin weights, and returns the rigged GLB URL and a pose-studio link.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Rig a 3D model skill
What this skill tells your AI
The instructions your AI receives, as published by nirholas/three.ws in .agents/skills/rig-a-model/SKILL.md and read by ahel’s review.
Turn a static GLB into an animation-ready one. The three.ws auto-rig pipeline (Make-It-Animatable) adds a humanoid skeleton and per-vertex skin weights, so the model can be posed and play animation clips.
The result is a riggedGlbUrl plus a pose-studio link that opens the
rigged model in the browser, ready to pose.
When to use which tool
| Goal | Use |
|---|---|
| Add a skeleton to a GLB you already have | this skill |
| A new static object / prop from text | generate-3d-model |
| A new rigged character from text/image in one call | create-3d-avatar |
Rigging assumes a roughly humanoid figure (head, torso, two arms, two legs, standing). Props, furniture, and vehicles won't rig meaningfully.
Fastest path — the MCP tool
If the three.ws MCP server is connected, call the rig tool directly:
- Tool:
rig_mesh - Input:
{ "glb_url": "<https URL to the static GLB>" }- Any reachable GLB URL works — a
glbUrlfromgenerate-3d-model, a CDN link, or a model you host yourself.
- Any reachable GLB URL works — a
- Returns:
riggedGlbUrl,sourceGlbUrl,poseStudioUrl,jobId,creationId,durationMs.
Portable path — the hosted HTTP endpoint
No MCP client needed. rig_mesh is exposed free on the hosted studio JSON-RPC
endpoint at https://three.ws/api/mcp-studio (no key, no account):
curl -s -X POST https://three.ws/api/mcp-studio \
-H 'content-type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "rig_mesh",
"arguments": { "glb_url": "https://three.ws/avatars/cesium-man.glb" }
}
}'
structuredContent returns the rigged model:
{
"ok": true,
"riggedGlbUrl": "https://three.ws/cdn/creations/def456/rigged.glb",
"sourceGlbUrl": "https://three.ws/avatars/cesium-man.glb",
"poseStudioUrl": "https://three.ws/pose?src=https%3A%2F%2Fthree.ws%2F...",
"jobId": "r9k2m7x4",
"durationMs": 48000
}
Raw REST pipeline
The MCP tool is a thin client over the public rig endpoint. Submit, then poll:
# 1. Start the rig job
curl -s -X POST "https://three.ws/api/forge?action=rig" \
-H 'content-type: application/json' \
-d '{ "glb_url": "https://three.ws/avatars/cesium-man.glb" }'
# → { "job_id": "r9k2m7x4", ... }
# 2. Poll until done (every ~3s, budget ~180s)
curl -s "https://three.ws/api/forge?job=r9k2m7x4" -H 'accept: application/json'
# → { "status": "done", "glb_url": "https://.../rigged.glb" } (or "failed" / still "running")
Build the pose-studio link yourself from any rigged GLB URL:
https://three.ws/pose?src=<URL-encoded riggedGlbUrl>.
What to do with the result
- Give the user the pose-studio link — pose and preview in the browser.
- Give the
riggedGlbUrlfor download / import; it carries a humanoid skeleton and skin weights, so animation clips retarget onto it. - The original mesh is never modified —
sourceGlbUrlstays valid.
Errors
rate_limited/429— the rigger is busy; honorretryAfterand retry.not_configured/503— auto-rigging momentarily unavailable; retry shortly.rig_failed— the model couldn't be rigged (usually not humanoid enough). Tell the user why and suggestcreate-3d-avatarto generate a riggable figure.timeout— the job outlived the poll budget; the response includes aresumeUrl— keep polling it rather than restarting the job.
Never report a dead or empty link as success — only return a riggedGlbUrl the
job actually produced.
Signals
- GitHub stars
- 114
- Forks
- 29
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
rig-a-model- Source
- github.com/nirholas/three.ws