top of page

Dynamic Bone Node

A Custom Maya Node for Dynamic Bone Simulation

​

  • DynamicBoneNode is a custom Maya dependency node designed to add lightweight, procedural secondary motion to character rigs.
  • It is commonly used for simulating dynamic behavior in elements such as hair strands, muscle attachments, soft accessories, and small props, where full physics simulation would be unnecessary or too expensive.

Key Features

​​
  • Procedural Secondary Motion
    Lightweight dynamic simulation with controllable stiffness, damping, and jiggle amount. 
  • Aim-Based Orientation
    Converts simulated point position into stable joint rotation using an aim-and-up solution.
  • Constraint & Collision Support
    Distance and angle constraints with sphere and capsule collision handling.
  • DG-Safe & Deterministic
    Time-aware evaluation designed for predictable playback and real-time prototyping.

​Technical Breakdown​​

 
  • Jiggle Simulation
    • At each evaluation step, the node computes a new dynamic position using a semi-implicit Euler update. The solver estimates velocity from the previous frame, applies a spring-damper force toward the target, and integrates it to compute the next position. 
    • This computation exposes two primary parameters for user control: Stiffness and Damping.  â€‹â€‹
      • Stiffness (Spring Strength)
        Stiffness controls how aggressively the dynamic point is pulled back toward the target.
        Higher stiffness makes the motion feel tighter and more responsive (less lag), while lower stiffness produces looser follow-through.
      • Damping (Energy Loss)
        Damping reduces bouncing by removing energy from the system based on the current velocity. Higher damping settles quickly with fewer bounces, while lower damping preserves more overshoot and secondary vibration.​​

​

​

​

Sequence 01_1_compress.gif
Sequence 01.gif
Sequence 01_2.gif

Stiffness: 0.2     

Damping: 0.2​​

​

​

​

Stiffness: 0.02   

Damping: 0.2​​

​

​

​

Stiffness: 0.2

Damping: 0.02

​

​

​

​​

  • Angle and Distance Constraints
    • Angle Constraint
      The angle constraint measures the deviation between the original pivot-to-target direction and the simulated direction. If the deviation exceeds the user-defined maximum angle, the vector is clamped by rotating it back around the computed axis using an axis–angle rotation based on Rodrigues’ rotation formula, limiting excessive jiggle and improving motion stability.
    • Distance Constraint
      The distance constraint enforces a fixed bone length by constraining the simulated point to stay at a constant distance from the pivot.​​

​

​

​

Sequence 01_3.gif

Max angle: 90 degrees

​

​

​

Sequence 01_4.gif

Max angle: 15 degrees

​

​

​

​​

  • Collision Handling
    • DynamicBoneNode provides lightweight collision handling using two collider types: Sphere and Capsule colliders.
    • At each simulation step, the dynamic point is tested against all active colliders, and any penetration is resolved by projecting the point back onto the collider surface.
    • Multiple collision iterations improve stability and reduce tunneling, while bone radius is respected to maintain consistent spacing from surrounding geometry.​​

​

​

​

Sequence 01_5.gif

​​

  • Aim-Based Orientation
    • The node converts the resolved dynamic position into pivot joint rotation using a custom aim-and-up vector solution.
    • The solver derives the aim direction from the pivot to the simulated position and uses the pivot joint’s local up axis as the up reference.
    • Local axes closest and furthest from the aim direction are selected as the aim and up axes, forming a stable orthonormal frame that is aligned via a basis transformation and output as a quaternion.

​

​

Example Usage

Screenshot 2026-01-16 102753.png
image.png
bottom of page