Thrixel API

Rig

Add a skeleton and skin weights to a character, creature or robot, with bone names your engine already knows.

Rig adds a skeleton and per-vertex skin weights to a finished model, so it can be posed and animated in Blender, Unity, Unreal or any engine that reads skinned glTF or FBX. It is built for anything with a body and limbs: characters, creatures and robots. It is automatic: no markers, no T-pose needed, about half a minute per model.

Rig takes any completed model as its parent: a Create, Sculptor, Detailer, Edit or Upload result.

Made for characters, creatures and robots

Rig runs on any model, but the skeleton is only meaningful on something with a body and limbs. On a building, a vehicle or a prop it usually comes out poor, or the run fails with rig_unsupported and the Cubes are refunded.

Rig a model

POST /api/v1/rig/submit

Requires API key. Flat price per run (5 Cubes today; the live figure is flat_op_cubes.rig on GET /api/v1/tiers). Refunded if the run fails. The Free plan allows 4 Rig runs a month; past that the submit returns 402 (see Rate Limits).

Request Body

NameTypeDescription
parent_submission_idstring (required)ID of the completed model to rig.
skeletonstringBone naming for a humanoid result: mixamo (default), unity or ue5. See below.
seedintegerSampling seed. Random when omitted; rigging the same model again with a new seed gives a different skeleton.
project_idstringAssign to a project.

Example Request

POST /rig/submit
curl -X POST https://api.thrixel.com/api/v1/rig/submit \
  -H "Authorization: Bearer sk-thrixel-<YOUR_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "parent_submission_id": "a1b2c3d4-..."
  }'

The response is the usual submission_id, status: "queued" and created_at. Follow it with progress like any other job, then download the result. The rigged model is a new version of the parent; it looks the same, it now has bones.

Bone names

When the model is a humanoid (a spine, a head, two arms, two legs), its joints are renamed to the standard skeleton you pick, so engines and animation libraries recognise them without a manual mapping:

skeletonExample namesUse it for
mixamomixamorig:Hips, mixamorig:LeftUpLeg, mixamorig:RightForeArmMixamo animations; most tools auto-map these names.
unityHips, LeftUpperLeg, RightLowerArm, UpperChestUnity's Humanoid avatar maps these automatically.
ue5pelvis, thigh_l, lowerarm_r, spine_03The UE5 Mannequin skeleton and its retargeter.

Creatures with tails or wings, four-legged animals and other non-humanoids keep generic names (bone_0, bone_1, ...). The submission's params report what was applied:

FieldDescription
bonesNumber of bones in the skeleton.
humanoidWhether a humanoid was found and named.
skeletonThe naming applied: mixamo, unity, ue5, or generic when no humanoid was found.

Fingers, when present, keep generic names.

Exporting to an engine

  • glTF / GLB carries the skeleton and weights as-is (up to 4 bone influences per vertex).
  • FBX export (download with format=fbx) writes no extra end bones, so the bone count in the engine matches bones. With ue5 naming, a root bone is added above pelvis at the model's origin, as the Mannequin expects for root motion.
  • You do not need to rig again for another engine: target=unity, target=ue5 or target=roblox on the FBX download renames a humanoid's bones for that engine (Roblox gets a full R15 rig). See FBX for an engine.

Errors

StatusWhen
402Your Cube balance does not cover the run.
404The parent submission does not exist.
400The parent is not completed yet.

A run that starts and then cannot produce a usable skeleton ends failed with error_code: "rig_unsupported", and the Cubes are refunded. Any other failure is error_code: "rig_failed", also refunded.

On this page