Harry-babylon: springy tails, bouncy hair and soft-tissue jiggle for Babylon.js avatars (MIT, npm, live demo)

Hi all! A while back I promised a Babylon runtime for avatars finished in Harry, our avatar-finishing tool. It’s out, it’s MIT, and it’s the same code poqpoq World runs.

Live demo: harry-babylon demo
A Tripo lemur warrior finished in Harry: wagging tail, bouncing ears, a walk, a hop and a deep squat that shows off the creases. Hit Spawn crowd for 20 more under a physics budget.

Try it in the Playground: Babylon.js Playground

Install: npm i @poqpoq/harry-babylon (Babylon 9.29+ as a peer dependency)
Repo: GitHub - increasinglyHuman/harry-babylon: Babylon.js runtime for avatars finished in Harry: tail, hair and soft-tissue springs (VRMC_springBone), surface jiggle, tail moods and clip binding. MIT. · GitHub

What it does: Harry writes an avatar’s runtime behaviour into the GLB itself, and this library reads it back:

  • Spring bones for tails, hair and soft tissue, from the standard VRMC_springBone 1.0 extension, so any VRM-aware tool can read them too.
  • Tail moods (wag, lash, tuck, twitch, loose…) on top of the springs.
  • Surface jiggle: modal bounce for breasts, belly, glutes and hair that rides on the skinned mesh.
  • Clip binding that keeps clavicles anchored to the rest pose, plus hip-height compensation when a clip was authored on a different body.
  • VRoid fallback: synthesized springs for VRoid bodies that carry none.
  • Crowd-friendly: distance LOD, off-screen pausing and a shared per-scene budget.

One call wires it up:

import { ImportMeshAsync } from '@babylonjs/core'
import { attachHarryPhysics } from '@poqpoq/harry-babylon'

const result = await ImportMeshAsync('avatar.glb', scene)
const physics = attachHarryPhysics(result.meshes[0], scene, result.meshes)
physics.springs?.setMood('wag')

Everything except the springs is plain glTF (armature, skin weights, corrective bones, morphs), so it works in any engine. The springs and jiggle are the parts that need a runtime, and this is that runtime for Babylon.

Feedback, issues and PRs are very welcome. And if you’d like to see these avatars in a live world, poqpoq World is looking for alpha testers: pOqpOq World - A Social Adventure You Build Together | BlackBox Creative Suite

6 Likes

The playground looks super good!

1 Like