TutorialMay 27, 20266 min read

Jiggle Bones: Add Secondary Motion to Any 3D Avatar in One Click

Tutorial: use Kinetiq Engine's Jiggle Bones to bring hair, skirts, capes, and tails to life with real-time Verlet physics. Works with VRM, Second Life Bento, and any bone-driven avatar.

Thirdrez Team

Thirdrez Team

AI Motion Synthesis

Static animations look stiff. The thing that actually sells believability isn't the main body motion — it's what happens around it: hair that sways half a beat behind a head turn, a skirt that swings and settles after a spin, a cape that billows on acceleration. That's secondary motion, and it's the detail most animation pipelines skip because it's expensive to simulate.

Kinetiq Engine ships it built-in via Jiggle Bones — a real-time Verlet soft-body simulator that runs live in your browser, at zero extra cost in authoring time.

What is secondary motion (and why does it matter)?#

When a character moves, rigid-body bones follow the parent 1:1 — the skirt rotates exactly as the hip rotates, with no lag, no overshoot, no personality. In reality, soft elements (fabric, hair, accessories) have their own inertia: they trail behind, swing past the resting point, and gradually settle. That behavior is secondary motion.

Without it, even a well-polished walk cycle reads as a video game character from 2005. With it, the same walk looks cinematic — and your audience can't always explain why, which means it works.

Watch it in action#

YouTube
Jiggle Bones: Bringing Hair, Capes & Tails to Life — Kinetiq Engine

How Kinetiq's Jiggle Bones works#

Under the hood, Jiggle Bones uses Verlet integration — the same numerical method used in cloth simulation engines like Marvelous Designer. Each marked bone gets:

  • A particle at its tip in world space
  • A stiffness constraint to its parent (keeps the chain connected)
  • An inertia term (velocity derived from current vs. previous position — no separate velocity storage needed)
  • Gravity and air drag to shape the settling behavior

Each frame, the simulator: extrapolates new positions from velocity → applies gravity → enforces stiffness constraints → writes the result back into bone rotations. The whole thing runs in real time, in TypeScript, in your browser, layered on top of whatever animation you already have loaded.

No bake step for the preview. Just toggle the chain on, hit play, and the physics run live.

Presets: one-click setup for the most common cases#

Open Physics → ✨ Jiggle Bones. Six preset chips cover the most common avatar parts:

PresetTypical useStarting tuning
HairPonytails, bangs, long hairSnappy stiffness, low gravity
BreastsSoft-body breast bounce (SL Bento)Medium stiffness, medium gravity
ButtSoft-body glute motion (SL Bento)Medium stiffness, medium gravity
TailFurry or fantasy tailsLow stiffness, high damping
CapeCapes, scarves, mantlesLow stiffness, high gravity
SkirtSkirts, tutus, kiltsLow stiffness, medium-high gravity
CustomAny chain you defineStarts at neutral defaults

Select a preset and Kinetiq auto-suggests which bones fit. Hit Auto-Suggest and the panel marks candidates in the hierarchy — review and confirm.

The four sliders that shape everything#

Every jiggle group has the same four controls:

Stiffness (0.0 – 1.0) — how rigidly the chain follows its rest shape. Low = loose and floppy. High = snappy, returns quickly. Hair that swings and bounces sits around 0.4–0.6. A heavy cape needs 0.15–0.25.

Gravity (0.0 – 2.0+) — downward pull magnitude. Increase for heavier materials (long coats, metal chains). Decrease for floaty or zero-G effects.

Air Drag (0.0 – 1.0) — resistance to global motion. High drag = chain barely moves when the body accelerates. Low drag = chain swings freely on every shift.

Blend (0.0 – 1.0) — how much of the simulation bleeds into the final bake. At 0, the export ignores the physics. At 1, the exported animation is 100% physics-driven for those bones. Most use cases want 0.8–1.0.

All four sliders update live in the viewport while the animation plays — drag Stiffness and watch the hair's response change in real time.

Step-by-step: add jiggle to a Second Life Bento skirt#

  1. Import your Bento avatar (BVH, FBX, or GLB with a full skeleton).
  2. Open Physics → ✨ Jiggle Bones.
  3. Click the Skirt preset chip. Hit Auto-Suggest — Kinetiq marks mSkirt0 through mSkirt9 (standard SL skirt chain).
  4. Set starting values:
    • Stiffness: 0.30
    • Gravity: 1.40
    • Air Drag: 0.50
    • Blend: 1.00
  5. Toggle the group ON. Hit Spacebar to play.
  6. Watch the skirt swing as the avatar walks. Tune by feel:
    • Too floaty? Raise Gravity or lower Stiffness.
    • Settles too fast? Lower Air Drag.
    • Barely moves? Lower Stiffness.
  7. Once it reads right, export — the simulation bakes into the animation track automatically.

Material cheat sheet#

MaterialStiffnessGravityAir Drag
Long hair0.450.800.40
Short bob0.650.600.55
Silk skirt0.201.200.35
Heavy wool0.151.800.60
Cape/mantle0.181.500.45
Tail (furry)0.301.000.50
Metal chains0.802.000.70

Export: physics baked, clean for any engine#

When you export (BVH, FBX, or GLB), Kinetiq runs the Verlet simulation against the full animation range and writes the solved bone rotations into the export. The receiving engine — Unity, Unreal, Roblox, Second Life, Blender — sees a regular keyframed animation with no physics dependency. Nothing to install, no physics asset to set up.

Current limitations (BETA)#

Jiggle Bones is stable for the common hair/skirt/cape case. A few edge cases to know:

  • No mesh collisions yet — chains can pass through the avatar body. A skirt may clip through thighs during sharp bends. Full collision support (cannon-es or Rapier3D) is planned for a later update.
  • Bone-driven only — if your skirt is a morph-target mesh with no bone chain, Jiggle Bones can't animate it. The mesh needs to be weight-painted to a bone hierarchy.
  • 30+ chains on complex rigs can drop below 60 FPS on low-end devices (the simulation runs on the CPU). Disable non-critical chains during preview and re-enable before export.

Try it#

Jiggle Bones is available on Builder Pro — open Kinetiq Editor, load any avatar, and go to Physics → ✨ Jiggle Bones. If you're on the Free plan, you can see the panel and configure chains; export requires Builder Pro or higher.

Questions? Join the Discord — other animators in the server have already built presets for specific SL Bento avatars and VRM rigs they're happy to share.

Share this article

Help others discover motion intelligence insights.

Looking for production-ready animations? Explore the Thirdrez Marketplace or compare plans on Thirdrez Pricing.