agentleFS
nirholasnirholas/three.ws/.agents/skills/rig-a-model/SKILL.md

rig-a-model

Skill264 starsChanged 43 days agoApache-2.0View on GitHub

Auto-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, for example "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.

  • Sends data out

We split this skill into the rules it gives an agent

3 rules. About 0 are common, 0 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈0

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If the three.ws MCP server is connected, call the rig tool directly:

    line 34
  2. Very specific:

    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 …

    line 45
  3. Very specific:

    Never report a dead or empty link as success.

    line 110

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Rig a 3D model

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

GoalUse
Add a skeleton to a GLB you already havethis skill
A new static object / prop from textgenerate-3d-model
A new rigged character from text/image in one callcreate-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 glbUrl from generate-3d-model, a CDN link, or a model you host yourself.
  • 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

  1. Give the user the pose-studio link: pose and preview in the browser.
  2. Give the riggedGlbUrl for download / import; it carries a humanoid skeleton and skin weights, so animation clips retarget onto it.
  3. The original mesh is never modified; sourceGlbUrl stays valid.

Errors

  • rate_limited / 429: the rigger is busy; honor retryAfter and 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 suggest create-3d-avatar to generate a riggable figure.
  • timeout: the job outlived the poll budget; the response includes a resumeUrl; 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.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.