Expand description
Bone Rigger — click-to-place bone anchors on the SDF surface and define joint hierarchies for skeletal animation.
§Overview
The rigger owns a BoneSkeleton — a flat list of BoneDesc values wired
into a tree through parent–child relationships. Each bone has:
- a
headandtailin object space (placed by clicking on the SDF surface) - a roll angle around the bone’s Y axis
- optional weight envelope (capsule) parameters that control how much each surface particle is influenced by this bone
- FK and IK flags
§Interaction flow
- User enters
PlacingHeadmode; clicks on the SDF surface → setshead. - User clicks again → sets
tail, finalises bone and entersIdle. - With a bone selected, user can parent it to another bone.
BoneSkeleton::bind_weightscomputes per-particle skinning weights from the envelope capsules using a dual-quaternion weighting scheme.
§IK chains
IkChain represents a chain of bones from a root to an effector tip.
IkChain::solve_ccd runs the Cyclic Coordinate Descent algorithm for n
iterations, pulling the tip toward the target.
Structs§
- Bone
Constraint - Rotation limits for a joint.
- Bone
Desc - Descriptor for a single bone in the skeleton.
- BoneId
- Bone
Rigger - Full bone rigging tool state.
- Bone
Skeleton - The full skeleton — flat map of bones plus hierarchy helpers.
- IkChain
- A chain of bone IDs from root to tip used for IK solving.
- Skin
Weight - Up to 4 bone influences per surface point.
Enums§
- Bone
Role - Semantic role of a bone, used by the auto-rigger.
- Rigger
Mode