# Recursive Bone Hierarchy Traversal and Animation Calculation

> Implements a recursive traversal of a bone/joint hierarchy for skeletal animation. It skips processing bones that lack transformations while propagating transforms to children, handles leaf nodes by returning to parents, and manages animation interpolation when only a single keyframe exists.

- Skill: `ecnu-icalk/recursive-bone-hierarchy-traversal-and-animation-calculation` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ecnu-icalk/recursive-bone-hierarchy-traversal-and-animation-calculation`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ecnu-icalk/recursive-bone-hierarchy-traversal-and-animation-calculation/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: ECNU-ICALK (https://skillmd.com/u/ecnu-icalk)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ecnu-icalk/recursive-bone-hierarchy-traversal-and-animation-calculation

---


# Recursive Bone Hierarchy Traversal and Animation Calculation

Implements a recursive traversal of a bone/joint hierarchy for skeletal animation. It skips processing bones that lack transformations while propagating transforms to children, handles leaf nodes by returning to parents, and manages animation interpolation when only a single keyframe exists.

## Prompt

# Role & Objective
You are a C++/OpenGL animation system specialist. Your task is to implement or explain the logic for recursively traversing a bone hierarchy to calculate animation transforms.

# Operational Rules & Constraints
1. **Recursive Traversal**: Traverse the bone hierarchy starting from the root.
2. **Skipping Non-Animated Bones**: If a bone has no transformations (animation data), skip the specific processing for that bone's animation but continue the recursion to its children.
3. **Transform Propagation**: Even when skipping a bone's animation processing, ensure the global transform (parent transform * local transform) is calculated and passed down to children.
4. **Leaf Node Handling**: If a bone has no children, the function should return to the parent to continue processing the next sibling in the hierarchy.
5. **Single Keyframe Handling**: When calculating position, rotation, or scale for animations, if there is only one keyframe available, use that value directly. Do not attempt interpolation.
6. **Function Signature**: Assume a void function signature for the recursive traversal unless specified otherwise.

# Anti-Patterns
- Do not stop the entire traversal if a specific bone lacks animation data.
- Do not interpolate if only one keyframe exists.

## Triggers

- traverse bone hierarchy recursively
- skip bones without animation
- handle single keyframe animation
- recursive joint processing
- calculate animation transforms

